DevOps向けFluentd勉強会 at IPROSの参加報告

お久しぶりです、髙橋@SSTDです。 私は最近、SSTD(Sios Support for Treasure Data)としてTreasureDataさんと一緒にお仕事をさせて頂くことが非常に多く、勉強になることばかりです。 そういったこともあり、こちらのDevOps向けFluentd勉強会 at IPROSにも参加させて頂きました。

勉強会は三部構成で行われました。

  1. 特別講演 (トレジャーデータ 中川)
  2. 導入編 (IPROS 竹内)
  3. 実践編 (IPROS 外山)


1. 特別講演

特別講演では、トレジャーデータの中川さんが、fluentdが生まれた理由から概要、更には各種プラグインについてまで、幅広くかつ少し深く話されました。

fluentdはなぜ生まれたか?

データをいかに集めるかに関する決定的なソフトが無かった。 fluentd以前は、日毎のログ転送などを行っていたが、スループットの問題などがあった。 しかし、fluentdでは、ログを細切れにして、細かくまんべんなく帯域を使うことを実現した。

fluentdとは

Rubyで書かれ、rubygemsを利用することで簡単にプラグインが開発でき、ソフトウェアで認識が可能なjson形式でログを扱う、ログコレクタ。fluentdの重要な要素として、
Time
ログの発生時間
Tag
どこからログが来たか?
Recode
JSON形式

include機能

設定ファイルに、
include http://example.com/conf
と書くことで、設定ファイルをhttpから取得することができる。

信頼性について

ファイルにバッファリングするために、ディスクが壊れない限りは信頼できる。 また、バッファのチャンクにて数日間ユニークなidを振るため、同じバッファを転送しないようにしている。 その他にも、再送の間隔を調整したり、エラーハンドリングも行っている。

その他

windows対応はJBATさんと一緒に開発中とのこと。 production状態ではないが、動くことは動くらしい。 また、fluentdの次versionであるv11は互換性はない。 その他に、td-agentは、fluentdとその他必要なパッケージを組み込んだもの。

他ログコレクタとの比較

Flume
  • clouderaが作成
  • 物理サーバと論理サーバの構造とでログ転送経路を異なって作ることができる
  • hadoopにバンドルされていることもあり、HDFS用に使われる
  • 設定はマネージメントノードが扱う
  • javaライク
  • hadoop向け
Logstash
  • elasticsearchのフロントエンドによく使われる
  • 転送の間にredisを導入するため利用するデーモンが増える
  • jarを落とすだけでelasticsearchとkibanaも入っている
  • JRubyで書かれている


2. 導入編

導入編では、td-agentとTreasureDataを使ってデータ収集から集計までを実際にやってみようという内容でした。 fluentdの設定ファイルや、TreasureDataからGoogle SpreadSheetへの出力などを紹介されていました。

IPROSさんの勉強会で発表されたスライドはこちらのイプログにて公開していくそうなので、ぜひ一度チェックしてみてはいかがでしょうか。

ちなみに弊社のビッグデータ技術ブログでも導入方法については何度かご紹介致しました。 記事のリンクを下記致しますので、ぜひ皆様も一度試されてみてはいかがでしょうか?

TreasureDataの導入方法
http://sstd-bigdata.blogspot.jp/2013/04/tresure-data.html
fluentdでアクセスログをTreasureDataに送信
http://sstd-bigdata.blogspot.jp/2013/05/treasure-data.html
TreasureDataから集計結果をファイル出力
http://sstd-bigdata.blogspot.jp/2013/05/treasure-data_8.html


3. 実践編

実践編では、fluentdの各種プラグインやIPROSさんでのログの可視化をどのようにしているかについてご紹介して頂きました。 ログ可視化には、Leftronicを利用して可視化しているそうです。 また、分析にはTreasureData以外にもRedshiftを使っているそうです。

紹介されていたfluentdのプラグインをいくつか挙げます。

woothee
クローラを抽出
groupcounter
group byをfluentdで実現
rewrite-tag-filter
tagを自在に書き換える

個人的に今回知って嬉しかったプラグインは、wootheeですね。fluentdでログを集めてもクローラ対策はどうしたら良いのかという話を小耳にはさんでいたので、これで万事解決できそうです。


IPROSさんは今後も月一回ペースで勉強会をしていくそうです。 私も積極的に勉強会に参加させて頂きたいなと思います。 以上、宜しくお願い致します。

執筆:髙橋@SSTD