Elasticsearch 集群健康值紅色終極解決方案


文章轉載自:
https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247483905&idx=1&sn=acaff63b10e0ad48ad32517950ace5cf&chksm=eaa82a29dddfa33f2a9c6046b5244bc81df61f45237c11028e20388ac7130a6ea1fa9f2b11f4&scene=21#wechat_redirect

1)、綠色——最健康的狀態,代表所有的主分片和副本分片都可用;
2)、黃色——所有的主分片可用,但是部分副本分片不可用;
3)、紅色——部分主分片不可用。(此時執行查詢部分數據仍然可以查到,遇到這種情況,還是趕快解決比較好。)

方案一:極端情況——這個分片數據已經不可用,直接刪除該分片。
ES中沒有直接刪除分片的接口,除非整個節點數據已不再使用,刪除節點。

curl -XDELETE ‘localhost:9200/index_name/’

方案二:集群中節點數量>=集群中所有索引的最大副本數量 +1。
N> = R + 1
其中:
N——集群中節點的數目;
R——集群中所有索引的最大副本數目。
知識點:

當節點加入和離開集群時,主節點會自動重新分配分片,以確保分片的多個副本不會分配給同一個節點。

換句話說,主節點不會將主分片分配給與其副本相同的節點,也不會將同一分片的兩個副本分配給同一個節點。 
如果沒有足夠的節點相應地分配分片,則分片可能會處於未分配狀態。 
由於我的集群就一個節點,即N=1;所以R=0,才能滿足公式。

問題就轉嫁為:
1)添加節點處理,即N增大;
2)刪除副本分片,即R置為0。
R置為0的方式,可以通過如下命令行實現:

curl -XPUT "http://localhost:9200/_settings" -d' 
{  "number_of_replicas" : 0 } '

方案三:allocate重新分配分片。
如果方案二仍然未解決,可以考慮重新分配分片。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM