通过fluentd收集docker日志

本文介绍了如何利用Docker的日志驱动Fluentd来收集和管理日志。通过设置`buffer_chunk_limit`、`buffer_queue_limit`和`flush_interval`等参数,调整日志输出和缓冲策略。同时,利用`time_slice_format`进行日志文件切割,确保日志的准确归档。文中还提到了处理Docker `stats`命令输出的问题,以及如何通过awk命令获取特定字段。

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

由于docker的logdriver默认支持Fluentd,所以发送端默认选定Fluentd.

以下网址写的很详细,可以慢慢参照

http://www.imekaku.com/2016/09/26/fluentd-conclusion/#fluentd

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

用docker stats XXXX 命令取得的结果,放到文件中,

再用shell读取,发现while循环读取每一行以后,每一行无法简单的变成数组,

最后用echo "$lineValue" | awk '{print $4}' 这样的办法才能取到。

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

buffer_chunk_limit
数据输出最大量,比如用out_forward时,五秒一回送信时,就指这一回送信的最大数据量
或者说生成文件时,每个文件最大size

buffer_queue_limit
还没有送信的时候,在out_forward内保存的文件chunk最大数量
buffer_chunk_limit X buffer_queue_limit < PC的内存

flush_interval
buffer chunk隔多长时间输出一次,即使还没有达到buffer_chunk_limit的值,也会强制输出

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

time_slice_format用于日志文件切割
%y%m%d每日创建一个新的日志文件
%y%m%d%H每小时创建一个新的日志文件
%y%m%d%H%M每分钟创建一个新的日志文件

time_slice_wait 10m
延时10分钟等待日志到,假设日志切割一小时划分,有一条日志再1:59创建,
但是到达Fluentd节点的事件再2:00-2:10,那么Fluentd会将这个日志

一同记录到1:00-1:59这个时间段的文件中,避免临界的日志记错到其他时间段

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

time_slice_format %y%m%d%H

flush_interval 5s

这重配置的时候,在一个小时时间内会按照5秒为一个单位生成新文件,会有很多_0,_1,_2这样的文件,

所以要加上append true,这样才能会自动累计到一个文件上,按照一小时一个文件输出了。

----------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值