
Interesting things
What did you do today
先入為主
ElasticSearch Head是什么?
ElasticSearch Head是集群管理、數(shù)據(jù)可視化、增刪查改、查詢語(yǔ)句可視化工具。
安裝
在https://github.com/mobz/elasticsearch-head下載elasticsearch-head-master.zip
解壓elasticsearch-head-master.zip到/usr/local/fast/
unzip elasticsearch-head-master.zip -d /usr/local/fast/
image.png
- 在plugins目錄下創(chuàng)建head。把
mkdir -p /usr/local/fast/elasticsearch-6.1.1/plugins/head/
-
把剛才解壓的elasticsearch-head-master文件夾下的所有的文件拷貝到/plugins/head/下。
image.png
我們可以通過(guò)Jps命令(java virtual machine process status tool 是jdk1.5提供的一個(gè)現(xiàn)實(shí)當(dāng)前所有java進(jìn)程pid的命令),查看ElasticSearch進(jìn)程號(hào),然后kill掉它。
重啟elasticsearch,拋出了“java.lang.IllegalArgumentException: property [elasticsearch.version] is missing for plugin [head]”異常。
[2018-01-08T16:51:09,225][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: property [elasticsearch.version] is missing for plugin [head]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.1.1.jar:6.1.1]
Caused by: java.lang.IllegalArgumentException: property [elasticsearch.version] is missing for plugin [head]
at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:144) ~[elasticsearch-6.1.1.jar:6.1.1]
- 問(wèn)題所在是elasticsearch-head-master解壓后的內(nèi)容不能放在elasticsearch的plugins目錄下,所以我們刪除到plugins目錄下的head。
rm -rf head
image.png
- 更操蛋的是,我們竟然還沒(méi)有安裝elasticsearch-head,我們只是下了安裝包,但是沒(méi)有安裝。我們需要node.js環(huán)境
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
[圖片上傳失敗...(image-87af7d-1515403754611)]
-
在/usr/local/目錄下創(chuàng)建nodejs文件夾。
image.png 把node-v4.4.7-linux-x64.tar.gz解壓到/usr/local/nodejs。
配置環(huán)境變量,編輯/etc/profile添加以下內(nèi)容,然后執(zhí)行source /etc/profile,我們接著就可以查看node.js的版本號(hào)了。
NODE_HOME=/usr/local/nodejs/node-v4.4.7-linux-x64
PATH=$PATH:$NODE_HOME/bin
NODE_PATH=$NODE_HOME/lib/node_modules
export NODE_HOME PATH NODE_PATH

- 安裝grunt(grunt是基于Node.js的項(xiàng)目構(gòu)建工具,可以進(jìn)行打包壓縮、測(cè)試、執(zhí)行等等工作,elasticsearch-head插件就是通過(guò)grunt啟動(dòng)的)。進(jìn)入/usr/local/fast/elasticsearch-head-master/目錄下進(jìn)行安裝。安裝完畢,我們可以檢查是否安裝成功。
npm install -g grunt-cli
grunt -version
image.png
-
修改elasticsearch-head-master文件下的Gruntfile.js文件中,添加一行"hostname: '0.0.0.0',"
image.png 在elasticsearch-head-master目錄下
npm install
image.png
- 但是安裝的太慢了,我不想吐槽了。我們需要將npm換個(gè)鏡像。
npm install -g cnpm --registry=https://registry.npm.taobao.org
image.png
- 我們?cè)賮?lái)安裝elasticsearch-head-master.我們用cnpm代替npm
cnpm install
image.png
-
安裝完畢后,會(huì)生成一個(gè)node_modules文件夾。
image.png
- 我們還要修改elasticsearch.yml,具體如下。
#集群的名字
cluster.name: es_cmazxiaoma_cluster
#節(jié)點(diǎn)名字
node.name: node-1
#數(shù)據(jù)存儲(chǔ)目錄(多個(gè)路徑)
path.data: /home/elasticsearch/data
#日志目錄
path.logs: /home/elasticsearch/logs
#本機(jī)的ip地址
network.host: 192.168.12.6
#設(shè)置集群中master節(jié)點(diǎn)的初始列表,可以通過(guò)這些節(jié)點(diǎn)來(lái)自動(dòng)發(fā)現(xiàn)新加入集群的節(jié)點(diǎn)
discovery.zen.ping.unicast.hosts: ["192.168.12.6"]
#設(shè)置節(jié)點(diǎn)間tcp端口(集群),默認(rèn)9300
transport.tcp.port: 9300
#監(jiān)聽(tīng)端口(默認(rèn))
http.port: 9200
#增加參數(shù),使head插件可以訪問(wèn)es
http.cors.enabled: true
http.cors.allow-origin: "*"
默認(rèn)情況下,elasticsearch在elasticsearch-head連接的端口9200上公開(kāi)一個(gè)http rest API。當(dāng)不作為elasticsearch的插件運(yùn)行時(shí),您必須在elasticsearch中啟用CORS,否則您的瀏覽器將拒絕看起來(lái)不安全的請(qǐng)求??磂lasticsearch配置中:加http.cors.enabled:true,您還必須設(shè)置http.cors.allow-origin因?yàn)槟J(rèn)情況下不允許來(lái)源。http.cors.allow-origin:"*"是一個(gè)合法的值,但是它被認(rèn)為是一個(gè)安全風(fēng)險(xiǎn),因?yàn)槟愕募菏情_(kāi)放式的。
運(yùn)行elasticsearch-head
grunt server
image.png
-
忘記了,elasticsearch-head web端口是9100。如果我們想通過(guò)瀏覽器去訪問(wèn)它,必須在防火墻添加9100端口策略。
image.png -
訪問(wèn)192.168.12.6:9100
image.png -
啟動(dòng)elasticsearch。
image.png 我們來(lái)通過(guò)elasticsearch-head來(lái)連接elasticsearch。
因?yàn)閔ead插件可以對(duì)數(shù)據(jù)進(jìn)行增刪查改,所以生產(chǎn)環(huán)境盡量不要使用,最少要限制ip地址。盡量不要使用
Summary
下一篇講head插件的具體使用和
elasticsearch-analysis-ik分詞插件。













