全部產品
Search
文件中心

Elasticsearch:查看叢集健康狀態

更新時間:Jun 30, 2024

您可以通過Elasticsearch(簡稱ES)的health API查看叢集的健康狀態,並根據健康狀態排查並規避可能存在的風險。

前提條件

已建立阿里雲ES執行個體,建立方法請參見建立Elasticsearch執行個體

操作步驟

  1. 登入目標阿里雲ES執行個體的Kibana控制台。
    具體操作步驟請參見登入Kibana控制台
  2. 在左側導覽列,單擊Dev Tools(開發工具)。
  3. 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表示叢集的健康狀態,取值為greenyellowred
    叢集健康狀態 狀態 說明
    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服務的可靠性和穩定性。