ほわいとぼーど

ぷろぐらまのメモ帳

Elasticsearchを触ってみた話の続き

「Kibana3+Elasticsearchを触ってみた話」の続き。
前回は設定周り飛ばしたのでその辺とか書くつもりだったのですが、
分割して色々書いたのでまとめっぽい。


・環境
Vagrant+VirtualBox+Ubuntu12.04で試して
1週間くらい前からテスト環境のAWS上で動いている。
ものすごく残念なことにSmallだけど。性能の話はしない!


・インストール
こちらの方を参考にしました、でフィニッシュです。
debやrpmのパッケージも既に用意されているようですね。
最近色んな人が記事あげてるのですぐ見つかると思います。


・Plugin×Proxy
各種Proxy設定頑張ってもダメで、たしかエラーからはgit://~とか見えたので
gitにProxy設定かとgit config --systemとか適当にやってダメだと思ってたら、
大谷さんが割りと最近に書いてた。大層捗りました。


とりあえずheadとbigdeskは入れておいたらいいと思います。
headは生データ見れるしindexもシャードも視覚確認できるし、
右クリメニューからindex削除とかmapping確認出来ちゃう、素敵plugin
元から同梱でもいいのではないだろうか。
(簡単に記事書きました。「Elasticsearchのhead plugin」
bigdeskはLoadAverageとかMemory使用量とかそういうの表示するやつですね。
JVMの中を監視するのは何かしら必要なので入れておきましょう。

その他、超大量のplugin一覧はこちら


・データを入れる前に
インストールして動いたら次は本体設定をします。
クラスタ周りとか色々な設定ありますが今のところデフォルトのまま。
mappingはtemplatesで設定しました。「Elasticsearchにmappingをtemplate設定してみた」
indexの話も少し書きました。「Elasticsearchのlogstash形式indexについて」


・データを入れる
リアルタイムに入れる場合、fluentd大先生にお願いしてフィニッシュです。
簡単に説明しました。「Elasticsearchにfluentdする設定とかlabelの話」

リアルタイムじゃない場合はbulk_importとかあるのですが、
データの整形がめんどうだったのでこれもfluentdしました。


・画面の設定周りとか
Kibana3はわりと感覚的に使えます。
大谷さんのブログ見ると更にわかりやすいです。
あと、y_310さんのブログのQuery制御周りは非常にためになりました。


・monit入れた話
Vagrant+Virtualboxで検証してる時に過去ログをfluentd経由で入れたら
結構な頻度でElasticsearchが落ちました。
bin/elasticsearch -fしてると画面上にkilledとか表示されて落ちます。
これは今思うとvagrantfileにMemory割り当てしてなかったのと、
過去ログをファイル単位でそのまま投入したので、
投入した瞬間に大量のログが流れ込んだせいだと思うのですが、
AWS上で起こると怖いのでmonitを入れて自動再起動するようにしました。
最初はsupervisordにしようと思ったのですが、
bin/elasticsearchは実は内部はただのシェルだったので、
supervisordの仕組み(プロセスをforkする?)ではうまく監視できずmonit(PID制御)にしました。
この辺は自分は詳しくないし小一時間程度の調査しかしてないのでやり方はあるのかも。


とりあえず数日頑張ったKibana3+Elasticsearchの記事は一通り。
書いてる間にも色んな人が書いてて今更感漂ったけどやりきった。
自分は触りだしてから1週間とかそこらしかたってないので
そういった面から見ても非常に使いやすいツール群だなと思います。