8.1 集群解剖:节点角色与健康检查 本节摘要:健康检查是运维的第一仪表盘,但只看颜色不够——要能读懂未分配分片数、主节点身份、节点数的变化,并理解它们背后的选举与元数据机制。本节讲健康接口的完整读法、主节点选举的法定多数、节点角色的专责化,以及黄色与红色的标准处置路径。看完这节,你面对集群告警时手里有地图。 集群的体检报告 健康检查的完整读法 第 2 章只看了三色,生产视角要读全字段: 字段连成一个故事:主分片 42 个全部活跃(unassignedprimaryshards 为零,所以不是红色);活跃分片应有 84(副本一),实际 63,差着 21 个未分配副本——黄色;relocating 2 个说明正在搬迁(8.2 的再平衡进行中);initializing 1 个正在初始化。
本节摘要:健康检查是运维的第一仪表盘,但只看颜色不够——要能读懂未分配分片数、主节点身份、节点数的变化,并理解它们背后的选举与元数据机制。本节讲健康接口的完整读法、主节点选举的法定多数、节点角色的专责化,以及黄色与红色的标准处置路径。看完这节,你面对集群告警时手里有地图。
第 2 章只看了三色,生产视角要读全字段:
GET _cluster/health?level=indices
{ "status": "yellow", "number_of_nodes": 3, "active_primary_shards": 42, "active_shards": 63, "relocating_shards": 2, "initializing_shards": 1, "unassigned_shards": 21, "unassigned_primary_shards": 0 }
字段连成一个故事:主分片 42 个全部活跃(unassigned_primary_shards 为零,所以不是红色);活跃分片应有 84(副本一),实际 63,差着 21 个未分配副本——黄色;relocating 2 个说明正在搬迁(8.2 的再平衡进行中);initializing 1 个正在初始化。读报告的顺序:先看主分片有没有丢(红色判定),再看副本缺口(黄色判定),最后看搬迁与初始化(进行中的动作)。level 参数调到 indices 还能逐索引下钻,黄色到底是哪个索引的账,一眼定位。
| 状态 | 含义 | 第一动作 | 时限感 |
|---|---|---|---|
| 绿色 | 主副本齐备 | 记录后走人 | 常规巡检 |
| 黄色 | 副本未分配 | 查未分配原因接口,多数是磁盘水位或节点数不足 | 当天处理 |
| 红色 | 主分片丢失 | 停止写入、查故障节点、评估恢复或快照还原 | 立刻响应 |
红色的标准动作序列值得背下来:先停写入(避免半死状态继续吃元数据)、看主分片所在节点是重启中还是真没了、节点能回来就等对等恢复(副本还在的前提下),回不来就走快照还原(8.4 的演练价值在此兑现)。
集群的元数据(有哪些索引、映射是什么、分片在哪)由主节点维护。主节点挂了,master 候选节点们发起选举——当选需要法定多数:三候选里至少两票、五候选里至少三票。这个门槛防的是脑裂:网络分区把集群裂成两半时,少数派凑不够票,无法选出第二个主节点自封正统,元数据世界始终只有一个权威。这就是生产推荐三或五个专职 master 候选、永不用两个的原因——两候选的一边一票,两边都当不了家,集群瘫痪。
GET _cat/nodes?v=h,name,node.role,master
name node.role master node-1 dimr * node-2 dimr - node-3 dimr - # node.role 里 d数据 i预处理 m主候选 r远程检索 星号是现任主节点

背景:周五傍晚,监控告警集群变黄,unassigned_shards 从零涨到二十。操作:健康接口下钻到 indices,锁定是新索引 logs-2026-08-28 的副本未分配;查未分配原因接口,返回判定码是磁盘水位触发——某数据节点磁盘用到八成五,超过低水位线,分配器拒绝再往它放副本。处置:临时把该索引副本数降到零保住绿色(业务容忍单副本缺失窗口),随后清理该节点上的废弃索引、扩了一块盘,水位回落后副本自动补齐。解读:黄色的常见根因就三类——节点数不够、磁盘水位、分配过滤(8.2);未分配原因接口把猜测变成判定码,处置从"重启试试"变成定向操作。变式:水位长期紧张时,上 8.4 的容量预估或把冷索引进生命周期管理(滚动到低配节点或删除)。
⚠️ 常见坑:看到黄色就重启集群。重启不解决节点数不足与磁盘水位,反而打断正在进行的恢复与搬迁,把小黄拖成大红。先读未分配原因,再动手。
💡 关键直觉:三色报告是体检结论,指标四件套才是化验单。告警建在化验单上(堆、拒绝数、水位、延迟),体检结论只用来兜底。
| 考核点 | 达标标准 |
|---|---|
| 健康读序 | 按主分片、副本缺口、搬迁状态的顺序解读健康报告 |
| 法定多数 | 说出主候选的数量要求与脑裂防护的机理 |
| 角色矩阵 | 四种角色的职责与两种集群形态的取舍 |
| 黄色三根因 | 节点数、磁盘水位、分配过滤各自的判据与处置 |
| 监控四件套 | 说出堆、拒绝数、水位、延迟的告警位置与颜色指标的关系 |
黄色状态出现时,分配解释接口把"猜测"变成"判定":
GET _cluster/allocation/explain # 返回 allocation_explanation 与逐节点 decision 日志 # 常见判定 磁盘超过低水位线 副本不能与主分片同节点 分配过滤规则排除
读到的判定直接对应处置动作:水位触发就去清磁盘或扩容,节点不足就补节点,过滤排除就去查冷热分层规则。把这条接口写进运维手册的"黄色处置"一页,从此处置有据可依,重启大法退场。
集群看清楚了,下一节让分片动起来:分配、再平衡与搬家的代价。