_cat/health 看什么
_cat/health 用一行表格给出集群状态、节点数量、主分片与总分片数、正在迁移与未分配的分片数量,以及 master 上待处理的任务数。字段少、格式紧凑,非常适合写进巡检脚本与监控采集,是排查集群整体状态的第一站。
基本信息
| 接口 | GET /_cat/health?v |
|---|---|
| 常用列 | status、node.total、node.data、shards、pri、relo、init、unassign、pending_tasks |
| 常用参数 | ts=false 去掉时间戳、h= 选列、format=json 结构化输出 |
| 状态取值 | green 全部就绪 / yellow 副本未分配 / red 主分片未分配 |
| 数据来源 | 与 _cluster/health 同源,输出更紧凑 |
典型使用场景
- 定时巡检:把状态与未分配分片数采集进监控系统
- 发布或扩容后确认集群恢复到预期状态
- 排查分片迁移是否完成:看 relo 与 init 是否归零
- 判断 master 是否积压:pending_tasks 持续非零
- 自动脚本在写入前做一次集群健康预检
常用写法
常用写法
# 去掉时间戳,便于脚本解析
GET /_cat/health?v&ts=false
# 只取巡检关心的列
GET /_cat/health?v&h=status,node.total,shards,pri,unassign,pending_tasks
# 结构化输出,机器可读
GET /_cat/health?format=json
# 需要更细的信息时看未分配分片的原因
GET /_cat/shards?v&h=index,shard,prirep,state,unassigned.reason
# master 积压时看具体任务
GET /_cat/pending_tasks?v输出逐列读法
| 列 | 含义 | 正常 / 异常 |
|---|---|---|
| status | 集群健康色 | green 正常,yellow 缺副本,red 缺主分片 |
| node.total / node.data | 节点总数与数据节点数 | 数据节点数骤降说明节点掉线 |
| shards / pri | 总分片与主分片计数 | 与预期不符说明索引被增删 |
| relo / init | 正在迁移与初始化的分片数 | 长期非零说明分配一直在动 |
| unassign | 未分配分片数 | 非零要立刻用 allocation explain 排查 |
| pending_tasks | master 待处理任务数 | 持续非零说明 master 处理不过来 |
该接口与 _cluster/health 同源但输出更紧凑;写脚本采集时优先使用 format=json,避免解析带对齐空格与时间戳的表格。
巡检脚本除了采集 status,还应记录 unassign 与 relo 的变化趋势:状态色只在主分片缺失时变红,副本长期未分配则一直表现为黄色的「健康」假象。