全部產品
Search
文件中心

Elasticsearch:使用命令查看叢集健康狀態

更新時間:Aug 19, 2026

通過Kibana的Dev Tools控制台執行營運命令,可以查看叢集健康狀態、節點負載、分區分配、索引資訊等,用於日常巡檢和故障排查。

前提條件

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

操作步驟

  1. 登入目標阿里雲ES執行個體的Kibana控制台。

    具體操作請參見登入Kibana控制台。以下所有命令均可在Kibana的Dev Tools控制台中執行。

  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再進行變更。常見原因是索引複本數超過節點數減1,修複步驟如下:

    • 尋找狀態為yellow的索引:

      curl -u <使用者名稱>:<密碼> http://<host>:9200/_cat/indices
    • 調整問題索引的副本數(設定為節點數減1):

      curl -XPUT -u <使用者名稱>:<密碼> http://<host>:9200/<有問題的索引名稱>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<當前節點數-1>)}'
      說明

      執行個體重啟或擴容後,需根據最新節點數量重新調整索引複本數。

叢集命令

命令

說明

GET /_cat/health?v

查看叢集的健康狀態。叢集狀態包括green、red、yellow,各狀態的詳細說明請參見上方操作步驟。

GET /_cluster/health?pretty=true

查看叢集的健康狀態。pretty=true表示格式化輸出。也可以添加其他查詢參數,例如:

  • level=indices:顯示索引狀態。

  • level=shards:顯示分區資訊。

GET /_cluster/stats

查看叢集的系統資訊,包括CPU、JVM等資訊。

GET /_cluster/state

查看叢集的詳細資料,包括節點、分區等資訊。

GET /_cluster/pending_tasks

查看叢集中堆積的任務。

GET /_cluster/settings

查看叢集設定。

節點命令

命令

說明

GET /_cat/master?v

查看叢集中Master節點的資訊。

GET /_cat/nodes?v

查看叢集中各個節點的目前狀態,包括節點CPU使用率、HeapMemory使用率、負載情況等。

GET /_cat/nodeattrs?v

查看單節點的自訂屬性。

GET /_nodes/stats?pretty=true

查看節點狀態。

GET /_nodes/process

查看節點的進程資訊。

GET /_nodes/hot_threads

查看高消耗的線程所執行的任務。常用於定位叢集高 CPU 原因,通過分析返回結果中的線程堆棧(如 Lucene Merge Thread)和 CPU 佔用率,可識別導致高負載的具體任務或操作。

GET /_nodes/<nodeip>/jvm,process,os

查看指定節點的JVM、進程和作業系統資訊。

GET /_cat/plugins?v

查看各節點的外掛程式資訊。

GET /_cat/thread_pool?v

查看各節點的線程池統計資訊,包括線程池的類型、活躍線程數、任務隊列大小等。

分區命令

命令

說明

GET /_cat/shards?v

查看叢集中各分區的詳細情況,包括索引名稱、分區編號、是主分區還是副分區、分區的目前狀態(對於分配失敗的分區會有失敗原因)、doc數量、磁碟佔用情況等。也可以指定index查看分區資訊(GET _cat/shards/<index>?v)。

GET /_cat/allocation?v

查看叢集中每個節點的分區分配情況。

GET /_cat/recovery?v

查看叢集中每個分區的恢複過程。

Segments命令

GET /_cat/segments?v

查看叢集中各索引的segment資訊,包括segment名稱、所屬shard、記憶體或磁碟佔用大小、是否刷盤等。也可以指定index查看segment資訊(GET _cat/segments/<index>?v)。

索引命令

命令

說明

GET /_cat/indices?v

查看叢集中所有索引的詳細資料,包括索引的健康度、狀態、分區數和副本數、包含的文檔數等。也可以查看指定索引的資訊(GET _cat/indices/<index>?v)。

GET /_cat/aliases?v

查看叢集中所有aliases(索引別名)的資訊,包括aliases對應的索引、路由配置等。

Mapping命令

命令

說明

GET /_mapping

查看叢集中所有索引的Mapping。

GET /<index>/_mapping

查看指定索引的Mapping。

文檔命令

命令

說明

GET /_cat/count?v

查看叢集中的文檔數量。也可以指定index查看文檔數量(GET _cat/count/<index>?v)。

GET /<index>/_doc/<id>

查看文檔中的資料。

快照命令

命令

說明

GET _snapshot/_all

查看所有快照。

GET _snapshot/<snapshot_name>/_status

查看指定快照的進度。

常見問題

如何查看 Elasticsearch 中所有正在執行的搜尋任務?

在 Kibana 的Dev Tools控制台中執行以下命令,可查詢當前節點上所有正在啟動並執行 search 類型任務及其詳細資料。

GET /_tasks?actions=indices:data/read/search*&detailed=true&nodes=_local

該命令適用於排查搜尋延遲、確認搜尋任務執行情況等情境。

Elasticsearch 搜尋請求返回 503 Service Unavailable 如何排查?

503 錯誤通常由叢集負載過高或磁碟使用率過高導致。排查步驟如下:

  1. 執行GET /_cluster/health查看叢集健康狀態,確認是否存在 red/yellow 狀態或未分配分區。

  2. 結合GET /_cat/nodes?v檢查節點 CPU、HeapMemory 及磁碟使用率。

  3. 若叢集狀態異常,優先處理分區分配或資源瓶頸問題後再重試搜尋請求。