Fluentdってなんじゃ?memorycraft更新とか絶対忘れるから。2012年11月5日月曜日Fluentdってなんじゃ?今回はfluentdについて触れてみたいと思います。普段サーバーの運用をしていて、規模が大きくなりサーバーが分散されるとWebサーバーやアプリケーションのログが各サーバーに散在することになり、ユーザーからの問い合わせや集計などのためにログをかき集めたりする必要が出てきます。fluentdはイベントログをJSONフォーマットで転送して一箇所に集約するためのツールです。集計などを行う場合、Apacheなどの生ログはテキストデータなのですが、fluentdを経由しJSON化することで、ログのデータをオブジェクトとして扱うことが出来るので、DBに入れてフィルタをかけて集計なども簡単に行えます。fluentdは入力元となるログの種類や出力先の指定をプラグイン形式で様々なフォーマットに対応して、それぞれを組み合わせることで数多くの用途に答えることができます。以下のような入出力ができます。出力先:ファイルに書き出み各種DBへ保存SQSでキューにメッセージ送信S3へ保存Growlで通知メール送信Twitterへ投稿こうみるとPlaggerを思い出しますね。fluentdはruby環境が必要ですが、TreasureDataというデータウェアハウスがtd-agentというruby環境込みのstableパッケージを提供しています。td-agentを使用すると、ruby環境がない場合や既存のruby環境を壊したくない場合にとても有用です。今回はtd-agentを利用してみます。td-agentをインストールします。TreasureDataのyumリポジトリを登録してから、yumでインストールを行います。-yインストールはこれで完了です。次に、設定ファイルを見てみます。設定ファイルはシンプルで、source定義で指定した入力を、マッチしたmatch定義の設定で出力します。flluentdのQuickStartにあるように付属のflluent-catを使用して、擬似的なTCPからの入力をローカルのファイルに出力するように設定します。いうファイルに受け取ったデータを出力するという意味の設定になります。設定を記述したら起動します。startそしてfluent-catで以下のようにコマンドからJSONを送ってみます。その際、引数として、タグとして設定した「test」を渡します。testすると、以下のようなファイルが生成され、時間+タグ+JSONの形式で出力されていることがわかります。World!"}ここまででは、ただファイルに入力したのと変わらないので、便利さがわかりづらいと思います。次回はログをリモートのサーバーに転送してみたいと思います。