Elasticsearch 5.3.x 使用 Head 外掛

weixin_33763244發表於2017-11-08

0、前言

時光荏苒,ES轉眼間就從2.X跳到了5.X。。。

憶往昔崢嶸歲月,奈何ES社群太活躍,版本跳的比房價還快啊。。。

 

話說回來,需要部署一套Elasticsearch 5.2.1 即本月最新推出的ES新力作,發現很多用法已經不一樣了。。。

 

本次首先說Head外掛的安裝: 

1、安裝外掛head

1
2
3
4
5
6
7
8
9
10
11
# 去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

2、啟動head

1
2
3
cd elasticsearch-head
grunt server
# 開啟瀏覽器 http://localhost:9100

3、出現問題

head主控頁面是可以顯示的,但是顯示連線失敗

“叢集健康值: 未連線”

4、解決方案

修改elasticsearch.yml檔案

1
2
3
4
vim $ES_HOME$/config/elasticsearch.yml
# 增加如下欄位
http.cors.enabled: true
http.cors.allow-origin: "*"

重啟es和head即可


5、CORS是什麼(這個格式我真服了部落格園了)

 

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

這個欄位預設為false,在Elasticsearch安裝叢集之外的一臺機上用Sense、Head等監控外掛訪問Elasticsearch是不允許的。這個欄位最早可以追溯到1.4.x版本,而非5.x特有。

具體這個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,那麼會返回給客戶端。


參考博文:http://www.cnblogs.com/zklidd/p/6433123.html





     本文轉自1321385590 51CTO部落格,原文連結:http://blog.51cto.com/linux10000/1944405,如需轉載請自行聯絡原作者


相關文章