転載・引用について

ユーザ用ツール

サイト用ツール


tweet:2024:0111_01

fluent-package

AlmaLinuxでfluentdを利用する際には選択肢が3つある。

  1. RubyをInstallしてGemからfluentdを利用する
  2. fluent-packageを利用する(v4まではtd-agentと呼ばれていたが、v5からfluent-packageになった)
  3. 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で @typecopy にする
  • 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
このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
tweet/2024/0111_01.txt · 最終更新: 2024/01/11 02:41 by seirios

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki