初めましてfluentd!

fluentdのこと知らなすぎて
真顔で設定ファイルとにらめっこすることしか出来なかったので(・_・)
クイックスタートガイドの一部を読んだ。

✫fluentd

ログ収集用のツール。いろんなログに対応しておりプラグインがたくさん

✫使われている技術・特徴

✫fluentdイベントのライフサイクル

  1. イベントが発生し、fluentdにインプットがあるとタグを発行する。
  2. タグを識別し、マッチするアウトプットの形式(設定)を判断する。
  3. マッチしたアウトプットに合わせて適切にイベントを送信する。
    ※アウトプットしたあと、イベントに新しいタグを付与して再利用することも出来る。

✫configファイル

☁configファイルの場所

  • パッケージインストールした場合
    /etc/td-agent/td-agent.conf
  • Gemインストールした場合(インストール時に指定)
    /etc/fluent/fluent.conf

☁ディレクティブ

configファイルには6つのディレクティブを指定する。

  • source
    • インプットデータがどこからどういう方式で送られてくるか指定する。
    • typeパラメータが必須。http(http通信を行う)、forward(TCP通信を行う)を指定するのが標準的。
    • tagtimerecordというパラメータでルーティングが出来る。
  • match
    • どういう処理をするか指定する。処理の終点!
    • イベントを他システムにアウトプットするのがよくある使い方。
    • マッチするパターンが必須。マッチパターンにtagの指定がある場合のみアウトプットする。
    • typeパラメータが必須。typeはどのアウトプットプラグインを使うか指定する。file(ファイルに出力する)、forward(TCP通信を行う)を指定するのが標準的。
    • matchの記法はこちらを参照。
    • 設定ファイル内で一番最初にマッチした(上に書かれた)処理を実行し、それより下に記載した処理はマッチしても実行しない。
  • filter
    • どういう処理をするか指定する。処理の通過点!
    • matchと同様の使い方をするが、一度マッチした後も、それより下にもマッチする処理があれば全て実行する。
  • system
    • 各種設定を行う。
    • log_levelsuppress_repeated_stacktraceemit_error_log_intervalsuppress_config_dumpwithout_sourceという値が対象。
  • label
    • filterやアウトプットをグループ分けする。
    • 各パラメータにプレフィックス@が必要となる。
  • @include
    • 異なる設定ファイルの情報をインポートし再利用する。
    • ファイルパス、グロブ、URLで指定できる。

☁configファイルについてその他

プラグイン

おおまかに分類すると6種類ある。

  • Input
    ソケットを生成してログを収集したり、定期的にログを取得したりする。
  • Parser
    インプットのフォーマットを変更する。
  • Filter
    特定フィールドの値によって絞り込んだり、フィールドを追加・削除したりする。
  • Output
    結果を出力する。即時出力する(Non-Buffered)か、チャンクのキューにバッファしてから出力する(Buffered)か、一定時間毎に出力する(Time Sliced)かの3パターンある。 ※チャンク(chunk)はイベントの集まり
  • Formatter
    アウトプットのフォーマットを変更する。
  • Buffer
    Bufferedアウトプットにて、バッファの設定を行う。

✫その他

ちなみにこれ会社のwikiにも書いといたやつ…w
うすっぺらい情報だけどこれくらい分かってればとっつきやすいでしょう!
あ、あとどうでもいいけどエントリのフォントサイズあげた。