📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

获取集群的健康状态信息,包括集群状态(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枚举值无等待等待达到指定的集群状态。可选值:greenyellowred
wait_for_no_relocating_shards布尔值false等待没有分片正在重定位
wait_for_no_initializing_shards布尔值false等待没有分片正在初始化
wait_for_active_shards整数/枚举值0等待指定数量的活跃分片副本。可选值:alldefault 或具体数字
wait_for_nodes字符串无等待等待指定数量的节点。格式:数字(如 5)或比较表达式(如 >5
wait_for_events枚举值无等待等待指定优先级的事件。可选值:immediateurgenthighnormallowlanguid

健康状态说明 #

状态描述
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