Elasticsearch 5.2.x 使用 Head 插件鏈接不上集羣

0、前言

時光荏苒,ES轉眼間就從2.X跳到了5.X。。。
憶往昔崢嶸歲月,奈何ES社區太活躍,版本跳的比房價還快啊。。。
 
話說回來,須要部署一套Elasticsearch 5.2.1 即本月最新推出的ES新力做,發現不少用法已經不同了。。。
 
本次首先說Head插件的安裝: 

一、安裝插件head

# 去github上下載head
git clone git://github.com/mobz/elasticsearch-head.git
# 因爲head基於nodejs因此安裝它
yum -y install nodejs npm
npm install grunt-cli
npm install grunt
grunt -version
# 修改配置文件
cd elasticsearch-head
vim _site/app.js
# 修改 『http://localhost:9200』字段到本機ES端口與IP

二、啓動head

cd elasticsearch-head
grunt server
# 打開瀏覽器 http://localhost:9100

三、出現問題

head主控頁面是能夠顯示的,可是顯示鏈接失敗
「集羣健康值: 未鏈接」

四、解決方案

修改elasticsearch.yml文件
vim $ES_HOME$/config/elasticsearch.yml
# 增長以下字段
http.cors.enabled: true
http.cors.allow-origin: "*"

重啓es和head便可node

 

 

 

 

五、CORS是什麼(這個格式我真服了博客園了)

 

wiki上的解釋是 Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources ,即跨域訪問。git

 

這個字段默認爲false,在Elasticsearch安裝集羣以外的一臺機上用Sense、Head等監控插件訪問Elasticsearch是不容許的。這個字段最先能夠追溯到1.4.x版本,而非5.x特有。github

具體這個http.cors.x字段還有哪些用途和用法,見下表:正則表達式

 

 

http.cors.enabled 是否支持跨域,默認爲false
http.cors.allow-origin 當設置容許跨域,默認爲*,表示支持全部域名,若是咱們只是容許某些網站能訪問,那麼可使用正則表達式。好比只容許本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.max-age 瀏覽器發送一個「預檢」OPTIONS請求,以肯定CORS設置。最大年齡定義多久的結果應該緩存。默認爲1728000(20天)
http.cors.allow-methods 容許跨域的請求方式,默認OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers 跨域容許設置的頭信息,默認爲X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials 是否返回設置的跨域Access-Control-Allow-Credentials頭,若是設置爲true,那麼會返回給客戶端。
相關文章
相關標籤/搜索