アプリに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されているのが確認できました。
以上
参考サイト
この記事がお役にたちましたらシェアをお願いします