通过fluentd收集docker日志

由于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,这样才能会自动累计到一个文件上,按照一小时一个文件输出了。

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

你可能感兴趣的:(区块链)