三种状态
red: 表示至少丢失1个主分片(和所有的备份),这意味着我们集群丢失了数据,查询结果将不再完整,索引数据时会抛出异常
yellow: 表示所有分片都被分配,但是部分副本缺失,没有数据丢失,查询结果也是完整的。但在HA存在一定程度安全隐患,如果再丢失一部分主分片可能导致数据丢失。
green: 表示所有分片和副本都被分配, 集群状态正常
索引级状态由最坏的分片状态控制。
集群状态由最差索引状态控制
请求参数
level cluster, indices or shards,返回健康状态的细节,默认是集群
wait_for_status green, yellow or red,将等待集群的状态变为为提供的或更好的状态(直到提供超时),即绿色>黄色>红色。 默认不等待任何状态。
wait_for_active_shards 一个数字,控制要等待多少活动分片,全部等待集群中的所有分片处于活动状态,默认为0,不等待
timeout 超时,默认30s
local 如果为true则返回本地节点信息,并且不提供主节点的状态。 默认值:false。
查看集群状态
GET _cluster/health?pretty { "cluster_name" : "testcluster", "status" : "yellow", "timed_out" : false, "number_of_nodes" : 1, # 集群所有节点数 "number_of_data_nodes" : 1, # 集群所有数据节点数 "active_primary_shards" : 5, # 集群所有索引的主分片数 "active_shards" : 5, # 集群所有索引的主分片数 "relocating_shards" : 0, # 表示当前集群分片从一个节点转移到另一个节点的分片数,这个值一般情况为0,但是可能会增加,当ES集群不平衡时会存在这种情况,比如一个新节点的加入或一个几点关闭。 "initializing_shards" : 0, # 表示分片在创建初期的分片数 "unassigned_shards" : 5, # 未分配分片数 "delayed_unassigned_shards": 0, # 延迟的没有分配数据的分片 "number_of_pending_tasks" : 0, # pending状态的任务 "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 50.0 }
查看索引的监控状态
GET /_cluster/health/test1,test2
api调用将会被阻塞直到集群返回green状态时
GET /_cluster/health?wait_for_status=green&timeout=50s