使用Fluentd直接传输原始日志
摘要
我想留下Fluentd传输原始日志的配置。我曾认为只需要在source部分使用none格式即可,但这样仅仅会输出Fluentd的标准消息格式,并不能得到我期望的输出结果。因此,简单来说,在file输出端指定single_value格式可以将日志原样输出。
设置转发源
转发日志
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
<source>
@type tail
<parse>
@type none
</parse>
path /var/log/apache.log
</source>
<match **>
@type forward
send_timeout 60s
<server>
host xxx.xxx.xxx.xxx
port 24224
</server>
</match>
受信端的设置(日志输出端)
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match **>
@type file
<format>
@type single_value
</format>
append true
# 受信したデータを出力ファイル
path /var/log/apache-copy.log
# 日単位に出力
time_slice_format %Y-%m-%d
<buffer>
# バッファタイプはファイル
@type file
# バッファファイルの出力先
path /var/log_buffer/apache-buffer
flush_mode interval
# 60sごとにファイルに書き出す
flush_interval 60s
</buffer>
</match>
积分
将发信方的@type tail的format值设为none。
只在文件输出端使用”format none”,则会以以下标准的fluentd消息格式输出。
datetime tag {"massage": "127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 200 2326"}
将接收方的@type文件的format单个值选定为single_value。
这样,原始日志将保持不变。
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326