fluentd 归集docker 日志

本文介绍两种配置方法实现Docker容器的日志收集,一种通过指定日志类型为json-log,另一种为fluentd,并详细展示了如何配置fluentd来实现日志的标准化输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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日志归集配置完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值