您可以通過Elasticsearch(簡稱ES)的health API查看叢集的健康狀態,並根據健康狀態排查並規避可能存在的風險。
前提條件
已建立阿里雲ES執行個體,建立方法請參見建立Elasticsearch執行個體。操作步驟
- 登入目標阿里雲ES執行個體的Kibana控制台。
具體操作步驟請參見登入Kibana控制台。
- 在左側導覽列,單擊Dev Tools(開發工具)。
- 在Console中,執行以下命令查看叢集的健康狀態。
GET /_cluster/health
正常情況下,返回如下結果。{ "cluster_name" : "es-cn-45xxxxxxxxxxxxk1q", "status" : "green", "timed_out" : false, "number_of_nodes" : 2, "number_of_data_nodes" : 2, "active_primary_shards" : 18, "active_shards" : 36, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "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" : 100.0 }
status
表示叢集的健康狀態,取值為green
、yellow
或red
。叢集健康狀態 狀態 說明 red 不是所有的主要分區都可用。 表示該叢集中存在停用主分區。可以理解為某個或者某幾個索引存在主分區丟失的情況。 yellow 所有主要分區可用,但不是所有副本分區都可用。 表示該叢集中某個或者某幾個索引存在副本分區存在丟失的情況。 green 所有主要分區和副本分區都可用。 表示叢集中所有的索引都很健康,不存在丟失的分區。 如果您的叢集處於yellow
狀態,此時進行密碼修改、叢集升配等叢集變更操作時周期會比較長。建議修複叢集狀態為green
後,再進行操作。造成yellow
狀態的原因是索引存在副本分區丟失的情況,需要尋找並修複叢集中有問題的索引,命令如下:- 索引狀態查詢命令
curl -u <使用者名稱>:<密碼> http://<host>:9200/_cat/indices
通過以上命令,您可以尋找有問題的索引名稱,即狀態為yellow
的索引名稱。 - 索引狀態修複命令
當您設定的索引複本數大於當前節點數減1時,會導致叢集處於
yellow
狀態。以下代碼僅針對此情況的索引的副本數進行調整。例如,您購買的叢集節點數為3,但是個別索引複本數也為3,這樣叢集就會處於yellow
狀態。此時設定問題索引複本數為2即可。curl -XPUT -u <使用者名稱>:<密碼> http://<host>:9200/<有問題的索引名稱>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<當前節點數-1>)}'
說明 當您完成執行個體重啟、擴容或其他自訂配置後,請根據阿里雲ES執行個體的節點數量為索引設定合理的副本數,這將有效提高ES服務的可靠性和穩定性。
- 索引狀態查詢命令