使用Fluentd收集的日志,fluentd会加上time,tag,以及json格式字符串一起存入日志中,有时需要将time,tag去除,并且取出希望得到的json格式字符串中的字段。
fluentd日志格式如下:
2016-09-18T23:42:36+08:00 docker.temp01 {“container_id”:”cc3c42b73c43eb56f53804da81f3ea7850d0f85bf48f7b3095b73d841dee7010″,”container_name”:”/temp01″,”source”:”stdout”,”log”:”hello”}
由于这里是存储在本地磁盘,所以使用的Plugin是 file Output Plugin
服务器端fluentd
<source> type forward port 24224 bind 0.0.0.0 </source> <match err.docker.*> type forest subtype file <template> output_tag false output_time false message_key log format single_value type file_alternative path /home/lee/fluentd-log/${tag_parts[2]}/temp </template> </match>
这里的forest和file_alternative是为了给日志输出指定路径,用法参考
添加output_tag和utput_time两个字段,并设置为false,不输出time
和tag
message_key log和format single_value将json格式中log字段提取出来
打印日志格式变为:[I 160918 20:22:25 web:1971] 304 GET / (192.168.126.1) 1.30ms