Fluentd、ElasticsearchとKibanaでログ検索とグラフ表示を可能にする
前回の記事でFluentdを使ってログをログ収集サーバに転送する方法を紹介しました。
今回は転送されたログをElasticsearchに登録し、Kibanaでログ検索とグラフ表示する方法を紹介します。
ログ収集サーバー(前回の記事でいうVagrant)の変更を行っていきます。
FluentdのElasticsearchプラグインをインストール
まずは、FluetndのElasticsearchプラグインをインストールしておきます。
1 | $ sudo /usr/sbin/td-agent-gem install fluent-plugin-elasticsearch |
Javaのインストール
Elasticsearchを動かすにはJavaが必要なのでJavaをインストールします。
1 | $ sudo yum install java-1.7.0-openjdk |
Elasticsearchのインストールと起動
今回はアーカイブをダウンロードしてきてインストールします。
インストールといっても特に設定は不要でアーカイブを展開してbin/elasticsearch
を実行するだけです。
1 | $ curl -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz |
kibanaのインストールと起動
Kibanaも同じようにアーカイブをダウンロードして起動します。
1 | $ curl -O https://download.elastic.co/kibana/kibana/kibana-4.5.1-linux-x64.tar.gz |
http://192.168.33.10:5601
にブラウザでアクセスするとKibanaの管理画面が表示されます。
Indexの設定が必要ですが、ここでは何もせず次に進みます。
syslogのログをElasticsearchに格納する
syslogのログをElasticsearchに格納し、Kibanaで参照します。
/etc/td-agent/td-agent.conf
に以下を追記します。
1 | <source> |
fluendをリスタートします。
1 | $ sudo service td-agent restart |
次にsyslogの設定をします。
/etc/rsyslog.conf
に以下を追記します。
syslogが出力するログをFlutedがlistenするポート、42185に転送するための設定です。
1 | *.* @127.0.0.1:42185 |
設定を反映させるため、syslogをリスタートします。
1 | $ sudo /etc/init.d/rsyslog restart |
先ほど確認した http://192.168.33.10:5601
に戻ります。
syslogの出力がElasticsearchに登録されると、Indexを登録できるようになります。
Indexはlogstash-2016.07.05
のような名前で作成されます。
セレクトボックスからIndexを選択し、Createボタンを押下後にKibanaでログの表示、検索が行えます。
手動でElasticsearchにログを送りたい場合は以下のコマンドで登録できます。
1 | logger -t test foobar |
もしくは、Fluentdのhttpポートにリクエストします。
1 | $ curl -X POST -d 'json={"json":"Hello"}' http://localhost:8888/syslog.test |