企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 集群健康(Cluster Health) 集群健康API允许获取一个非常简单的关于该集群的健康状态.比如,在一个只有一台节点且有5个主分片和1个副本分片的集群可能是这样的: ~~~ GET _cluster/health ~~~ 返回结果 ~~~ { "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, "initializing_shards" : 0, "unassigned_shards" : 5, "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": 50.0 } ~~~ 该API同样能通过指定多个索引来获取多个索引的健康状态信息 ~~~ GET /_cluster/health/test1,test2 ~~~ 集群健康状态有: green,yellow或者red.指的是分片级别的状态,red状态代表有指定的分片没有分配,yellow状态意味着集群里的主分片分配了但是副本分片没有分配,green状态意味着所有的分片都已经分配了.索引级别的状态受到最坏的分片状态影响.集群状态是受到索引状态的影响.该API的主要优点之一是能够等待集群达到一定的高水位标志健康水平.比如,下面的例子将会等待50秒钟直到集群达到yellow状态(如果集群在50秒内达到green或yellow状态),就会及时返回 ~~~ GET /_cluster/health?wait_for_status=yellow&timeout=50s ~~~ 请求参数 集群健康API接收如下的参数列表: * `level`,`cluster`, `indices` 或 `shards`中的一个值.用来控制返回集群健康信息结果的级别.默认为`cluster` * `wait_for_status` `green`, `yellow` 或 `red`中的一个值. 该请求会等待(提供的指定时间参数)直到集群请求变成指定的状态值或更好的状态.比如 green > yellow > red .默认的时候不需要等待任何状态. * `wait_for_no_relocating_shards` 一个布尔类型的值,用来控制当集群没有分片分配的时候是否等待.默认为false,意味着分片分配不需要等待 * `wait_for_active_shards` 该参数用来控制集群分片数量大于或等于该值才会返回结果,设置为"all"则意味着集群中所有分片都是激活的,设置为"0"则意味着不需要等待,默认为0 * `wait_for_nodes` 该参数是用来指定让集群可用节点数量大于或等于该值的时候才会返回结果,该值的设置可用是 >N , =N.或者用另一种方式ge(N),gt(N),le(N)或lt(N). * `timeout` 一个时间参数用来设置wait_for_XXX的时间值,默认为30S * `local` 如果为true则返回本地节点信息而不提供从主节点来的状态,默认为false 如下面的例子是从分片级别获取集群健康状态: ~~~ GET /_cluster/health/twitter?level=shards ~~~