tweet:2024:0111_01
                fluent-package
AlmaLinuxでfluentdを利用する際には選択肢が3つある。
- RubyをInstallしてGemからfluentdを利用する
- fluent-packageを利用する(v4まではtd-agentと呼ばれていたが、v5からfluent-packageになった)
- calyptia-fluentdを利用する
正直、plainなまま利用するなら、どれでもほとんど差がないが、管理や更新の手間の問題からfluent-packageを利用した。
以下に、いくつかメモを記載しておく。
logを複数のfluentd serverに転送する
fluentdの設定のうち、外部出力はmatch blockに記載することが多い。問題は、2台(以上)のサーバーにlogを転送しなければならないときである。
通常のmatch blockはこんな感じ
- modsec Tagがついているlogをsrv01(192.0.2.10):8514に転送する
- sample.output
- ##### Output Descriptions. <match modsec.**> @type forward <buffer> @type file path /any/where/fluent.modsec.srv01.buffer flush_at_shutdown flush_mode interval flush_interval 60s retry_forever </buffer> <server> name srv01 host 192.0.2.10 port 8514 </server> </match>
これを、
- srv01, srv02に同じ内容のデータを送付する
##### Output Descriptions.
<match modsec.**>
  @type copy
  <store ignore_error>
    @type forward
    <buffer>
      @type file
      path /any/where/fluent.modsec.srv01.buffer
      flush_at_shutdown
      flush_mode interval
      flush_interval 60s
      retry_forever
    </buffer>
    <server>
      name srv01
      host 192.0.2.10
      port 8514
    </server>
  </store>
  <store ignore_error>
    @type forward
    <buffer>
      @type file
      path /any/where/fluent.modsec.srv02.buffer
      flush_at_shutdown
      flush_mode interval
      flush_interval 60s
      retry_forever
    </buffer>
    <server>
      name cust-bbf-wb2
      host 192.0.2.20
      port 8514
    </server>
  </store>
</match>
肝は
- match blockで@typeをcopyにする
- forward設定を<store>ブロックに登録する
- fluentdのcopyは「storeブロックのどれか」で失敗すると、全部が失敗扱いになるので、ignore_error設定を<store ignore_error>として設定する
こと。もちろん、失敗したらErrorにしたい場合もある(「完全に同期させておきたい」かつ「logが多少欠けても良い」環境である場合)もあるから、それに合わせて設定すること。
Buffer 設定に関して
- flush_at_shutdown
- fluentd終了時にbufferをflushする
- flush_mode interval
- flush_interval毎にflushする
- flush_mode immediate
- Bufferが作成されたら即flushする
- flush_interval
- 設定した秒数ごとにflushを実施
- retry_forever
- retryが、retry_max_times(default: none)に達し、retry_timeout(default: 72h)に達した際、通常はchunkがdropされるが、dropせずに永遠にretryを繰り返す
DryRun(設定確認)
fluentd —dry-run -c /path/to/fluentd.conf
tweet/2024/0111_01.txt · 最終更新:  by seirios
                
                