ビッグデータが話題になり始めてから日が経ち、Fluentd、Logstash、Apache flumeやkafkaの名前を聞くようになった。これらに付随して全文検索エンジンやkibana等のビジュアライザが話題になっている。ログ分析の初歩としてログ収集ツールについて調べてみた。
ログ収集ツール
ログ収集ツールとしてはFluentd、Logstash、Flume等が挙げられる。ファイルやメール、syslog、DB、センサからログデータを読込み、必要なログをフィルタして、jsonやxmlに整形してアウトプットする機能を持つ。
Fluentd
メリット
- プラグインが300+公開されており、様々な形式のデータをインプット、アウトプットできる
- 単体でログのフィルタ、バッファ、ルーティングができる
- 2000+を超える企業に利用されている
- 日本語の情報が多い
デメリット
- 単体で動作するためfluentdが落ちたらバッファしているログが消える
- 想定外のログが入力されると大量のスタックトレースが吐かれる
引用:http://changineer.info/server/logging/fluentd-td-agent.html#fluentd-2
Logstash
メリット
- フィルタを簡単にカスタマイズできる
- Fluentdと比べるとシンプル
- Windowsでも動く
デメリット
- バッファがないため大量にログを吐く場合kafka等と組み合わせる必要がある。
Apache Flume
メリット
- 冗長化などの仕組みも備えているので障害にも強い
- Hadoopとの親和性が高い
- 大量のログデータをリアルタイムに転送できる
デメリット
- 機能が多いため設定が複雑
Apache Kafka
Kafkaは2011年に公開されたオープンソースの分散メッセージングシステムである。Zookeeper上にkafkaサービスを複数作成しクラスタを組むことで大量のメッセージを受け入れることができる。利用用途としては、ログ収集ツールからのアウトプットの受入、全文検索エンジンに追加する前のバッファなどに利用できる。