蛋疼的ElasticSearch(二)之配置ElasticSearch Head插件

diary_report.jpg

Interesting things

What did you do today

先入為主

ElasticSearch Head是什么?

ElasticSearch Head是集群管理、數(shù)據(jù)可視化、增刪查改、查詢語(yǔ)句可視化工具。

安裝

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
image.png
  • 安裝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分詞插件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容