Monday, September 24, 2012

fluentdのインストールと簡単な使い方

fluentdはRubyで書かれたsyslogdのようなロギングミドルウェア。様々なログをネットワーク上で色々ルーティングして、たとえば最終的にMongoDBに登録したりすることができる。

fluentdをインストールして使ってみる。 インストールはgemで一発。

$ gem install fluentd

fluentdを起動するには、作業ディレクトリを作ってコマンドで設定ファイルを作成する。起動はfluentdを-cオプションでキックする。

$ fluentd --setup ./fluent
$ cd fluent
$ fluentd -c conf/fluent.conf

動作確認は別コンソールで次のように打ち込むと、先ほどのコンソールにログが出力される。

$ echo '{"json":"message"}' | fluent-cat debug.test

ここまでは公式サイトと同内容。 次に、テキストファイルをtailのようにウォッチして、fluentdに転送してみる。 conf/fluent.confを次のように記述する。

<source>
  type tail
  path /path/to/test.log
  tag debug.*
  format /^(?<log>.*)$/
</source>

<match debug.**>
  type stdout
</match>

ここで、sourceディレクティブのtagはどのmatchディレクティブにログをルーティングするかを決めるためのキーとなる。RabbitMQのルーティングキーと同じ感じ。formatディレクティブは、出力形式を正規表現で設定する。このとき、マッチした箇所に?<name>で名前を付ける。上記例だとlogという名前にしてる。

この状態でfluentdを起動して/path/to/test.logに追記すると、コンソールにログが出力される。

$ echo test >> /path/to/test.log

No comments: