Fluentdを使うアプリケーションの導通テストにstdoutプラグインを使う。

人気のログ管理ツールFluentdをシロクの各サービスでも使っています。
とりあえず投げ込んでおいて、あとは良い感じのプラグインを選べば、不思議なくらい簡単にログが管理できます。
スクリーンショット 2013-07-29 19.22.28

Mac OSXにFluentdをインストール

まずローカルのMac OSXにFluentdを入れる必要がありますが、gemで簡単に入ります。

gem install fluentd

・・・簡単に入る気がしたんですが、過去の作業ログを辿ってみたら、Rubyのバージョンが少々古いと怒られて、このアップデートに結構苦戦した記録が残っていました。
その時参考にしたブログです。
Ruby 1.9.3-p385インストール(Mac OS X 10.8.2)
Rubyのバージョンさえ上がれば、Fluentd自体は簡単に入った覚えがあります。

ローカル環境で開発、どうする?

本番の環境では、Fluentd専用のサーバを立てていたり、Fluentdサーバ同士でログを受渡したりしています。
ですが、開発のためのローカル環境ではそこまでのことはせずに、単にアプリケーションからFluentdにログが流れてこんでいることだけ確認をしたいという場合があります。
そういうときに使えるのが、stdoutプラグインです。

Fluentdが受け取ったログを標準出力に吐くだけ

stdoutプラグインは文字通りログを標準出力に吐くだけの動作をします。
stdout Output Plugin | Fluentd
stdoutプラグインの設定は、stdoutプラグインを使うという宣言だけです。


  type forward
  port 24224


  type stdout

これで、Fluentdを起動してやります。

$ fluend

アプリケーションはJavaで書いているのですが、FluentLoggerにログデータを投げ込むと、Fluentdが即座に標準出力にログを吐いてくれます。
これで確かにFluentdにログが投げ込めていることが確認できるので、あとは出力プラグインの設定を変えるなりすれば、Amazon S3に保存したり、MongoDBに保存したりできます。
stdout以外のプラグインは、ログを一定量バッファする仕組みを持っていたりして、本当にログが流し込めているのか分かりにくい場合もあります。そういう場合にも、確認のためにstdoutプラグインが使えます。

コメント

タイトルとURLをコピーしました