Access logs inside docker container

how to configure filebeat to ship logs inside the docker container running separately in same machine

You'll have your container logs at: /var/lib/docker/containers/

Mount this path to some directory in your container ( -v /var/lib/docker/containers:usr/share/filebeat/dockerlogs) when you are deploying a filebeat container and then give use this path to configure your filebeat.

Here's the sample config file:

filebeat.prospectors:
- type: log
  enabled: true
  paths:
    - /usr/share/filebeat/dockerlogs/*/*.log
  encoding: plain
  fields:
    document_type: jenkins_container_log
  registry: /usr/share/filebeat/data/registry
  include_lines: ['failed']
  json.keys_under_root: true
  json.add_error_key: true
  json.message_key: log

setup.template:
  name: "filebeat"
  pattern: "filebeat-*"
  settings:
    index.number_of_shards: 1
    index.number_of_replicas: 1
output.elasticsearch:
  hosts: ["xxx:9200"]
  index: "filebeat-%{[fields.document_type]}-%{+yyyy.MM.dd}"

my application is running as container and I want to run filebeat as a different container. do I need to mount my container logs for eg: /var/log/supervisor/app.log(inside the container) on the host.

I think you'll already have container logs on host in /var/lib/docker/containers. Mount this path to some directory on filebeat container.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.