Fluentd + Elasticsearch + Kibana3を動かしてみる

Elasticsearchすげーよ、なんでいままで使ってなかったんだろう!的なツイートを見かけて、おおこれは触っておかなければ、と思い立ちました。

ElasticsearchにRESTでデータを投げ込んで、それをKibana3で見てみましたが、なんだかピンとこなかったので、みんなどうしているのかなとggってみると、ApacheログをFluentdで読んでElasticsearchに投げてKibana3で見る、っていうのをみんなチュートリアル的にやってる感じなのでそれをやってみました。
参考にしたのはこちらです。
Apache-loggen + Fluentd + Elasticsearch + Kibana = ログ検索デモ

Elasticsearchのインストール

本家サイトからzipをダウンロードして解凍したディレクトリで

$ bin/elasticsearch -f

で起動。 簡単です。

Kibana3のインストール

これまた本家サイトからzipをダウンロードして解凍したディレクトリをApacheのドキュメントルートに放り込めば動きます。
簡単です。

Fluentdのインストール

若干ハマりました。。
Fluentdはいろいろとインストールの方法があるのですが、なんとなくbrewでインストールしてみました。
で、FluentdからElasticsearchへ連携するためにfluent-plugin-elasticsearchというFluentdのプラグインを使いますのでインストールします。
fluent-plugin-elasticsearch
そしてFluentdの設定を追加します。

td-agent.conf
<source>
  type tail
  format apache
  path /Applications/XAMPP/logs/access_log
  tag xampp.apache.access
</source>

<match *.apache.*>
  index_name adminpack
  type_name apache
  type elasticsearch
  include_tag_key true
  tag_key @log_name
  host localhost
  port 9200
  logstash_format true
  flush_interval 10s
</match>
$ td-agent

で、td-agentを起動します。

これで準備はできたのですが、トラブル発生。 td-agentでエラーが発生しました。

2013-12-18 17:05:29 +0900 [error]: config error file="/usr/local/etc/td-agent/td-agent.conf" error="Unknown output plugin 'elasticsearch'. Run 'gem search -rd fluent-plugin' to find plugins"

elasticsearchのpluginが見つからないと。。インストールしたはずなのですが。

調べてみると、Fluentdは独自のGEM_HOMEを持っていて、そこにインストールしないとダメらしいです。

$ /usr/local/bin/fluent-gem install fluent-plugin-elasticsearch

これでtd-agentがpluginを見つけてくれました。

Comments