Fluentd

現代のITシステムはWebサーバやデータベース、アプリケーションなど多数の要素で構成されており、それぞれが異なる形式でログを出力する。障害の調査や利用状況の分析を行う際、各所のログを個別に確認する作業は大きな負担となる。
Fluentdは様々なソフトウェアが分散して稼働している環境で、時系列で発生する情報を一つの仕組みで集約し、統一的に扱えるようにする。アプリケーションの動作記録、サーバのアクセスログ、監視ツールの通知など大量のデータを集めて分析基盤へ送ることができる。クラウド環境やコンテナ運用など、個別に一つずつ設定、操作することが難しい環境で特に威力を発揮する。
動作の流れは「入力」「処理」「出力」の三段階で構成される。入力では、ファイルやネットワーク通信、システムログなど多様な形式のデータを取り込む。取り込んだデータは内部でJSON形式に統一され、フィルタ処理によって目的の形式への整形、不要な項目の削除、属性の追加などが行われる。その後、データベースや検索エンジン、クラウドストレージなど指定の送信先へ転送される。これらの動作は設定ファイルで定義するため、コードを変更せずに柔軟に調整できる。
機能はプラグイン方式で拡張でき、開発者コミュニティによって数百種類のプラグインが公開されている。入力・出力の種類を追加することで、既存のシステムや外部サービスとの連携を容易に実現できる。また、データを一時的にバッファへ保存し、送信先の障害時には再送を試みる仕組みも備わっており、ログの欠落を防ぐことができる。データにタグを付与し、記載されたラベルに基づいて柔軟に処理内容や転送先を振り分けることができる。
Fluentdは軽量な動作を意識して開発されており、各サーバやコンテナ内で常駐させる形で利用される。複数のFluentdを段階的に配置し、端末側で収集したログを集約サーバへ転送する構成も広く採用されている。リソースが限られた環境向けには軽量版の「Fluent Bit」も提供されており、IoT機器などへの展開も可能である。2011年に米トレジャーデータ(Treasure Data)社の古橋貞之氏らによって開発が始まり、現在はCloud Native Computing Foundation(CNCF)のプロジェクトとして維持・管理されている。