とある機会でfluentdを触ることがあったので気を付けておくべきconfigに関しての備忘録
公式ドキュメントを読めばわかるけど、すべて英語なのと自分の気がついたことをまとめるために記載します。(随時更新)
topic
主に下記の内容が対象。
filterプラグインに関しては、用途によりそれぞれなので記載しません。
また、tagなどの基本的なflunetdに対する知識が前提。
主に、input/outputで必要そうなものに絞って記載します
記載時の対象バージョンは
. fluentd (version 1.2.2)
. ruby (2.5)
- input
- in_tailプラグイン
- in_forwardプラグイン
- output
- out_fileプラグイン
INPUTプラグイン
主にflunetdに対してのデータ入力部分を受け持つ。
ここでデータを受け取り、input→filter→outputの順番でデータの受け渡しが行われる。(ざっくり説明)
in_tailプラグイン
主にファイルの読み込みに利用されるプラグイン
Linuxのtail -Fとほとんど同じ動作となる。
指定したファイルをtail -Fした際に標準出力に表示される内容をfluentdが入力として受け取ることができる。
注意点としては、tail -Fと同じ動きなので、読み込みは改行単位で区切られて読み込まれる。
読み込みファイルが壊れて最終行が改行コードで終わっていない場合、その内容はflunetdで読み込まれない。
(multiline設定でmultiline_flush_intervalを利用する場合を除く)
tag
tag設定。
対象ファイル読み込み時のtagを設定する。
後述するpathに複数のファイルパスを記載した場合は、その全てに対して同じtagが付与される。(placeholderを利用しない場合)
path
読み込み対象のファイルパス指定。
複数のファイルを指定できる。指定する際はカンマ区切り
また、ワイルドカード等の使用が可能。
pos_file
in_tailプラグインを使う場合は殆ど必須の設定
読み込み対象のファイルのinodeと読み込み行の情報を保存するファイルパスを指定する。
この設定を指定することで、読み込み対象ファイルをどこまで読み込んでいたかの情報が保存されるため、fluentdが再開された場合に最後に読み込まれた行から再度取り込みを再開することができる。
ファイル名に対して1行で情報が保持されるため、pathでワイルドカード等を利用して可変ファイル名のファイルを読み込んでいる場合、posファイルへの記載内容は徐々に増えていく。
読み込みが終了した(対象のファイルがなくなった)際のposファイルの情報の整理はfluentdの再開を契機に行われるため、fluentdが連続動作している限りposファイルの容量は増えていく(v1.2.2時)
read_from_head
fluentd起動時に読み込み対象ファイルを先頭行から読み込む設定。
pos_fileの設定で対象ファイルの情報がある場合は、最終読み込み行からの読み込みが優先される。
初回読み込み時にデータの取りこぼしを防ぐための設定。
rotate_wait
読み込み対象ファイルがlogrotateなどによりローテートした際に、一つ古いファイルへの更新が同時発生している場合に、どのくらいそのファイルの読み込みを継続するかの設定。
例えば、/var/log/messagesがlogrotateにより/var/log/messages.1にローテートされた際にrotate_waitを3sに設定していると、ローテート後3秒間は/var/log/messages.1への書き込み内容も取り込むことができる。
encode,from_encode
読み込み時のencode設定(encode)とin_tailプラグイン処理後のencode設定(from_encode)
path_key
指定した文字列のフィールド名で読み込み対象ファイルパスの情報を保持することができる。
読み込み対象ファイルのフルパスをデータとして保持する際に設定する。
in_forwardプラグイン
主にfluent-catコマンドからの入力や後述するout_fowardプラグインからのデータ入力を受け取る際に利用する。
fluentd - fluentd間のデータ受け取りに使われることが多い。
port
listenするport番号
bind
bindするIPの設定
ここでデータ受け取りを行うIPの制限を行うことができる。
OUTPUTプラグイン
主にfluentdからデータのOUTPUTを行う際に利用するプラグイン
out_fileプラグイン
fluentdからファイル出力を行う際に使用する。
path
出力ファイルパスの設定。
固定ファイル名での出力も可能だし、tag等のplaceholderを利用して可変ファイル名とすることも可能
placeholderに関しては下記を参照
https://docs.fluentd.org/v1.0/articles/buffer-section#sts=Placeholders
append
false設定にすると出力ファイル名の末尾に_0,_1等の数字が付与され分割される。
分割単位はchunkごとに分割されるため、通常はtrueにして運用する。
path_suffix
pathで設定したファイル名の末尾に付与する文字列を設定する。
後述するadd_path_suffixの設定により付与しないことも可能。
前述のappendにより付与される数字はこの文字列のあとに付与される。
add_path_suffix
前述のpath_suffixの末尾に付与するかどうかの設定。
pathで設定した内容のままのファイル名で出力したい場合は、本設定をfalseにする必要あり。