--- title: "获取集群健康状态" date: 2026-02-22 lastmod: 2026-02-22 description: "获取集群的健康状态信息,包括集群状态、分片情况、节点数量等" tags: ["集群管理", "健康检查", "监控"] summary: "获取集群的健康状态信息,包括集群状态(GREEN、YELLOW、RED)、分片情况、节点数量等。 API # GET /_cluster/health GET /_cluster/health/{index} API 的作用 # 该 API 用于检查集群的健康状况,返回以下信息: 集群的整体状态(GREEN、YELLOW、RED) 各个索引的健康状态 分片级别的健康信息 各种等待条件的当前状态 这是集群管理中非常重要的接口,常用于监控集群健康状态和自动化运维场景。 API 的参数 # 路由参数 # 参数 类型 是否必填 默认值 描述 {index} 字符串 否 所有索引 指定要检查的索引名称,多个索引用逗号分隔 Query String 参数 # 参数 类型 是否必填 默认值 描述 level 枚举值 否 cluster 控制返回信息的详细程度。可选值:cluster(集群级别)、indices(索引级别)、shards(分片级别) local 布尔值 否 false 是否从本地节点读取状态,不向主节点请求 timeout 时间值 否 30s 等待操作完成的超时时间 master_timeout 时间值 否 30s 等待主节点响应的超时时间 wait_for_status 枚举值 否 无等待 等待达到指定的集群状态。可选值:green、yellow、red wait_for_no_relocating_shards 布尔值 否 false 等待没有分片正在重定位 wait_for_no_initializing_shards 布尔值 否 false 等待没有分片正在初始化 wait_for_active_shards 整数/枚举值 否 0 等待指定数量的活跃分片副本。可选值:all、default 或具体数字 wait_for_nodes 字符串 否 无等待 等待指定数量的节点。格式:数字(如 5)或比较表达式(如 >5) wait_for_events 枚举值 否 无等待 等待指定优先级的事件。可选值:immediate、urgent、high、normal、low、languid 健康状态说明 # 状态 描述 green 所有主分片和副本分片都正常分配 yellow 所有主分片正常,但至少有一个副本分片未分配 red 至少有一个主分片未分配 示例 # 获取集群整体健康状态 # GET /_cluster/health 响应示例:" --- 获取集群的健康状态信息,包括集群状态(GREEN、YELLOW、RED)、分片情况、节点数量等。 ## API ``` GET /_cluster/health GET /_cluster/health/{index} ``` ## API 的作用 该 API 用于检查集群的健康状况,返回以下信息: - 集群的整体状态(GREEN、YELLOW、RED) - 各个索引的健康状态 - 分片级别的健康信息 - 各种等待条件的当前状态 这是集群管理中非常重要的接口,常用于监控集群健康状态和自动化运维场景。 ## API 的参数 ### 路由参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `{index}` | 字符串 | 否 | 所有索引 | 指定要检查的索引名称,多个索引用逗号分隔 | ### Query String 参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `level` | 枚举值 | 否 | `cluster` | 控制返回信息的详细程度。可选值:`cluster`(集群级别)、`indices`(索引级别)、`shards`(分片级别) | | `local` | 布尔值 | 否 | `false` | 是否从本地节点读取状态,不向主节点请求 | | `timeout` | 时间值 | 否 | `30s` | 等待操作完成的超时时间 | | `master_timeout` | 时间值 | 否 | `30s` | 等待主节点响应的超时时间 | | `wait_for_status` | 枚举值 | 否 | 无等待 | 等待达到指定的集群状态。可选值:`green`、`yellow`、`red` | | `wait_for_no_relocating_shards` | 布尔值 | 否 | `false` | 等待没有分片正在重定位 | | `wait_for_no_initializing_shards` | 布尔值 | 否 | `false` | 等待没有分片正在初始化 | | `wait_for_active_shards` | 整数/枚举值 | 否 | `0` | 等待指定数量的活跃分片副本。可选值:`all`、`default` 或具体数字 | | `wait_for_nodes` | 字符串 | 否 | 无等待 | 等待指定数量的节点。格式:数字(如 `5`)或比较表达式(如 `>5`) | | `wait_for_events` | 枚举值 | 否 | 无等待 | 等待指定优先级的事件。可选值:`immediate`、`urgent`、`high`、`normal`、`low`、`languid` | ## 健康状态说明 | 状态 | 描述 | |------|------| | `green` | 所有主分片和副本分片都正常分配 | | `yellow` | 所有主分片正常,但至少有一个副本分片未分配 | | `red` | 至少有一个主分片未分配 | ## 示例 ### 获取集群整体健康状态 ```bash GET /_cluster/health ``` **响应示例:** ```json { "cluster_name": "easysearch-cluster", "status": "green", "timed_out": false, "number_of_nodes": 3, "number_of_data_nodes": 3, "active_primary_shards": 10, "active_shards": 20, "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 } ``` ### 获取指定索引的健康状态 ```bash GET /_cluster/health/my_index ``` ### 获取索引级别的详细信息 ```bash GET /_cluster/health?level=indices ``` ### 等待集群达到 green 状态 ```bash GET /_cluster/health?wait_for_status=green&timeout=50s ``` ### 获取分片级别的详细信息 ```bash GET /_cluster/health/my_index?level=shards ```