使用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
广告
将在 10 秒后关闭
bannerAds