Cat API 是什么
cat 系列接口用表格形式输出集群状态,是 Elasticsearch 巡检最顺手的入口:索引容量、节点负载、分片分布、线程池队列都能一眼看到。加参数显示表头,加参数切换为结构化格式便于脚本消费。它们的定位是「快速看清楚」,不替代监控系统,但很适合作为日常巡检脚本与故障首查的第一步。
基本信息
| 适用引擎 | Elasticsearch 各主版本,接口路径以 _cat 开头 |
|---|---|
| 常用参数 | v 显示表头、h 指定列、s 指定排序、format=json 便于脚本 |
| 认证 | 同集群认证方式(用户名密码或 API 密钥) |
| 典型频率 | 巡检脚本按分钟到小时级采集 |
典型使用场景
- 容量巡检:按存储大小排序看哪些索引膨胀最快
- 节点健康:查看堆内存使用率、磁盘水位与负载
- 分片检查:确认分片分布是否均衡、有无未分配分片
- 写入压力:观察线程池队列与拒绝数,判断是否需要扩容
- 脚本采集:以结构化格式输出后写入监控系统
巡检一组命令
巡检一组命令
GET /_cat/health?v
GET /_cat/indices?v&s=store.size:desc # 索引按容量倒序
GET /_cat/nodes?v&h=name,heap.percent,disk.used_percent,cpu
GET /_cat/shards?v&h=index,shard,prirep,state,node # 分片与副本状态
GET /_cat/thread_pool?v&h=node_name,name,active,queue,rejected
GET /_cat/allocation?v # 各节点磁盘占用与分片数
# 脚本消费统一加 &format=json,字段顺序变化也不影响解析常用接口与关注点
| 接口 | 输出内容 | 关注点 |
|---|---|---|
| _cat/health | 集群状态与节点数 | 状态非绿色、节点数变化 |
| _cat/indices | 索引容量、文档数、健康 | 容量突增与副本缺失 |
| _cat/nodes | 节点负载、堆内存、磁盘 | 堆内存逼近阈值与磁盘水位 |
| _cat/shards | 分片分布与状态 | 未分配分片与分布不均 |
| _cat/thread_pool | 线程池活跃与拒绝数 | 拒绝数持续增长 |
把这几条命令封成巡检脚本定时采集,集群异常前通常能先看到容量增长与队列积压的变化,比故障后翻日志有效得多。
面向人读的输出格式在不同版本间可能调整列顺序,脚本解析一律使用结构化格式,不要按固定位置截取字段。