elasticsearch 節點重啟問題

2022-08-19 03:00:09 字數 1565 閱讀 1369

elasticsearch集群的高可用和自平衡方案會在節點掛掉(重啟)後自動在別的結點上覆制該結點的分片,這將導致了大量的io和網路開銷。

如果離開的節點重新加入集群,elasticsearch為了對資料分片(shard)進行再平衡,會為重新加入的節點再次分配資料分片(shard), 當一台es因為壓力過大而掛掉以後,其他的es服務會備份本應那台es儲存的資料,造成更大壓力,於是整個集群會發生雪崩。

生產環境下建議關閉自動平衡。

一:關閉自動分片,即使新建index也無法分配資料分片

curl -xput  -d '

}'

二:關閉自動平衡,只在增減es節點時不自動平衡資料分片

curl -xput ?pretty -d '

}'

設定完以後檢視設定是否新增成功:

curl ?pretty

重新啟用自動分片

curl -xput  -d '

}

put /_all/_settings

}

未分配節點重新分配延遲到5分鐘之後

下面是修改 elasticsearch.yml 檔案

gateway.recover_after_nodes: 8

這將防止elasticsearch立即開始資料恢復,直到集群中至少有八個(資料節點或主節點)節點存在。

gateway.expected_nodes: 10 

gateway.recover_after_time: 5m

集群開始資料恢復等到5分鐘後或者10個節點加入,以先到者為準。

參考:對某乙個例項進行重啟後,很有可能會導致該例項無法找到master而將自己推舉為master的情況出現,為防止這種情況,需要調整 elasticsearch.yml 中的內容

discovery.zen.minimum_master_nodes: 2

這個配置就是告訴elasticsearch除非有足夠可用的master候選節點,否則就不選舉master,只有有足夠可用的master候選節點才進行選舉。

該設定應該始終被配置為有主節點資格的點數/2 + 1,例如:

有10個符合規則的節點數,則配置為6.

有3個則配置為2.

persistent 重啟後設定也會存在

transient 整個集群重啟後會消失的設定

put /_cluster/settings

}

# 通過配置大多數節點(節點總數/ 2 + 1)來防止腦裂

#discovery.zen.minimum_master_nodes: 2

# 在乙個完整的集群重新啟動到n個節點開始之前,阻止初始恢復

#gateway.recover_after_nodes: 3

**:

Elasticsearch 節點發現

在elasticsearch中,節點之間可以相互發現的,並把相同集群名稱的節點統一成乙個集群,那節點是如何發現的呢?在elasticsearch內部,zen discovery是elasticsearch預設的內建的發現模組。它提供單播發現的方式,但是可以擴充套件為雲環境或者其他形式的發現模式。ze...

ElasticSearch 監控單個節點詳解

集群健康就像是光譜的一端 對集群的所有資訊進行高度概述。而節點統計值api 則是在另一端。它提供乙個讓人眼花繚亂的統計資料的陣列,包含集群的每乙個節點統計值。節點統計值提供的統計值如此之多,在完全熟悉它之前,你可能都搞不清楚哪些指標是最值得關注的。我們將會高亮那些最重要的監控指標 但是我們鼓勵你記錄...

Elasticsearch平滑下線節點

對於某些節點要進行下線處理 節點的資料盤功能正常 集群的分片分配策略不會限制分片的遷移 data node節點 什麼情況下可以平滑下線?下線操作不會造成分片丟失,不會造成分片異常,不會丟失資料 操作步驟 start 步驟1 將節點從集群路由策略中排除 curl xput d 步驟2 等待節點上分片全...