Elasticsearch 叢集(Cluster) 中的三種角色
Master Node: 幾點主要用於元數據(metadata)的處理,比如索引的新增、刪除、分片分配等。
Data Node: 節點上保存了數據分片。它負責數據相關操作,比如分片的 CRUD,以及搜索和整合操作。這些操作都比較消耗 CPU、內存和 I/O 資源。
Client Node: 節點起到路由請求的作用,實際上可以看做負載均衡器。
搭建版本「ElasticSearch - 5.6.3」首先我們先看一下架構圖
搭建「ElasticSearch」Cluster 請先滿足下列條件
PS. 記憶體不能小於「4G」
#==關閉「Selinux 」======
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#====設定連線「最大值」默認「1024」====
echo "ulimit -SHn 65536" >> /etc/profile
source /etc/profile
#======開啟「最大線程」(262144)======
vi /etc/sysctl.conf
vm.max_map_count = 262144
vm.swappiness = 1
#重啟生效
sysctl -p
#==Elasticsearch - Firewall========
#ElasticSearch Mapping API 9200/TCP
sudo firewall-cmd --add-port=9200/tcp --permanent
#ElasticSearch Unicast 9300/TCP
sudo firewall-cmd --add-port=9300/tcp --permanent
#重新啟動「防火牆」
sudo firewall-cmd --reload
#=====Elasticsearch.yml 設定檔(Config)========
#=====Master 配置=======
# 叢集「名稱」
cluster.name: es_cluster
# Hostname(主機名)
node.name: Elasticsearch_M
# 允許連線 IP ,也可以使用「0.0.0.0」
network.host: 192.168.8.28
# 開啟「TCP-9200」協議
http.port: 9200
#如果「Elasticsearch」節點(Node)只有「2台」才需要配置,默認都是「True」。
# master =「主節點」,data =「存放資料」
node.master: true
node.data: true
#設定「自動發現節點主機」Unicast
discovery.zen.ping.unicast.hosts: ["192.168.8.28","192.168.8.29"]
#防止「Node」節點故障,節點(Node)「2台」設定數值「1」。
#防止「Node」節點故障,節點(Node)「3台」設定數值「2」。
discovery.zen.minimum_master_nodes: 1
#支援「跨網段」連線 並 獲取「數據」
http.cors.enabled: true
http.cors.allow-origin: "*"
#=====節點 Node 配置 (以此類推) =======
配置完成以後透過下面指令確認「狀態」
#==檢查「端口」===
netstat -ltunp | grep -e "9200" -e "9300"
#==查詢「群集」狀態=======
查询集群状态
curl -XGET 'http://192.168.8.28:9200/_cat/nodes?v'
查询集群中的「Master」
curl -XGET 'http://192.168.8.28:9200/_cat/master?v'
查询集群中的「健康狀態」
curl -XGET 'http://192.168.8.28:9200/_cat/health?v'
到這邊為止「ElasticSearch」Cluster 基本搭建完成,後續可以依照需求搭建「Client Node - Load Blance」做「負載均衡」
參考資料
「www.cnblogs.com」-「ELK + KafKa 开发集群环境搭建」
「On The Linux Way」-「Centos7 搭建 ELK Cluster集群日志分析平台(一):Elasticsearch」
「www.blog-wuchen.cn」-「ES集群安装」