fluentd 归集docker 日志

fluentd官网:http://www.fluentd.org/

1、指定docker日志类型为json-log
启动docker容器:
docker run -d -P --name=myweb1 --log-driver=json-file 192.168.238.129:5000/myweb:v4

查看日志文件路径:
docker inspect myweb1

找到结果如下:
"LogPath": "/var/lib/docker/containers/0d8f17b89b934b6a2edd6c7f4f75ab7fd6935b4eae1ae44350567663c6a07143/0d8f17b89b934b6a2edd6c7f4f75ab7fd6935b4eae1ae44350567663c6a07143-json.log",

配置fluentd:
vi /etc/td-agent/td-agent.conf

添加如下(输出到标准输出,实际可以到Elasticsearch):
<source>
@type tail
format json
path /var/lib/docker/containers/0d8f17b89b934b6a2edd6c7f4f75ab7fd6935b4eae1ae44350567663c6a07143/0d8f17b89b934b6a2edd6c7f4f75ab7fd6935b4eae1ae44350567663c6a07143-json.log
pos_file /var/log/td-agent/docker.containers.myweb1.pos
tag docker.containers.myweb1
</source>

<match docker.*.*>
@type stdout
</match>

备注:查看docker容器日志文件fluentd是否有读权限,没有的话先给文件目录及文件赋予r权限

重启fluentd,并查看日志文件/var/log/td-agent/td-agent.log
如果有如下内容,则表示配置成功,可以重启容器看看是否日志有变化:
following tail of /var/lib/docker/containers/0d8f17b89b934b6a2edd6c7f4f75ab7fd6935b4eae1ae44350567663c6a07143/0d8f17b89b934b6a2edd6c7f4f75ab7fd6935b4eae1ae44350567663c6a07143-json.log


2、指定docker日志类型为fluentd(推荐)
启动docker容器:
docker run -d -P --name=myweb2 --log-driver=fluentd --log-opt fluentd-tag=docker.{{.Name}} 192.168.238.129:5000/myweb:v4

配置fluentd:
vi /etc/td-agent/td-agent.conf

添加如下(输出到标准输出,实际可以到Elasticsearch)
<match docker.myweb2>
@type stdout
</match>

重启fluentd,并查看日志文件/var/log/td-agent/td-agent.log

重启容器看看是否日志有变化


至此,两种方式完成docker日志归集配置完成。

猜你喜欢

转载自likit.iteye.com/blog/2323025