FluetndからElasticsearchへログを転送し、Kibanaでログを可視化できるか試してみました。転送するログはSensu Serverのログを使用しました。
構成
Ubuntu 12.04: Sensu Server インストール対象
Ubuntu 12.04: Elasticsearch
※上記はDocker 1.0.0上で動作しています。
Fluentdのインストール
Fluentdをインストールします。
Fluentdの安定版であり、Rubyのインタープリンタを含んだtd-agentを使用します。また、td-agentの必須パッケージのlibssl0.9.8が入っていなかったので合わせてインストールしています。
$ curl http://packages.treasuredata.com/GPG-KEY-td-agent | apt-key add - $ echo "deb http://packages.treasuredata.com/precise/ precise contrib" > /etc/apt/sources.list.d/treasure-data.list $ apt-get update $ apt-get install -y libssl0.9.8 $ apt-get install -y ntp td-agent
Fluentdのバージョンを確認します。
$ /usr/lib/fluent/ruby/bin/fluentd --version fluentd 0.10.50
supervisorでFluentdを起動する設定を追加します。
$ vi /etc/supervisor/conf.d/td-agent.conf [program:td-agent] command=/etc/init.d/td-agent start autostart=true autorestart=true
Elasticsearchへの連携
td-agent.confに以下の内容を追加し、転送するログとElasticsearchサーバの指定を行います。
今回はSensu Serverのログを転送する設定をしています。
$ vi /etc/td-agent/td-agent.conf <source> type tail format json path /var/log/sensu/server.log tag ubuntu.sensu.server pos_file /tmp/sensu.pos </source> <match *.sensu.*> type elasticsearch include_tag_key true tag_key @log_name host <IPアドレス> port 9200 logstash_format true flush_interval 10s </match>
supervisorをリロードして、Fluentdを起動します。
$ supervisorctl reload