一、什麼是Elasticsearch Yellow狀態
Elasticsearch是一款流行的開源分散式全文搜索和分析引擎,由Elasticsearch BV開發和維護。Elasticsearch Yellow狀態指的是在集群中主分片(number_of_replicas設置為1)和至少一個副本分片都存在,但是有一些部分出現問題,例如少量分片未分配、投票離線的節點或磁碟空間低於設置的閾值。它表示在數據丟失或分片不可恢復之前還有時間來修復問題。
二、導致Elasticsearch Yellow狀態的原因
1、未分配分片: 當Elasticsearch在集群中加入新節點或有節點關閉時,由於數據遷移可能導致未分配分片。當未分配分片>0時,數據就不能良好地分布在節點上,數據訪問就可能會出現問題。
2、投票的離線節點:Elasticsearch將集群中的節點視為主節點或數據節點的一部分,並通過投票選出主節點。當主節點離線時,投票選出其他節點成為新的主節點。事情變得更糟糕的是,在集群結構不穩定的情況下,可能出現投票分歧而沒有達成consensus。這些情況都會導致集群狀態的黃色警報。
3、磁碟空間低於設置的閾值:磁碟空間的不充足可能會導致數據丟失和停機。默認情況下,Elasticsearch將不允許將分片分配到空間低於5%的節點上。如果某個節點低於這個閾值,狀態將被標記為黃色。
三、如何診斷Elasticsearch Yellow狀態
1、通過健康檢查API:使用curl命令或瀏覽器中的HTTP請求連接到Elasticsearch的API地址,然後發送GET請求來檢查集群的狀態。輸出結果中將包含活躍分片數(active_shards),分配分片(unassigned_shards)的數量以及節點數。如果活動分片數小於期望值或分配的分片數大於零,則檢查分片分配是否正常或是否有分配失敗的索引。
$ curl -XGET 'http://localhost:9200/_cat/health?pretty' { "cluster_name" : "elasticsearch", "status" : "yellow", "timed_out" : false, "number_of_nodes" : 3, "number_of_data_nodes" : 2, "active_primary_shards" : 10, "active_shards" : 20, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 3, "delayed_unassigned_shards": 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 86.95652173913044 }
2、通過分片和節點API:使用curl命令或瀏覽器中的HTTP請求連接到Elasticsearch的API地址,然後發送GET請求以獲得與每個索引,節點,分片和狀態相關的信息。
$ curl -XGET 'http://localhost:9200/_cat/shards?v'
四、如何解決Elasticsearch Yellow狀態
1、增加節點:通過添加額外的節點,可以將負載分散到更多的節點中,從而使每個節點處理的數據更少。這可以提高性能和穩定性,並為磁碟故障提供更好的保護。默認情況下,Elasticsearch 中包含一個單獨的主節點,負責協調集群。將數據節點和觀察節點部署到集群將提供更多的彈性和更好的性能。
2、重新分配分片: 重新分配失敗的分片或重新分配未分配的分片可以解決由於節點故障引起的丟失的數據和索引。
curl -XPOST 'http://localhost:9200/_cluster/reroute' -d '{ "commands": [ { "allocate_replica": { "index": "your_index", "shard": 0, "node": "your_new_node", "allow_primary": true } } ] }'
3、調整副本數量:根據使用情況,可以在不同的節點之間設置更多副本,以減少數據丟失的風險。
PUT /my_index/_settings { "index": { "number_of_replicas": 2 } }
4、清理不必要的分片:清理無用的分片和索引,可以釋放磁碟空間並提高性能。
DELETE /my_index
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/184986.html