2013年11月23日
ログ集約の仕組みに「fluentd」を構築してみた。
ログ集約サーバとしてfluentdを構築しました。
http://fluentd.org/
まず、ログの知識として、
・/var/log配下に吐かれる。
・/var/log/messagesくらいしか使わない
・障害対応は、障害を検知したサーバ一つ一つにログインして調べる
今まではこれくらいで充分でした。
たいてい、どこのサーバが、何のアプリケーションでこけているか
くらいしか分からなく、対応するのはサービスの再起動か、
設定ファイルの修正といったところでしょうか。
fluentdは、ログ集約に使うOSSです。
名前すら聞いたこと無かったですが、かなり便利な代物で、
結構いろんなところで記事が上がっていますね。
それでも、細かいことについては書いてあるところがなくて、
それくらいわかるでしょ?的なスマートなエンジニアたちの備忘録ばかりだったりします。
ログを収集して1つのファイルにまとめたり、他のサーバに転送したり
という目的で作られていて、吐かれたログをJSON形式で成形して、
例えば、
"host":"192.168.1.1",
"status":"Error",
"code":"404",
などのように成形してくれます。、
また、ログファイルごとに、タグをつけて、
このタグはこのディレクトリにこういう風に成形して保存してね。
といったカスタマイズができます。
なので、100台のサーバのログ集約を1台のサーバで
ディレクトリごとにログファイルを集めて管理するといった事ができるわけです。
とても便利な反面、わかりづらかったことは、
・通常の機能と、プラグインを追加しないとできない機能
・こういうことをしたい!と思ったときにプラグインがあるのか、どのプラグインか?
・すべてが自動成形されるわけじゃない。
・思ったように成形させるには、rubyの正規表現を書く必要があり、仕様を理解するのが大変だった。
おそらく、インストールしてみた的な記事を書いたら10記事はかける。
シンプル・簡単!などの文言が多い中、インストールだけして動作を見るといったところと、
実際にサービスとして運用する時の手間はぜんぜん別物だった。
それはそうだ、私は構築経験のあるエンジニアではなく、ド素人であるので。
ちょっと、いろいろ勉強して勘違いしていたw
今のクラウド環境が当たり前な世の中では、
AWSのS3(ファイルサーバ)にfluentdを使ってログやデータを転送。
S3のエンドポイントさえわかっていれば、どこからでもログやデータの内容をチェックしたりできますね。
また、監視ソフトとの連携や、データをグラフで可視化なんてことにも使われているみたいです。
私は、fluentdの理解度はおそらく30%くらいしか理解できていないけど、
いろいろな用途に使えて、今後も使われていくだろうなと感じました。
http://fluentd.org/
まず、ログの知識として、
・/var/log配下に吐かれる。
・/var/log/messagesくらいしか使わない
・障害対応は、障害を検知したサーバ一つ一つにログインして調べる
今まではこれくらいで充分でした。
たいてい、どこのサーバが、何のアプリケーションでこけているか
くらいしか分からなく、対応するのはサービスの再起動か、
設定ファイルの修正といったところでしょうか。
fluentdは、ログ集約に使うOSSです。
名前すら聞いたこと無かったですが、かなり便利な代物で、
結構いろんなところで記事が上がっていますね。
それでも、細かいことについては書いてあるところがなくて、
それくらいわかるでしょ?的なスマートなエンジニアたちの備忘録ばかりだったりします。
ログを収集して1つのファイルにまとめたり、他のサーバに転送したり
という目的で作られていて、吐かれたログをJSON形式で成形して、
例えば、
"host":"192.168.1.1",
"status":"Error",
"code":"404",
などのように成形してくれます。、
また、ログファイルごとに、タグをつけて、
このタグはこのディレクトリにこういう風に成形して保存してね。
といったカスタマイズができます。
なので、100台のサーバのログ集約を1台のサーバで
ディレクトリごとにログファイルを集めて管理するといった事ができるわけです。
とても便利な反面、わかりづらかったことは、
・通常の機能と、プラグインを追加しないとできない機能
・こういうことをしたい!と思ったときにプラグインがあるのか、どのプラグインか?
・すべてが自動成形されるわけじゃない。
・思ったように成形させるには、rubyの正規表現を書く必要があり、仕様を理解するのが大変だった。
おそらく、インストールしてみた的な記事を書いたら10記事はかける。
シンプル・簡単!などの文言が多い中、インストールだけして動作を見るといったところと、
実際にサービスとして運用する時の手間はぜんぜん別物だった。
それはそうだ、私は構築経験のあるエンジニアではなく、ド素人であるので。
ちょっと、いろいろ勉強して勘違いしていたw
今のクラウド環境が当たり前な世の中では、
AWSのS3(ファイルサーバ)にfluentdを使ってログやデータを転送。
S3のエンドポイントさえわかっていれば、どこからでもログやデータの内容をチェックしたりできますね。
また、監視ソフトとの連携や、データをグラフで可視化なんてことにも使われているみたいです。
私は、fluentdの理解度はおそらく30%くらいしか理解できていないけど、
いろいろな用途に使えて、今後も使われていくだろうなと感じました。