Fluentdについてまとめ

Fluentdについて

補足

  • それ以前にscribeというものがあった

概要

  • 必要なところからデータを取り出す (input)
  • そのデータを必要に応じて分解(パース)する
  • データのタイムスタンプを管理する
  • 必要なところにデータを届ける (output)
  • そのデータを必要に応じて整形(フォーマット)して保存する
  • データを紛失しないよう管理する (buffer)
  • やりとりの途中で何かエラーが起きたらリトライする

できること

  • ログの収集
  • センサデータ等の収集
  • 汎用データ処理プロセッサ
  • データの集約
  • 簡単なリアルタイム集計

アクセスログ、およびアプリケーションログの収集

  • 動作しているサーバ(Apache, Nginx および各言語のアプリケーションサーバ)がログを出力する
  • そのログを各サーバ上に起動してあるFluentdが受け取る
  • Fluentdはネットワーク越しにログ集約用Fluentdに対して転送する
  • ログ集約用Fluentdは集まってきたログをどこかに書き込む
  • 典型的には local file, AWS S3, Hadoop HDFS, MongoDB など

フロー

  • Fluentd は input, buffer, output という仕組みを持つ
  • それぞれデータの流入、Fluentd内部での管理、データの流出に対応
  • Fluentdは1プロセス内にこの input/output を好きなだけ持てる
  • 複数のデータ入力を受け付け、複数のデータ出力先に流し込むことができる。そのように設定を書けばよい。