2013/11/08

elasticsearch-headを使ってみる

今日はelasticsearch-headを使ってみました。

インストール
2台のEC2インスタンスを作成し、ElasticSearch + AWS Cloud Plugin for ElasticSearchでクラスタ構成にします。手順は「AWS Cloud Plugin for ElasticSearchを使う – AWSで始めるElasticSearch(3)」を参照して下さい。

elasticsearch-headはpluginコマンドでインストールします。
$ sudo /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip...
Downloading .......................DONE
Installed mobz/elasticsearch-head into /usr/share/elasticsearch/plugins/head
Identified as a _site plugin, moving to _site structure ...
インストール後、elasticsearchのサービスを再起動し、「http://IPアドレス:9200/_plugin/head/」にWebブラウザでアクセスすると、elasticsearch-headのWebUI画面が表示されます。


使い方
[Overview]タブでは概要が表示されます。この状態では2台のElasticSearch nodeがCluster構成になっており、dicというIndexが共有化されていることが分かります。数字の札はShardを表しています。

数字をクリックするとShardのステータスが表示されます。

[Browser]タブでは各Indexの情報が参照できます。この例だとIndex=dic、Type=ejの情報が表示されています。

[Structured Query]画面では、通常JSONで投げるQueryを簡単に投げることが出来ます。この例ではmatch_allでQueryしたところです。

これはej.wordというfieldのtermに"run"があるものをQueryしたもの。

[Any Request]タブでは、Request Methodを指定して投げられます。POSTとかDELETEとかですね。結果はJSONで右側ペインに表示されます。curlでRESTful API叩くのと同様ですね。

右上の[Info]ドロップダウンからは、固定的なInfoやStats画表示できます。例えばNode Statsだったり...

Cluster Stateなどを表示することが出来ます。


まとめ
elasticsearch-headで表示できることは大体RESTful APIで出来てしまうのだけど、まぁ取っ付きやすくはあるかなぁと思いました。でも例えばAWSでPrivate Subnetに配置している場合とか、わざわざWebUI使わないよなぁ...curl+jqで充分かなぁという気がします。Shardの分散状態が確認できるのは便利ですね。



Mastering ElasticSearchMastering ElasticSearch
Rafał Kuć,Marek Rogoziński

Packt Publishing

Amazonで詳しく見る by AZlink