2blikeCaesar
2blikeCaesar

Reputation: 9

how to centralized log file on docker container?

How to centralized log file on docker container?

This log file is not in /var/lib/docker/container/*/

This log file is like catalina.out or another log file in container. (this file can be stdout/err or not).

Many solution is almost about stdout/err( /var/lib/docker/container/* ).

But I want to centralized log file in container to use ELK or Fluentd.

Help me please.

Upvotes: 0

Views: 202

Answers (1)

Antoine Cotten
Antoine Cotten

Reputation: 2762

You could use a forwarder container inside your pod and share a volume for the log directory, as follows:

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: {}

The tomcat container runs the app, while logstash-forwarder forwards tomcat logs.

Upvotes: 1

Related Questions