获取特定的docker容器日志文件,使用Filebeat

想做的事情 zuò de

在一个运行着多个不同docker容器的环境中,出现了只想收集特定容器日志的情况,因此记录下了如何实现的方式。

做法 (yì fǎ)

1. 使用功能

使用Filbeat的自动发现功能。自动发现可以在Docker或Kubernetes环境中使用。例如,可以通过指定以下字段条件来设置收集条件。

    1. Docker

docker容器ID
docker容器镜像
docker容器名称
docker容器标签

Kubernetes

kubernetes标签
kubernetes注释
kubernetes节点名称
kubernetes命名空间

请查看官方网页以获取详细信息
https://www.elastic.co/guide/en/beats/filebeat/current/configuration-autodiscover.html

2. filebeat配置文件的编写方式

这次我们是以容器名称为条件,但许多人更倾向于以镜像之类的条件来选择吧。

filebeat.autodiscover:
  providers:
    - type: docker
      templates:
        - condition:
            contains:
              docker.container.name: nginx
          config:
            - type: container
              path:
                - /var/lib/docker/containers/${data.docker.container.id}/*.log
广告
将在 10 秒后关闭
bannerAds