Elasticsearch5.x Head外掛安裝

獵手家園發表於2017-04-17

在5.0版本中不支援直接安裝head外掛,需要啟動一個服務。

由於head外掛本質上還是一個nodejs的工程,因此需要安裝node,使用npm來安裝依賴的包。(npm可以理解為maven)

1、安裝Node.js

官網nodejs,https://nodejs.org/en/download/

wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz
     
xz –d node-v6.10.2-linux-x64.tar.xz
tar xvf node-v6.10.2-linux-x64.tar
mv node-v6.10.2-linux-x64 /usr/local/node

vim /etc/profile
export NODE_HOME=/usr/local/node
export PATH=$PATH:$NODE_HOME/bin

source /etc/profile

 
# node –v
v6.10.2

# npm –v
3.10.10

說明:前面講了,npm相當於是maven,但npm究竟在哪?其實npm已經在Node.js安裝的時候順帶裝好了。

2、下載外掛包

如果找不到git,請先安裝:

yum install –y git
git clone https://github.com/mobz/elasticsearch-head.git

3、安裝grunt

cd elasticsearch-head
npm install -g grunt --registry=https://registry.npm.taobao.org

4、安裝Head外掛

npm install

在elasticsearch-head目錄下node_modules/grunt下如果沒有grunt二進位制程式,需要執行:

cd elasticsearch-head
npm install grunt --save

5、修改配置

修改elasticsearch-head下Gruntfile.js檔案,預設監聽在127.0.0.1下9200埠:

hostname: ‘192.168.33.50’,

修改 _site/app.js

修改http://localhost:9200欄位到本機ES埠與IP:

21行:http://192.168.33.50:9200

6、修改Elasticsearch配置

修改elasticsearch.yml檔案加入以下內容:

# 是否支援跨域
http.cors.enabled: true

# *表示支援所有域名
http.cors.allow-origin: "*"

7、啟動服務

/elasticsearch-head/node_modules/grunt/bin/grunt server (後臺執行 + &)

瀏覽器訪問 http://192.168.33.50:9100/

附:

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

相關文章