正規(guī)的錦州網(wǎng)站建設(shè)東莞百度seo推廣公司
Elasticsearch如果做集群的話Master節(jié)點(diǎn)至少三臺(tái)服務(wù)器或者三個(gè)Master實(shí)例加入相同集群,三個(gè)Master節(jié)點(diǎn)最多只能故障一臺(tái)Master節(jié)點(diǎn),如果故障兩個(gè)Master節(jié)點(diǎn),Elasticsearch將無法組成集群.會(huì)報(bào)錯(cuò),Kibana也無法啟動(dòng),因?yàn)镵ibana無法獲取集群中的節(jié)點(diǎn)信息。
現(xiàn)在在mac下安裝三個(gè)ES實(shí)例,搭建偽集群。
?
一、安裝流程
1.去官網(wǎng)下載合適的安裝包,我是M1芯片的mac,下載的elasticsearch-7.17.0-darwin-aarch64版本,解壓elasticsearch-7.17.0安裝包3個(gè),分別命名:
elasticsearch-7.17.0-cluster1
elasticsearch-7.17.0-cluster2
elasticsearch-7.17.0-cluster3
2.然后修改elasticsearch.yml文件。
3.然后啟動(dòng)啟動(dòng)cluster1、cluster2、cluster3三個(gè)節(jié)點(diǎn)。
打開瀏覽器輸?:http://localhost:9201/_cat/health?v ,如果返回的node.total是3,代表集 群搭建成功
在此,需要我們特別注意的是,像本文這樣單服務(wù)器多節(jié)點(diǎn)( 3 個(gè)節(jié)點(diǎn))的情況,僅供測(cè)試使用,集群環(huán)境如下:
cluster name | node name | IP Addr | http端口 / 通信端口 |
cluster-es | cluster-1 | localhost | 9201 / 9700 |
cluster-es | cluster-2 | localhost | 9202 / 9800 |
cluster-es | cluster-3 | localhost | 9203 / 9900 |
二、安裝步驟
1.下載解壓后拷貝3個(gè)份。
elasticsearch-7.17.0-cluster1
elasticsearch-7.17.0-cluster2
elasticsearch-7.17.0-cluster3
?2.新建logs,datas文件
3.修改每個(gè)節(jié)點(diǎn)下的elasticsearch.yml配置文件
vim /elasticsearch-7.17.0-cluster1/config/elasticsearch.yml
vim /elasticsearch-7.17.0-cluster2/config/elasticsearch.yml
vim /elasticsearch-7.17.0-cluster3/config/elasticsearch.yml
3.1?下面是elasticsearch-7.17.0-cluster1配置文件
#集群名稱
cluster.name: cluster-es
#節(jié)點(diǎn)名稱
node.name: cluster-1
#是不是有資格主節(jié)點(diǎn)
node.master: true
#是否存儲(chǔ)數(shù)據(jù)
node.data: true
#最大集群節(jié)點(diǎn)數(shù)
node.max_local_storage_nodes: 3
#ip地址
network.host: 0.0.0.0
#端口
http.port: 9201
#內(nèi)部節(jié)點(diǎn)之間溝通端口
transport.tcp.port: 9700
#es7.x 之后新增的配置,節(jié)點(diǎn)發(fā)現(xiàn)
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一個(gè)新的集群時(shí)需要此配置來選舉master
cluster.initial_master_nodes: ["cluster-1", "cluster-2","cluster-3"]
#數(shù)據(jù)和存儲(chǔ)路徑
path.data: /改成你的路徑/elasticsearch-7.17.0-cluster1/datas
path.logs: /改成你的路徑/elasticsearch-7.17.0-cluster1/logs
?3.2?下面是elasticsearch-7.17.0-cluster2配置文件
#集群名稱
cluster.name: cluster-es
#節(jié)點(diǎn)名稱
node.name: cluster-2
#是不是有資格主節(jié)點(diǎn)
node.master: true
#是否存儲(chǔ)數(shù)據(jù)
node.data: true
#最大集群節(jié)點(diǎn)數(shù)
node.max_local_storage_nodes: 3
#ip地址
network.host: 0.0.0.0
#端口
http.port: 9202
#內(nèi)部節(jié)點(diǎn)之間溝通端口
transport.tcp.port: 9800
#es7.x 之后新增的配置,節(jié)點(diǎn)發(fā)現(xiàn)
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一個(gè)新的集群時(shí)需要此配置來選舉master
cluster.initial_master_nodes: ["cluster-1", "cluster-2","cluster-3"]
#數(shù)據(jù)和存儲(chǔ)路徑
path.data: /改成你的路徑/elasticsearch-7.17.0-cluster2/datas
path.logs: /改成你的路徑/elasticsearch-7.17.0-cluster2/logs
?3.1?下面是elasticsearch-7.17.0-cluster3配置文件
#集群名稱
cluster.name: cluster-es
#節(jié)點(diǎn)名稱
node.name: cluster-3
#是不是有資格主節(jié)點(diǎn)
node.master: true
#是否存儲(chǔ)數(shù)據(jù)
node.data: true
#最大集群節(jié)點(diǎn)數(shù)
node.max_local_storage_nodes: 3
#ip地址
network.host: 0.0.0.0
#端口
http.port: 9203
#內(nèi)部節(jié)點(diǎn)之間溝通端口
transport.tcp.port: 9900
#es7.x 之后新增的配置,節(jié)點(diǎn)發(fā)現(xiàn)
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一個(gè)新的集群時(shí)需要此配置來選舉master
cluster.initial_master_nodes: ["cluster-1", "cluster-2","cluster-3"]
#數(shù)據(jù)和存儲(chǔ)路徑
path.data: /改成你的路徑/elasticsearch-7.17.0-cluster3/datas
path.logs: /改成你的路徑/elasticsearch-7.17.0-cluster3/logs
4.設(shè)置ES的JVM占用內(nèi)存參數(shù),防止內(nèi)存不足錯(cuò)誤
vim elasticsearch-7.17.0-cluster1/config/jvm.options
vim elasticsearch-7.17.0-cluster2/config/jvm.options
vim elasticsearch-7.17.0-cluster3/config/jvm.options
默認(rèn)情況下,ES啟動(dòng)JVM最小內(nèi)存1G,最大內(nèi)存1G
-xms:最小內(nèi)存
-xmx:最大內(nèi)存
修改為256m
-Xms256m
-Xmx256m
5.啟動(dòng)并查看節(jié)點(diǎn)
5.1三個(gè)節(jié)點(diǎn)下分別啟動(dòng)
./bin/elasticsearch
5.2查看節(jié)點(diǎn)是否啟動(dòng)成功
http://localhost:9201/_cat/health?v
http://localhost:9202/_cat/health?v
http://localhost:9203/_cat/health?v
green狀態(tài)顯示成功
健康狀況結(jié)果解釋:cluster 集群名稱
status 集群狀態(tài) green代表健康;yellow代表分配了所有主分片,但至少缺少一個(gè)副本,此時(shí)集群數(shù)據(jù)仍舊完整;red 代表部分主分片不可用,可能已經(jīng)丟失數(shù)據(jù)。
node.total代表在線的節(jié)點(diǎn)總數(shù)量
node.data代表在線的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量
shards 存活的分片數(shù)量
pri 存活的主分片數(shù)量 正常情況下 shards的數(shù)量是pri的兩倍。
relo遷移中的分片數(shù)量,正常情況為 0
init 初始化中的分片數(shù)量 正常情況為 0
unassign未分配的分片 正常情況為 0
pending_tasks準(zhǔn)備中的任務(wù),任務(wù)指遷移分片等 正常情況為 0
max_task_wait_time任務(wù)最長(zhǎng)等待時(shí)間
active_shards_percent正常分片百分比 正常情況為 100%
三、使用Kibana配置和管理集群
1.集群配置
官網(wǎng)下載對(duì)應(yīng)的Kibana版本kibana-7.17.0-darwin-aarch64,解壓后修改配置文件
vim kibana-7.17.0-cluster/config/kibana.yml
加入下面配置
elasticsearch.hosts: ["http://localhost:9201","http://localhost:9202","http://localhost:9203"]
啟動(dòng)Kibana
sh ./bin/kibana
2.集群管理
打開http://localhost:5601/,點(diǎn)開 Stack Monitoring 集群監(jiān)控
?顯示Green,三個(gè)節(jié)點(diǎn)運(yùn)行正常。
3.遇到問題?
Kibana的Stack Monitoring顯示節(jié)點(diǎn)offline
?1.配置kibana.yml
首先要參考的是官網(wǎng)給出的詳細(xì)配置說明https://www.elastic.co/guide/en/kibana/current/monitoring-data.html,官網(wǎng)中的這兩個(gè)地方我都進(jìn)行補(bǔ)充了。大家可以根據(jù)自己的需求看下有沒有什么遺漏的配置
vim kibana-7.17.0-cluster/config/kibana.yml
monitoring.ui.elasticsearch.hosts: ["http://localhost:9201","http://localhost:9202","http://localhost:9203"]
monitoring.ui.enabled: true
2.配置3個(gè)節(jié)點(diǎn)的elasticsearch.yml
vim elasticsearch-7.17.0-cluster1/config/elasticsearch.yml
vim elasticsearch-7.17.0-cluster2/config/elasticsearch.yml
vim elasticsearch-7.17.0-cluster3/config/elasticsearch.yml
加上
xpack.monitoring.collection.enabled: true
3.最后重新各節(jié)點(diǎn)和kibana,顯示正常了。主節(jié)點(diǎn)旁邊帶有星星。