安裝
-
在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/
- 在plugins目錄下創建head。把
mkdir -p /usr/local/fast/elasticsearch-6.1.1/plugins/head/
-
把剛纔解壓的elasticsearch-head-master文件夾下的所有的文件拷貝到/plugins/head/下。
-
我們可以通過Jps命令(java virtual machine process status tool 是jdk1.5提供的一個現實當前所有java進程pid的命令),查看ElasticSearch進程號,然後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]
- 問題所在是elasticsearch-head-master解壓後的內容不能放在elasticsearch的plugins目錄下,所以我們刪除到plugins目錄下的head。
rm -rf head
- 更操蛋的是,我們竟然還沒有安裝elasticsearch-head,我們只是下了安裝包,但是沒有安裝。我們需要node.js環境
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
[圖片上傳失敗...(image-87af7d-1515403754611)]
-
在/usr/local/目錄下創建nodejs文件夾。
-
把node-v4.4.7-linux-x64.tar.gz解壓到/usr/local/nodejs。
-
配置環境變量,編輯/etc/profile添加以下內容,然後執行source /etc/profile,我們接着就可以查看node.js的版本號了。
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的項目構建工具,可以進行打包壓縮、測試、執行等等工作,elasticsearch-head插件就是通過grunt啓動的)。進入/usr/local/fast/elasticsearch-head-master/目錄下進行安裝。安裝完畢,我們可以檢查是否安裝成功。
npm install -g grunt-cli
grunt -version
-
修改elasticsearch-head-master文件下的Gruntfile.js文件中,添加一行"hostname: '0.0.0.0',"
-
在elasticsearch-head-master目錄下
npm install
- 但是安裝的太慢了,我不想吐槽了。我們需要將npm換個鏡像。
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 我們再來安裝elasticsearch-head-master.我們用cnpm代替npm
cnpm install
-
安裝完畢後,會生成一個node_modules文件夾。
- 我們還要修改elasticsearch.yml,具體如下。
#集羣的名字
cluster.name: es_cmazxiaoma_cluster
#節點名字
node.name: node-1
#數據存儲目錄(多個路徑)
path.data: /home/elasticsearch/data
#日誌目錄
path.logs: /home/elasticsearch/logs
#本機的ip地址
network.host: 192.168.12.6
#設置集羣中master節點的初始列表,可以通過這些節點來自動發現新加入集羣的節點
discovery.zen.ping.unicast.hosts: ["192.168.12.6"]
#設置節點間tcp端口(集羣),默認9300
transport.tcp.port: 9300
#監聽端口(默認)
http.port: 9200
#增加參數,使head插件可以訪問es
http.cors.enabled: true
http.cors.allow-origin: "*"
-
默認情況下,elasticsearch在elasticsearch-head連接的端口9200上公開一個http rest API。當不作爲elasticsearch的插件運行時,您必須在elasticsearch中啓用CORS,否則您的瀏覽器將拒絕看起來不安全的請求。看elasticsearch配置中:加http.cors.enabled:true,您還必須設置http.cors.allow-origin因爲默認情況下不允許來源。http.cors.allow-origin:"*"是一個合法的值,但是它被認爲是一個安全風險,因爲你的集羣是開放式的。
-
運行elasticsearch-head
grunt server
-
忘記了,elasticsearch-head web端口是9100。如果我們想通過瀏覽器去訪問它,必須在防火牆添加9100端口策略。
-
訪問192.168.12.6:9100
-
啓動elasticsearch。
-
我們來通過elasticsearch-head來連接elasticsearch。
因爲head插件可以對數據進行增刪查改,所以生產環境儘量不要使用,最少要限制ip地址。儘量不要使用
Summary
下一篇講head插件的具體使用和
elasticsearch-analysis-ik分詞插件
作者:cmazxiaoma
鏈接:https://www.jianshu.com/p/3fe81380682c
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。