クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

Elasticsearchのインストール奮闘記

こんにちは、インフラ担当のmatsBです。
社内では笑顔を担当しています。


今回は、以前hamanokamiがElasticsearch
Elasticsearch運用で気をつけていること ~インデックス再構築編~ - 株式会社クイックのWebサービス開発blog
について書いていたので、Elasticsearchのインストールについて書きたいと思います。
Elasticsearchのバージョンが1.3.4と古いのですが、、、ご容赦ください。
バージョン上げてリプレースしたら、また書きますので。


インストール自体は意外と簡単で、実はJAVAのバージョンとElasticsearchのバージョンと形態素解析する場合はtokenizerにさえ気にしてれば問題は少なかったです。


OS環境:CentOS 6.6(2.6.32-504.1.3.el6.x86_64)
Elasticsearch:1.3.4


まずはJAVAのインストール

[root@localhost ~]# wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=95116
[root@localhost ~]# mv AutoDL\?BundleId\=95116 jre-7u67-linux-x64.tar.gz
[root@localhost ~]# tar zxvf jre-7u67-linux-x64.tar.gz -C /usr/java/

次にElasticsearch本体のインストール

[root@localhost ~]# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.4.noarch.rpm
[root@localhost ~]# yum localinstall elasticsearch-1.3.4.noarch.rpm
[root@localhost ~]# echo "export JAVA_HOME=/usr/java/jre1.7.0_67" |  tee -a /etc/sysconfig/elasticsearch

ってまぁインストール自体はこれで終わりなんですが、日本語の全文検索でtokenizerをkuromojiにして使いたかったのでkuromojiを入れました。

kuromojiをインストール

[root@localhost ~]# JAVA_HOME=/usr/java/jre1.7.0_67 /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-analysis-kuromoji/2.3.0
[root@localhost ~]# echo "index.analysis.analyzer.default.type: custom" |  tee -a /etc/elasticsearch/elasticsearch.yml
[root@localhost ~]# echo "index.analysis.analyzer.default.tokenizer: kuromoji_tokenizer" |  tee -a /etc/elasticsearch/elasticsearch.yml



そして各種プラグインを突っ込みました。
追加プラグインは下記の4つです。
・elasticsearch-HQ
・marvel/latest
・elasticsearch-inquisitor
・elasticsearch-head



■追加プラグイン:elasticsearch-HQ

[root@localhost ~]# JAVA_HOME=/usr/java/jre1.7.0_67 /usr/share/elasticsearch/bin/plugin -install royrusso/elasticsearch-HQ

アクセス先:http://localhost:9200/_plugin/HQ/#cluster
導入理由:モニタリング用

■追加プラグイン:marvel/latest

[root@localhost ~]# JAVA_HOME=/usr/java/jre1.7.0_67 /usr/share/elasticsearch/bin/plugin -install elasticsearch/marvel/latest

アクセス先:http://localhost:9200/_plugin/marvel/kibana/index.html#/dashboard/file/marvel.overview.json
導入理由:なんか見た目が格好いいから
アクセス先:http://localhost:9200/_plugin/marvel/sense/index.html
導入理由:文字解析が分かりやすいから


■追加プラグイン:elasticsearch-inquisitor

[root@localhost ~]# JAVA_HOME=/usr/java/jre1.7.0_67 /usr/share/elasticsearch/bin/plugin -install polyfractal/elasticsearch-inquisitor

アクセス先:http://localhost:9200/_plugin/inquisitor/#/queries
導入理由:クエリの確認ができるから


■追加プラグイン:elasticsearch-head

[root@localhost ~]# JAVA_HOME=/usr/java/jre1.7.0_67 /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head

アクセス先:http://localhost:9200/_plugin/head/
導入理由:GUIで動かせるっぽいから


結構こんな感じでインストールは完了です。
最後に、一番気をつけなくてはいけない、、、と言うより知らないでやると悲惨な目にあう箇所を紹介します。
それは/etc/elasticsearch/elasticsearch.yml の中の"cluster.name"です。
Elasticsearchはとても気をきかせてくれるので、同じネットワーク上で同じcluster.nameを持っていると勝手にクラスタ構成になってくれるからです。

今回はXenServer上で作ったので、イメージを取得して同じイメージを検証用とかに展開させたりしてました。
するとcluster.nameが一緒なので勝手にクラスタ構成を組んで、意図せず片方のINDEXを削除すると構成が崩れたりして。
高機能すぎて震えて泣きました。



いっしょに泣いてくれる
戦士(なかま)
   を
大募集
しています!