首页/云/可观测性速查/集群健康与红色分片处置
日志平台52 条

集群健康与红色分片处置

绿黄红分别对应分片分配状态:黄=副本未分配,红=主分片未分配;红色先查未分配原因再决定处置,不要急着重启节点。

可观测性速查云更新于 2026-10-13

集群健康与红色分片是什么

集群健康用三种颜色表示分片分配状态:绿色表示主分片与副本都已分配,黄色表示副本未分配(数据可读写但无冗余),红色表示主分片未分配(部分数据不可用)。红色是真正需要立刻处理的级别,正确做法是先查未分配原因再决定处置,而不是急着重启节点。

基本信息

绿色主分片与副本均已分配
黄色副本未分配,缺冗余
红色主分片未分配,数据不可用
诊断接口_cluster/health、_cat/shards、_cluster/allocation/explain
常见原因磁盘水位、分配规则、节点离线
处置顺序先看原因,再动手,慎重启

典型使用场景

  • 巡检发现红色后定位是哪个索引的哪个分片未分配
  • 黄灯时判断是单节点集群的正常现象还是真缺冗余
  • 磁盘水位触发分片分配失败时按提示清理或扩容
  • 节点下线后确认分片是否已重新分配完成
  • 用分配解释接口查清原因,避免盲目重启造成二次震荡
  • 升级部署前核对健康状态,确认基线正常

诊断命令

诊断命令
# 集群与索引级健康
GET /_cluster/health?level=indices

# 分片状态与未分配原因
GET /_cat/shards?v&h=index,shard,prirep,state,unassigned.reason

# 让 ES 解释为什么分片未分配
GET /_cluster/allocation/explain
{ "index": "logs-app", "shard": 0, "primary": true }

状态对照

颜色含义处置优先级
green全部正常无需处置
yellow副本未分配单节点集群属正常,多节点需排查
red主分片未分配优先恢复,数据不可用
unassigned.reason未分配原因按原因选择处置方式
黄常见于单节点集群(无法分配副本);红意味着有数据暂不可用,优先恢复主分片,处置前先看分配解释的输出。
用分配解释看清原因(磁盘水位、分配规则、节点离线)再动手:直接重启会触发新一轮分片恢复,可能让问题扩大。
磁盘水位相关的分配限制通常有多个阈值,临时清理或扩容后分片才会自动分配,必要时可临时放宽限制但要尽快恢复。
恢复期间集群负载会明显上升,避免同时做强制合并、大批量写入等重操作。

易错点

  • 单节点测试集群常年黄色属正常,别为消黄盲目加副本
  • 用 explain 看清原因(磁盘水位/分配规则)再动手,重启会触发新一轮分片恢复
  • 红灯时先做恢复重操作(如强制合并)会雪上加霜,恢复期间应避免重负载任务
  • 只看颜色不看具体索引与分片,会漏掉「整体绿色但个别索引黄色」这类局部问题
  • 磁盘水位清理后忘记恢复限制设置,长期放宽会让分配策略失去保护作用

数据来源与参考

  • Elastic 官方文档 · Cluster health
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌