はじめに
- 一昨日の第 2 回 elasticsearch 勉強会で @pisatoshi さんのお話中に紹介されていた elasticesearch-head を試してみた
elasticsearch
自体は導入がとても簡単で手軽に試せるのが嬉しい- さらに
docker
のコンテナにしておけば誰かに説明することがあったらコレをdocker pull
してで試してみてーと言える
elasticsearch-head とは
設定
- とっても簡単
- こっちの docker コンテナを利用
- dockerfile でやろうと思ったけど cookbook にした
早速試す
docker コンテナを起動
cookbook を適用する為
せっかく作った cookbook
を適用する為に ssh
でアクセス出来るようにしてコンテナを起動する。
docker pull sudo dokcer run -i -t -H=tcp://127.0.0.1:4243/ run -i -t -p 22 inokappa/wheezy-7.2 /bin/bash
起動したら cookbook
を適用する。
knife solo prepare root@${docker0} -p ${bind_to_ssh_port} knife solo cook root@${docker0} -p ${bind_to_ssh_port}
出来上がった(cookbook
を適用した)コンテナを一旦、docker commit
する。
sudo docker ps -a sudo docker commit ${ID} inokappa/wheezy-7.2-elasticsearch
elasticsearch コンテナを起動する
上記でコミットしたコンテナを起動する。
sudo docker -H=tcp://127.0.0.1:4243/ run -i -t -p 9200:9200 inokappa/wheezy-7.2-elasticsearch /bin/bash
キモは特に無し。外部からアクセスさせるポート(-p 9200:9200
)だけ気をつける。
elastisearch を起動
コンテナにログインして elasticsearch
を起動する。
/etc/init.d/elasticsearch start
念の為、ps
等で起動を確認する。
103 10109 0.1 2.4 1566884 93820 ? Sl Nov13 2:22 /usr/lib/jvm/java-6-openjdk-amd64/bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.pidfile=/var/run/elasti csearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/elasticsearch/lib/elasticsearch-0.90.7.jar:/usr/share/elasticsearch/lib/*:/usr/share/elasticsearch/lib/sig ar/* -Des.default.config=/etc/elasticsearch/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path. data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.ElasticSearch
ちなみにコンテナの起動は以下のように起動しても良い。ちょっと長いけど。
sudo docker -H=tcp://127.0.0.1:4243/ run -i -t -d -p 9200:9200 inokappa/wheezy-7.2-elasticsearch /usr/lib/jvm/java-6-openjdk-amd64/bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.pidfile=/var/run/elasticsearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/elasticsearch/lib/elasticsearch-0.90.7.jar:/usr/share/elasticsearch/lib/*:/usr/share/elasticsearch/lib/sigar/* -Des.default.config=/etc/elasticsearch/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.ElasticSearch
docker
の -d
オプションでコンテナをデーモンとして動作させてしまう。
ブラウザから elasticsearch-head へアクセス
ブラウザから http://${docker0}:9200/_plugin/head/
としてアクセスする。
おお。
インデックスを作ってみる
New Index
をクリックするとインデックス名やシャードの数、レプリカの数を指定する為のポップアップが開くので適宜指定する。
OK
をクリックすると以下のように一瞬エラッたのかと思わせるポップアップとともにインデックスが作成される。
以下の通りインデックスが作成された。
もちろん作成したインデックスの削除や、インデックスのエイリアスの設定等も elasticsearch-head
から行える。また、インデックスのステータスやシャードのステータスが以下のようにクエリとして確認出来る。
最後に
- 今回作ったコンテナはこちらにアップした
elasticsearch-head
はelasticsearch
の状態を可視化してくれるので自分のような初心者でも視覚的に状況を理解出来るのが嬉しい