イベント登録数2,789

QCon Tokyo 2013 ログ収集フレームワーク fluentd の現在と今後に ついて

大人気のログ収集ツールfluentdとは? そして、トレジャーデータやクックパッド、NHN Japanはどう使っているのか?
2013/6/12 TIS株式会社 池田大輔  クラウド化が進むことでますます大規模化する環境。そのような大規模環境の運用においては、大量に出力されるログを管理することも非常に重要な要素である。システム運用者は大量のログを効率良く管理し、活用できる形でログを処理しなければならないという課題に直面している。  「fluentd」はオープンソースのログ収集ツールであり、こうした課題への対応ができるツールとして非常に注目されている。fluentdは、トレジャーデータの開発者およびコミュニティメンバーにより開発が進められているRuby実装のオープンソースログ収集ツールである。  QCon Tokyo 2013で、fluentdの仕組みおよび現在の利用状況、今後の方向性について、トレジャーデータのチーフソフトウェアアーキテクトである西澤無我氏による講演が行われた。 fluentdの仕組み  fluentdではデータをJSON形式で扱い、インプット、バッファ、アウトプットの3つの要素で一連の処理を実現している。 fluentdのアーキテクチャ図(西澤氏の講演資料(PDF)より引用)  各要素はプラガブルな形態をとり、収集したい情報の取得や出力先の形式に応じた処理を容易に利用者が組み込むことが可能だ。ログの転送処理に失敗したときの再送の仕組みなどはfluentdのコア部分が担っており、インプットやアウトプットのプラグインではデータを取り込んだり、出力したりする部分に特化して実装するだけでよい。 fluentdのインプット/アプトプット(西澤氏の講演資料(PDF)より引用)  さらにfluentdは、ログデータの処理に柔軟性を持たせるための仕組みが備わっている。1つのインプットに対して、複数の出力先にアウトプットできる仕組みでは、1つのログデータを分析やアーカイブなど用途に応じて複数の出力先に送付できる。  また、インプットされたログデータに対してタグ付けを行う仕組みがあり、タグ情報に基づいてアウトプット先を振り分けて管理できる。アプリケーションのログデータを扱いたい場合には、fluentdのクライアントライブラリが有用である。  Rubyだけではなく、PythonやJava、Perl、PHP、Scala、D言語などで扱うためのクライアントライブラリ(td-logger-ruby、td-logger-python、td-logger-javaなど)があるため、アプリケーションから出力されるログデータを直接fluentdで扱える。 現在の利用状況  トレジャーデータはfluentdにより収集されるログを解析するサービス「Treasure Data」を提供している。Treasure Dataでは現在秒間4万行のログを常時処理を行っており、その利用者は2000ユーザーにも上るという。 fluentdの「Treasure Data」での活用事例(西澤氏の講演資料(PDF)より引用) fluentdの利用増加の要因  fluentdの利用が進んだ要因の1つとしては、「プラガブルに扱えるfluentdのアーキテクチャ」が考えられる。このアーキテクチャにより、ユーザーが扱いたいログを幅広く柔軟に扱えるようになっている。  たとえ扱いたいログデータのインプットプラグインが存在していなくても、入力元の形式に沿った形でインプットプラグインを作ることでfluentdを活用できる。アウトプットについても同様である。  実際、fluentdのプラグインの多くがコミュニティで開発されたものであるという。現在プラグインはインプット、アウトプット合わせて117個あり、日々増えている。 導入事例  大規模環境への導入事例も増加している。国内事例としては、クックパッドやNHN Japan、GREEなどの大規模な事例がある。 fluentdのNHN Japanでの活用事例(西澤氏の講演資料(PDF)より引用)  クックパッドでは、これまでRailsアプリケーションから出力されるログデータを随時テキストファイルに書き出し、Nightlyにそのテキストファイルから読み込んだログデータをMySQLに格納して管理を行っていた。  fluentdとTreasure Data Platformを利用することで、この方式の変更を行った。Railsアプリケーションから直接fluentdにアプリケーションログ情報を入力し、Treasure Data Platformに登録するようにした。これにより、これまでNightlyに実施していた処理をよりリアルタイムに実現できるようになった。 fluentdのクックパッドでの活用事例(西澤氏の講演資料(PDF)より引用) 今後の方向性  西澤氏は講演の最後に、今後の方向性について以下のように触れた。「Windowsへの対応やfluentdの設定の記述をより簡単なDSLで書けるようにするなど、たくさんの改善ポイントがあるが、まずは、プラグインをさらに簡単に作れる環境にすることで、コミュニティとともにますます成長できるようにしたい」(西澤氏) コミュニティからの貢献に支えられ急速な成長を遂げるfluentd  オープンソースのメリットを最大限に生かした非常に理想的なオープンソースの成長モデルの1つではないだろうか。今後ますますコミュニティによるプラグイン開発が進み、fluentdの適用可能な範囲が拡大していくことが期待される。 QCon Tokyo 2013レポート プログラムは完璧でなければならないが、人は完璧ではない FabLabがもたらすソフトウェア+ものづくりの新たな価値 GitHubの中の人が使っているHubot、そしてChatOpsってなんだ? DDDが廻らない? スクラムが廻らない? それ2つ一緒にやれば廻るよ 大人気のログ収集ツールfluentdとは? そして、トレジャーデータやクックパッド、NHN Japanはどう使っているのか? HTML5と情報表現の最適化 WebRTCで変わるWebの未来 HTML5でできる多彩なビジュアライゼーション 「イベントカレンダー+ログ」レポート投稿募集中!このレポート記事が掲載されている本サービス「イベントカレンダー+ログ」では、イベント登録者がレポートを投稿したり、資料を一覧できるまとめページを作成できます。新着レポートは一覧に表示され、こちらのRSSにも配信されるので、ぜひご活用ください。