アプリにelasticsearchを導入したので忘備録的なメモ。
以前、この記事で利用方法をまとめましたが、こちらもナレッジを追加修正して随時更新していきます。
なお、今回elasticsearchの導入にはchefを使いました。
環境
- rails(ruby2.2.2, rails4.2.1)
- vagrant centOS6.5
- chef11
- elasticsearch1.5.2
berkshelf
Berksfileファイルに以下のcookbookを記載します。
cookbook 'elasticsearch' cookbook 'java'
javaはversion8を使いたいので、cookbookに記載しました。version7で問題ない場合は、このcookbookは不要です。
berks vendor cookbooks
// 以前のcookbookは破棄する rm -rf cookbooks berks vendor cookbooks
roleの設定
role/elasticsearch.jsonを作成します。
{ "name":"elasticsearch", "chef_type": "role", "json_class":"Chef::Role", "description":"tool server role", "run_list": [ "recipe[java]", "recipe[elasticsearch]", "recipe[elasticsearch::plugins]" ], "default_attributes": { "java": { "install_flavor": "oracle", "jdk_version": 8, "java_home": "/usr/local/java", "oracle" : { "accept_oracle_download_terms": true } }, "elasticsearch": { "version": "1.5.2" } } }
elasticsearchは1.5.3を指定します。elasticsearch::pluginsでプラグインも指定しています。
pluginの設定
elasticsearchにはkuromojiを始めとして、様々なpluginが存在します。
これらのpluginを利用するために、installに必要な設定を記述します。
mkdir -p data_bugs/elasticsearch/ touch data_bugs/elasticsearch/plugins.json
plugins.jsonの記述
必要となるpluginを記載します。
{ "id": "plugins", "_default": { "plugins": { "elasticsearch/elasticsearch-analysis-kuromoji": { "version": "2.5.0" }, "royrusso/elasticsearch-HQ": {}, "elasticsearch/marvel/latest": {}, "polyfractal/elasticsearch-inquisitor": {} } } }
chef-soloを実行
あとはいつも通りにchefを実行するだけです。
knife solo cook localhost
無事に実行が完了したら、localhost:9200に接続すると以下のjsonが表示されます。
{ "status" : 200, "name" : "192.168.33.12", "cluster_name" : "elasticsearch", "version" : { "number" : "1.5.2", "build_hash" : "62ff9868b4c8a0c45860bebb259e21980778ab1c", "build_timestamp" : "2015-04-27T09:21:06Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" }
続いてpluginのinstallを確認します。
urlにhttp://localhost:9200/_nodes/_all?plugin=true&prettyを指定します。
// something(長いので省略) "plugins" : [ { "name" : "analysis-kuromoji", "version" : "2.5.0", "description" : "Kuromoji analysis support", "jvm" : true, "site" : false }, { "name" : "marvel", "version" : "1.3.1", "description" : "Elasticsearch Management & Monitoring", "url" : "/_plugin/marvel/", "jvm" : true, "site" : true }, { "name" : "inquisitor", "version" : "NA", "description" : "No description found.", "url" : "/_plugin/inquisitor/", "jvm" : false, "site" : true }, { "name" : "HQ", "version" : "NA", "description" : "No description found.", "url" : "/_plugin/HQ/", "jvm" : false, "site" : true } ]
指定した4つのpluginがinstallされているのが確認できました。
以上
0 件のコメント:
コメントを投稿