Elastic
Elasticsearch
ES
cluster
Elasticsearch 5.6 Cluster建置與Header操作
2017/12/18 10:00:00
0
1993
Elasticsearch 5.6 Cluster建置與Header操作
簡介 |
一步一步教學建立Elasticsearch5.6的cluster建置,並且介紹如何使用github上使用率最高的UI介面,方便操作ES,不用再記ES一大堆API了。 |
作者 |
林政儀 |
安裝ES之前的系統設定
Elasticsearch5.6(此後簡稱ES)在運行時對系統有些要求,因此若是下載之後直接開始運行,會出現下列錯誤訊息

因此根據官網的說明,必須調整下列三項系統設定:
1.File Descriptors
# vi /etc/security/limits.conf |
cbuser soft nofile 65536 cbuser hard nofile 65536 |
2.Number of threads(同樣修改/etc/security/limits.conf)
cbuser soft nproc 2048 cbuser hard nproc 2048 |
3.Virtual memory
# vi /etc/sysctl.conf |
vm.max_map_count=262144 |
修改完需要reboot機器,第三項Virtual memory設定才會生效。重開機之後可以透過以下指令確認設定是否完成。

ES角色說明
每一個ES的instance有兩個主要的設定,用來表示該ES應該要在cluster裡做甚麼事情。
- node.master: <true|false> # 是否可以成為主節點
- node.data: <true|false> # 是否可以存放資料的節點
因此鑒於Cluster的組成,ES可以簡單分為"data-node","router-node",分別設定如下即可:
data-node

router-node

如何將多台ES的instance加入同一個cluster裡
ES會自動掃描給予的ip/host清單裡的port(9300~9305),只要有相同cluster.name,彼此就會識別為相同的cluster,因此組成cluster的條件設定為:
- cluster.name: es-test # 所有ES instance名稱都要相同
- node.name: es-data1 # 所有ES名稱重複不衝突,但建議要錯開方便人識別
- discovery.zen.ping.unicast.hosts: ["192.168.3.105","es_host"] #ES便會在這個清單內搜尋port(9300~9305),有相同cluster名字加入cluster
若有加入成功,在瀏覽器輸入以下網址,可以簡易的確認cluster狀況:
http://任何一台ES的IP:PORT/_nodes/stats?pretty

使用github上的開源UI介面
ES雖然使用友善的Restful API,理論上使用瀏覽器就可以操作大部分的查詢跟cluster健康狀態確認,但要記住那些API其實還是很麻煩,因此github上有人寫好了一個簡易版的UI介面,已滿足大部分ES相關操作了。(https://github.com/mobz/elasticsearch-head)
下載/解壓縮之後其實就可以打開index.html來操作了




若要修改開啟後的預設監看URL,則修改src/app/ app.js內的URL

這是在local打開這個監控UI的簡單方法,若是想要讓多人可以存取,可以將該專案部屬在Apache、node.js、Tomcat等server上,可以提供基於網站監控ES狀態的UI囉。