获取特定的docker容器日志文件,使用Filebeat
想做的事情 zuò de
在一个运行着多个不同docker容器的环境中,出现了只想收集特定容器日志的情况,因此记录下了如何实现的方式。
做法 (yì fǎ)
1. 使用功能
使用Filbeat的自动发现功能。自动发现可以在Docker或Kubernetes环境中使用。例如,可以通过指定以下字段条件来设置收集条件。
-
- 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