深度解析:Elasticsearch 中 cat API 有什么作用?(高频使用+命令大全+实战教程)
-
- 一、cat API 基础定义:什么是 Elasticsearch cat API?
-
- cat API 核心功能流程图
- 二、cat API:核心作用与价值(为什么要用?)
-
- 2.1 作用一:返回人性化可读格式(最核心)
- 2.2 作用二:快速查看集群健康状态
- 2.3 作用三:实时监控索引与分片状态
- 2.4 作用四:监控节点负载与硬件资源
- 2.5 作用五:排查生产环境问题(必备)
- 三、cat API:高频常用命令(10个必背)
-
- 3.1 命令一:查看集群健康状态(最常用)
- 3.2 命令二:查看所有节点信息
- 3.3 命令三:查看所有索引列表
- 3.4 命令四:查看分片分配状态
- 3.5 命令五:查看分片分配详情
- 3.6 命令六:查看线程池状态
- 3.7 命令七:查看文档数量统计
- 3.8 命令八:查看集群模板
- 3.9 命令九:查看集群插件
- 3.10 命令十:查看字段数据结构
- 四、cat API:参数说明
-
- 4.1 参数一:?v
- 4.2 参数二:?format=json
- 4.3 参数三:?h=字段名
- 五、cat API 与 普通 JSON API 对比
- 六、cat API:生产环境实战场景
-
- 6.1 场景一:集群突然故障,快速排查
- 6.2 场景二:查看哪些索引占用空间最大
- 6.3 场景三:查看节点负载是否均衡
- 七、cat API 完整功能总结表
- 八、总结
-
- cat API:Elasticsearch 运维神器
|
🌺The Begin🌺点点关注,收藏不迷路🌺 |
一、cat API 基础定义:什么是 Elasticsearch cat API?
cat API 是 Elasticsearch 提供的轻量级、人性化、文本格式的集群查询接口,专门用于查看集群状态、节点信息、索引状态、分片、线程池、磁盘等核心运维数据。
cat API 基于 REST 风格,返回易读的表格格式,专门给运维人员、开发人员快速查看集群健康状态,是 ES 生产环境最常用、最实用的 API 之一。
cat API 核心功能流程图
#mermaid-svg-tFphdlCEhU8TUi8H{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tFphdlCEhU8TUi8H .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tFphdlCEhU8TUi8H .error-icon{fill:#552222;}#mermaid-svg-tFphdlCEhU8TUi8H .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tFphdlCEhU8TUi8H .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tFphdlCEhU8TUi8H .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tFphdlCEhU8TUi8H .marker.cross{stroke:#333333;}#mermaid-svg-tFphdlCEhU8TUi8H svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tFphdlCEhU8TUi8H p{margin:0;}#mermaid-svg-tFphdlCEhU8TUi8H .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-tFphdlCEhU8TUi8H .cluster-label text{fill:#333;}#mermaid-svg-tFphdlCEhU8TUi8H .cluster-label span{color:#333;}#mermaid-svg-tFphdlCEhU8TUi8H .cluster-label span p{background-color:transparent;}#mermaid-svg-tFphdlCEhU8TUi8H .label text,#mermaid-svg-tFphdlCEhU8TUi8H span{fill:#333;color:#333;}#mermaid-svg-tFphdlCEhU8TUi8H .node rect,#mermaid-svg-tFphdlCEhU8TUi8H .node circle,#mermaid-svg-tFphdlCEhU8TUi8H .node ellipse,#mermaid-svg-tFphdlCEhU8TUi8H .node polygon,#mermaid-svg-tFphdlCEhU8TUi8H .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tFphdlCEhU8TUi8H .rough-node .label text,#mermaid-svg-tFphdlCEhU8TUi8H .node .label text,#mermaid-svg-tFphdlCEhU8TUi8H .image-shape .label,#mermaid-svg-tFphdlCEhU8TUi8H .icon-shape .label{text-anchor:middle;}#mermaid-svg-tFphdlCEhU8TUi8H .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tFphdlCEhU8TUi8H .rough-node .label,#mermaid-svg-tFphdlCEhU8TUi8H .node .label,#mermaid-svg-tFphdlCEhU8TUi8H .image-shape .label,#mermaid-svg-tFphdlCEhU8TUi8H .icon-shape .label{text-align:center;}#mermaid-svg-tFphdlCEhU8TUi8H .node.clickable{cursor:pointer;}#mermaid-svg-tFphdlCEhU8TUi8H .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tFphdlCEhU8TUi8H .arrowheadPath{fill:#333333;}#mermaid-svg-tFphdlCEhU8TUi8H .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tFphdlCEhU8TUi8H .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tFphdlCEhU8TUi8H .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tFphdlCEhU8TUi8H .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tFphdlCEhU8TUi8H .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tFphdlCEhU8TUi8H .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tFphdlCEhU8TUi8H .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tFphdlCEhU8TUi8H .cluster text{fill:#333;}#mermaid-svg-tFphdlCEhU8TUi8H .cluster span{color:#333;}#mermaid-svg-tFphdlCEhU8TUi8H div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tFphdlCEhU8TUi8H .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tFphdlCEhU8TUi8H rect.text{fill:none;stroke-width:0;}#mermaid-svg-tFphdlCEhU8TUi8H .icon-shape,#mermaid-svg-tFphdlCEhU8TUi8H .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tFphdlCEhU8TUi8H .icon-shape p,#mermaid-svg-tFphdlCEhU8TUi8H .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tFphdlCEhU8TUi8H .icon-shape .label rect,#mermaid-svg-tFphdlCEhU8TUi8H .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tFphdlCEhU8TUi8H .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tFphdlCEhU8TUi8H .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tFphdlCEhU8TUi8H :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
发送cat API请求
ES集群返回表格格式数据
运维/开发快速查看
判断集群健康状态
排查分片异常
监控索引/节点负载
二、cat API:核心作用与价值(为什么要用?)
2.1 作用一:返回人性化可读格式(最核心)
- 普通 API 返回 JSON,结构复杂、阅读困难
- cat API 返回整齐的表格格式,一目了然
- 直接在命令行、浏览器、Kibana 中查看
2.2 作用二:快速查看集群健康状态
- 查看集群是否正常(green/yellow/red)
- 查看节点数量、分片数量、副本状态
- 秒级判断集群是否故障
2.3 作用三:实时监控索引与分片状态
- 查看所有索引大小、文档数量
- 查看分片分配、迁移、异常情况
- 排查分片未分配、副本丢失问题
2.4 作用四:监控节点负载与硬件资源
- 查看节点 CPU、内存、磁盘负载
- 查看节点负载均衡情况
- 快速定位故障节点
2.5 作用五:排查生产环境问题(必备)
- 集群故障快速诊断
- 索引读写性能排查
- 分片异常、磁盘满、节点掉线快速定位
三、cat API:高频常用命令(10个必背)
3.1 命令一:查看集群健康状态(最常用)
作用:判断集群是否正常
GET _cat/health?v
返回:集群状态、节点数、数据节点数、分片数、负载
3.2 命令二:查看所有节点信息
作用:查看节点IP、CPU、内存、负载
GET _cat/nodes?v
3.3 命令三:查看所有索引列表
作用:查看索引名称、文档数、存储大小、健康状态
GET _cat/indices?v
3.4 命令四:查看分片分配状态
作用:排查分片未分配、异常分片
GET _cat/shards?v
3.5 命令五:查看分片分配详情
作用:查看分片在哪个节点上
GET _cat/allocation?v
3.6 命令六:查看线程池状态
作用:排查ES读写阻塞、队列堆积
GET _cat/thread_pool?v
3.7 命令七:查看文档数量统计
GET _cat/count?v
3.8 命令八:查看集群模板
GET _cat/templates?v
3.9 命令九:查看集群插件
GET _cat/plugins?v
3.10 命令十:查看字段数据结构
GET _cat/fielddata?v
四、cat API:参数说明
4.1 参数一:?v
作用:显示表头(列名),推荐必加 不加则只返回数据,无标题
4.2 参数二:?format=json
作用:以 JSON 格式返回(方便程序解析)
4.3 参数三:?h=字段名
作用:只显示指定列,精简输出
GET _cat/indices?v&h=index,health,store.size
五、cat API 与 普通 JSON API 对比
| 返回格式 | 表格文本,易读 | JSON 结构,复杂 |
| 使用对象 | 运维、开发快速查看 | 程序调用、自动化 |
| 功能 | 查看状态、监控、排查问题 | 增删改查、管理操作 |
| 性能 | 轻量级、无性能消耗 | 相对较重 |
| 生产常用度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
六、cat API:生产环境实战场景
6.1 场景一:集群突然故障,快速排查
执行:
GET _cat/health?v
- 状态 green:正常
- 状态 yellow:副本未分配
- 状态 red:主分片丢失,数据不可用
6.2 场景二:查看哪些索引占用空间最大
GET _cat/indices?v&s=store.size:desc
按索引大小倒序,快速定位大索引
6.3 场景三:查看节点负载是否均衡
GET _cat/nodes?v&h=name,ip,disk.used_percent,cpu
七、cat API 完整功能总结表
| _cat/health | 集群健康状态 | 极高 |
| _cat/nodes | 节点信息、负载 | 极高 |
| _cat/indices | 索引列表、大小、文档数 | 极高 |
| _cat/shards | 分片状态、分配 | 高 |
| _cat/allocation | 磁盘使用、分片分布 | 高 |
| _cat/thread_pool | 线程池、队列阻塞 | 中 |
| _cat/count | 文档总数 | 中 |
| _cat/plugins | 插件列表 | 低 |
八、总结
cat API:Elasticsearch 运维神器
一句话:不会用 cat API,就无法快速排查 Elasticsearch 集群问题!
本文原创,转载请注明出处 关键词:Elasticsearch cat API、ES集群监控、cat命令、ES运维、ES集群状态

|
🌺The End🌺点点关注,收藏不迷路🌺 |





