集群健康值
GET _cluster/health
Request URL: http://localhost:4567/_cluster/health
Request Method: GET
和 Elasticsearch
里其他 API 一样,cluster-health
会返回一个JSON
响应。这对自动化和告警系统来说,非常便于解析。响应中包含了和你集群有关的一些关键信息:
{
"cluster_name": "es_cluster",
"status": "red",
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 2076,
"active_shards": 2076,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 2096,
"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": 49.760306807286675
}
number_of_nodes
和number_of_data_nodes
这个命名完全是自描述的。active_primary_shards
指出集群中的主分片数量。这是涵盖了所有索引的汇总值。active_shards
是涵盖了所有索引的所有分片的汇总值,即包括副本分片。relocating_shards
显示当前正在从一个节点迁往其他节点的分片的数量。通常来说应该是 0,不过在Elasticsearch
发现集群不太均衡时,该值会上涨。比如说:添加了一个新节点,或者下线了一个节点。initializing_shards
是刚刚创建的分片的个数。unassigned_shards
是已经在集群状态中存在的分片,但是实际在集群里又找不着cluster_name
集群名字status
集群状态(绿,黄,红)
我们只关注返回结果的cluster_name
,status
,active_shards
,unassigned_shards
,来显示集群的健康情况。
集群状态解读
head插件会以不同的颜色显示。
1. 绿色——最健康的状态,代表所有的主分片和副本分片都可用;
2. 黄色——所有的主分片可用,但是部分副本分片不可用;
3. 红色——部分主分片不可用。(此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。)
如果集群状态为红色,Head插件显示:集群健康值red。则说明:至少一个主分片分配失败。这将导致一些数据以及索引的某些部分不再可用。
尽管如此, ElasticSearch还是允许我们执行查询,至于是通知用户查询结果可能不完整还是挂起查询,则由应用构建者来决定。