ログをfluentdからelasticsearchに流し込みKibanaを使って表示させるため、elasticsearchとKibanaをセットアップした時の備忘録。
セットアップするサーバ
- EC2 (Amazon Linux)
elasticsearchのインストール
$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.0.1.noarch.rpm
$ sudo rpm -ivh elasticsearch-1.0.1.noarch.rpm
$ rm elasticsearch-1.0.1.noarch.rpm
-
/usr/share/elasticsearch
以下に本体がインストールされた?? -
/etc/elasticsearch/elasticsearch.yml
が設定ファイル -
/var/lib/elasticsearch/elasticsearch/nodes/0/indices/
下に、データが突っ込まれていくようだ
起動
$ sudo /etc/init.d/elasticsearch start
$ sudo chkconfig elasticsearch on
9200番ポートにアクセス、ちゃんと起動してれば以下のレスポンスが返ってくる。
$ curl localhost:9200
{
"status" : 200,
"name" : "Trader",
"version" : {
"number" : "1.0.1",
"build_hash" : "5c03844e1978e5cc924dab2a423dc63ce881c42b",
"build_timestamp" : "2014-02-25T15:52:53Z",
"build_snapshot" : false,
"lucene_version" : "4.6"
},
"tagline" : "You Know, for Search"
}
Kibanaインストール
続いてKibana。
$ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.0.0milestone5.tar.gz
$ tar zxf kibana-3.0.0milestone5.tar.gz
$ rm kibana-3.0.0milestone5.tar.gz
$ sudo mv kibana-3.0.0milestone5 /usr/local/kibana
- 落としてきたファイルを
/usr/local/kibana
以下に置いた - 設定ファイルは
/usr/local/kibana/config.js
接続先を指定
/usr/local/kibana/config.js
/*
elasticsearch: "http://"+window.location.hostname+":9200",
*/
elasticsearch: "http://<グローバルIPアドレス>:9200",
24行目付近を修正、elasticsearchを動かしているサーバのグローバルIPアドレスを指定。
Nginx設定
Kibanaを配信できるようにするため、Nginxの設定も編集する。
/etc/nginx/nginx.conf
location / {
root /usr/local/kibana/;
index index.html index.htm;
}
元々書いてあったのをいったんコメントアウトして、こんな感じに。
参考
NginxやApacheの設定例などは公式ページに載ってたりもする
security groupの設定
9200番ポートが外部に対して開放されていなかったので開けた。EC2 Management Consoleから設定。Custom TCP Ruleで9200を指定、特定IPからのみ参照できるように
動作確認
ちゃんとセットアップできているか確認。
Nginxを再起動して、ブラウザで該当サーバにアクセス(http://[IPアドレス(ホスト名)])。Kibanaのダッシュボード画面が確認できた。