如何在docker容器上集中日志文件?

时间:2016-02-15 07:00:18

标签: docker containers kubernetes

如何在docker容器上集中日志文件?

此日志文件不在/ var / lib / docker / container / * /

此日志文件类似于catalina.out或容器中的其他日志文件。 (这个文件可以是stdout / err或不是。)

许多解决方案几乎都是关于stdout / err(/ var / lib / docker / container / *)。

但我想将容器中的日志文件集中起来使用ELK或Fluentd。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

您可以在pod中使用转发器容器并共享日志目录的卷,如下所示:

kind: ReplicationController
apiVersion: v1
metadata:
  name: tomcat
  labels:
    app: tomcat
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat
        volumeMounts:
        - name: tomcat-logs
          mountPath: /tomcat/log
          readOnly: false
      - name: logstash-forwarder
        image: apopelo/logstash-forwarder
        volumeMounts:
        - name: tomcat-logs
          mountPath: /var/log/tomcat
          readOnly: true
      volumes:
      - name: tomcat-logs
        emptyDir: {}

tomcat容器运行应用程序,而logstash-forwarder转发tomcat日志。