【ふるーえんとでぃー】

Fluentd とは?

💡 あらゆるログを「集めて変換して送る」統合パイプライン
📌 このページのポイント
Fluentd:ログ収集・転送の仕組み Webサーバー アプリログ DBログ IoTデバイス Fluentd パース (解析) フィルタ (加工) バッファリング+リトライ プラグインで柔軟に拡張 Elasticsearch Amazon S3 BigQuery Slack通知 入力元 出力先 多様なソースからログを収集し、加工して複数の宛先に転送するツール
Fluentdのイメージ
ひよこ ひよこ

なぜログ収集ツールが必要なの?

ペンギン先生 ペンギン先生

マイクロサービスで10個のサービスが動いていると、ログが10箇所に分散する。障害調査で各サーバーSSHしてログを見るのは非現実的。Fluentdが各サーバーからログを収集して、Elasticsearch等の集中管理基盤に送ることで、一箇所で全ログを検索・分析できるようになるんだよ

ひよこ ひよこ

Fluent Bitとどう違うの?

ペンギン先生 ペンギン先生

Fluentdはフル機能のログコレクター(Ruby製、プラグイン豊富)。Fluent BitはC製の軽量版で、メモリ使用量が少ない(数MB)。Kubernetesでは各ノードにFluent Bitを置いてログを収集し、Fluentdのアグリゲーターに送る構成が一般的。エッジデバイスやコンテナにはFluent Bit、集約にはFluentdと使い分けるよ

ひよこ ひよこ

おもしろい!設定はどう書くの?

ペンギン先生 ペンギン先生

sourceディレクティブ(入力)、filterディレクティブ(加工)、matchディレクティブ(出力)の3段構成。 @type tail path /var/log/app.log のように書く。filterでログのパースJSON化)やフィールド追加、不要ログのドロップができる。td-agent(公式パッケージ)でインストールすると楽だよ

ひよこ ひよこ

大量ログでも大丈夫?

ペンギン先生 ペンギン先生

バッファリング機能が充実していて、出力先がダウンしてもバッファにログを溜めておける。ファイルバッファを使えばFluentd自体の再起動でもログを失わない。ただし本当に大量(1日10TB超)ならApache KafkaをFluentdとの間に挟んでバッファリングを強化するのがベストプラクティスだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Fluentd」って出てきたら「ログを集めて変換して転送するデータ収集ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fluentd」 = 流暢な(データ)デーモン
💬 Fluent(流暢な)+ d(daemon)。データが流暢に流れるイメージだよ
← 用語集にもどる