settings of fluentd

fluentdの設定周り

fluentdの設定周りについて

fluentdの設定はtd-agent.confに全部書けて便利で簡単。なのだけれども、全部かけるからそのパラメータがどの部分に必要なのか?がわかりにくいし、v1.0以降にパラメータ名が変更になったものが多く、古いqiitaとかtech系の記事で古いパラメーターを使っていたりすると、もう何が何だか的な感じなカオスが繰り広げられる。

基本的にはどのパラメーターを変更しているのか(bufferなのかfilterなのか?)を意識して探すのと、使ってるパラメーターが古いかどうかを確認しながらやったほうが良さげ。 このページに過去のパラメータの対応表がある。Plugin Helper: Compat Parameters

調べた物のメモ

buffer

項目名 内容 補足(デフォルト)
buffer_type メモリかファイル memory or file
buffer_path bufferのファイルの保存先  
buffer_queue_limit bufferが貯めるqueueのサイズの上限値 256
buffer_chunk_limit bufferが貯めるファイル容量の上限値 256m, k,m,gでKB,MB,GBを表す
flush_interval flushする(bufferをファイルに書き出す)間隔を設定 60s, s,m,hで秒,分,時を表す
flush_thread_interval wait chunkがない時にflush試みるインターバル デフォルト1, 旧:try_flush_interval
flush_thread_burst_interval flushから次のflushする際のインターバル デフォルト1, 旧:queued_chunk_flush_interval
flush_thread_count outputの並列化をする時に使う デフォルト1, 旧 num_threads
retry_type retryの間隔がperiodic(固定間隔)かexponential_backoff(指数関数的に増加)を選択する デフォルト: exponential_backoff
retry_wait flushのretryする間隔。もしくはbackoff値だけ指数関数的に増加していく デフォルト1
retry_max_interval retryのインターバルの最大値 デフォルトなし 旧:max_retry_wait
retry_forever trueの場合, retry_max_times, retry_timeoutを無視してflushし続ける デフォルト false 旧:disable_retry_limit

forward

項目名 内容 補足
require_ack_response ack(到達確認)するようになる。at-least-onceの送信ルールになる。 デフォルト false
ack_response_timeout ackのtimeoutの値 デフォルト false
send_timeout sending eventlogのタイムアウト値 デフォルト 60
hard_timeout 送信先のサーバのダウン検知するまでのタイムアウト値 デフォルト send_timeoutと同じ
phi_threshold 送信先サーバのダウン検知につかうパラメータ デフォルト 16

その他もろもろ

  • 生ログを吐き出す場合 sourceにformat none、outputの設定にformat single_valueをつける
  • ¥<match¥>は1回処理をするともう一回matchを書いても効かない(1レーコード1回のmatch)ので、@copyと¥<store¥>を使う
  • fluentdのlogでwarnが出ていると動いてない場合があるので、設定を見直す
  • パラメータを調べる時はそのパラメーターが何に属しているのか(buffer, forward, filter..etc)をまず確認してからにする。
connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

Jp, Tokyo https://connvoi.com