获取集群的健康状态信息,包括集群状态(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
响应示例:
{
"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
}
获取指定索引的健康状态 #
GET /_cluster/health/my_index
获取索引级别的详细信息 #
GET /_cluster/health?level=indices
等待集群达到 green 状态 #
GET /_cluster/health?wait_for_status=green&timeout=50s
获取分片级别的详细信息 #
GET /_cluster/health/my_index?level=shards





