集群健康 | Elasticsearch: 权威指南 | Elastic
elastic.co/guide/cn/elasticsearch/guide/current/_cluster_health.html
⼀个 Elasticsearch 集群⾄少包括⼀个节点和⼀个索引。或者它可能有⼀百个数据节点、三个
单独的主节点,以及⼀⼩打客户端节点——这些共同操作⼀千个索引(以及上万个分⽚)。
不管集群扩展到多⼤规模,你都会想要⼀个快速获取集群状态的途径。 Cluster Health
API 充当的就是这个⾓⾊。你可以把它想象成是在⼀万英尺的⾼度鸟瞰集群。它可以告诉你安
⼼吧⼀切都好,或者警告你集群某个地⽅有问题。
和 Elasticsearch ⾥其他 API ⼀样, cluster-health 会返回⼀个 JSON 响应。这对⾃动化
和告警系统来说,⾮常便于解析。响应中包含了和你集群有关的⼀些关键信息:
{
"cluster_name": "elasticsearch_zach",
"status": "green",
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 10,
"active_shards": 10,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0
}
green
所有的主分⽚和副本分⽚都已分配。你的集群是 100% 可⽤的。
yellow
所有的主分⽚已经分⽚了,但⾄少还有⼀个副本是缺失的。不会有数据丢失,所以搜索结果依
然是完整的。不过,你的⾼可⽤性在某种程度上被弱化。如果
更多的
分⽚消失,你就会丢数据
了。把 yellow 想象成⼀个需要及时调查的警告。
red
⾄少⼀个主分⽚(以及它的全部副本)都在缺失中。这意味着你在缺少数据:搜索只能返回部分
数据,⽽分配到这个分⽚上的写⼊请求会返回⼀个异常。
number_of_nodes 和 number_of_data_nodes 这个命名完全是⾃描述的。
active_primary_shards 指出你集群中的主分⽚数量。这是涵盖了所有索引的汇总
值。
active_shards 是涵盖了所有索引的_所有_分⽚的汇总值,即包括副本分⽚。
relocating_shards 显⽰当前正在从⼀个节点迁往其他节点的分⽚的数量。通常来说
应该是 0,不过在 Elasticsearch 发现集群不太均衡时,该值会上涨。⽐如说:添加了⼀
个新节点,或者下线了⼀个节点。
initializing_shards 是刚刚创建的分⽚的个数。⽐如,当你刚创建第⼀个索引,
分⽚都会短暂的处于 initializing 状态。这通常会是⼀个临时事件,分⽚不应该长
期停留在 initializing 状态。你还可能在节点刚重启的时候看到 initializing
分⽚:当分⽚从磁盘上加载后,它们会从 initializing 状态开始。
评论