---
title: "查询节点"
date: 2026-03-13
lastmod: 2026-03-13
description: "介绍如何使用 Cat API 查询 Easysearch 集群中所有节点的详细信息和统计指标。"
tags: ["Cat API", "节点", "监控", "集群管理"]
summary: "此 API 用于显示集群中所有节点的详细信息和统计指标。
API # GET /_cat/nodes API 的作用 # 返回集群中所有节点的全面信息,包括:
基本信息:节点 ID、名称、IP 地址、端口等 版本信息:Easysearch 版本、构建信息、JDK 版本 资源使用:磁盘、内存、CPU 使用情况 统计信息:索引、搜索、合并等操作的统计数据 角色信息:主节点标记、节点角色(数据/摄取/协调) API 的参数 # 此 API 没有路由参数。
查询字符串参数 # 参数 类型 是否必需 默认值 描述 bytes string 可选 b 字节大小单位
可选值:b, k, kb, m, mb, g, gb, t, tb, p, pb format string 可选 text 响应格式"
---
此 API 用于显示集群中所有节点的详细信息和统计指标。
## API
```
GET /_cat/nodes
```
## API 的作用
返回集群中所有节点的全面信息,包括:
- **基本信息**:节点 ID、名称、IP 地址、端口等
- **版本信息**:Easysearch 版本、构建信息、JDK 版本
- **资源使用**:磁盘、内存、CPU 使用情况
- **统计信息**:索引、搜索、合并等操作的统计数据
- **角色信息**:主节点标记、节点角色(数据/摄取/协调)
## API 的参数
此 API **没有**路由参数。
### 查询字符串参数
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|------|------|----------|--------|------|
| `bytes` | string | 可选 | b | 字节大小单位
可选值:`b`, `k`, `kb`, `m`, `mb`, `g`, `gb`, `t`, `tb`, `p`, `pb` |
| `format` | string | 可选 | text | 响应格式
可选值:`json`, `yaml`, `text` |
| `full_id` | boolean | 可选 | false | 是否显示完整的节点 ID |
| `h` | string | 可选 | 默认列 | 指定显示的列,逗号分隔 |
| `help` | boolean | 可选 | false | 显示帮助信息 |
| `local` | boolean | 可选 | false | 是否从本地节点获取信息 |
| `master_timeout` | time | 可选 | 30s | 等待主节点响应的超时时间 |
| `s` | string | 可选 | - | 排序列,支持 `:asc` 和 `:desc` |
| `size` | string | 可选 | - | 数量大小单位
可选值:`k`, `m`, `g`, `t`, `p` |
| `time` | string | 可选 | ms | 时间单位
可选值:`nanos`, `micros`, `ms`, `s`, `m`, `h`, `d` |
| `ts` | boolean | 可选 | true | 是否显示时间戳 |
| `v` | boolean | 可选 | false | 详细模式,显示列头 |
## 返回的字段信息
### 基本信息字段
| 列名 | 描述 |
|------|------|
| `id` | 节点唯一标识符(默认显示前 4 个字符) |
| `pid` | 进程 ID |
| `ip` | IP 地址 |
| `port` | 传输端口 |
| `http_address` | HTTP 地址 |
| `name` | 节点名称 |
### 版本信息字段
| 列名 | 描述 |
|------|------|
| `version` | Easysearch 版本 |
| `flavor` | 发行版本类型 |
| `type` | 发行类型 |
| `build` | 构建哈希值 |
| `jdk` | JDK 版本 |
### 磁盘信息字段
| 列名 | 描述 |
|------|------|
| `disk.total` | 总磁盘空间 |
| `disk.used` | 已用磁盘空间 |
| `disk.avail` | 可用磁盘空间 |
| `disk.used_percent` | 磁盘使用百分比 |
### 内存信息字段
| 列名 | 描述 |
|------|------|
| `heap.current` | 当前堆内存使用量 |
| `heap.percent` | 堆内存使用百分比 |
| `heap.max` | 最大堆内存配置 |
| `ram.current` | 当前物理内存使用量 |
| `ram.percent` | 物理内存使用百分比 |
| `ram.max` | 总物理内存 |
### 文件描述符字段
| 列名 | 描述 |
|------|------|
| `file_desc.current` | 当前使用的文件描述符数量 |
| `file_desc.percent` | 文件描述符使用百分比 |
| `file_desc.max` | 最大文件描述符数量 |
### 系统负载字段
| 列名 | 描述 |
|------|------|
| `cpu` | 最近 CPU 使用率 |
| `load_1m` | 1 分钟负载平均值 |
| `load_5m` | 5 分钟负载平均值 |
| `load_15m` | 15 分钟负载平均值 |
| `uptime` | 节点运行时间 |
### 节点角色字段
| 列名 | 描述 |
|------|------|
| `node.role` | 节点角色
`m`: 主节点候选
`d`: 数据节点
`i`: 摄取节点
`-`: 仅协调节点 |
| `master` | 主节点标记(`*` 表示当前主节点) |
### 缓存统计字段
| 列名 | 描述 |
|------|------|
| `completion.size` | 完成功能缓存大小 |
| `fielddata.memory_size` | 字段数据缓存大小 |
| `fielddata.evictions` | 字段数据缓存驱逐次数 |
| `query_cache.memory_size` | 查询缓存大小 |
| `query_cache.evictions` | 查询缓存驱逐次数 |
| `query_cache.hit_count` | 查询缓存命中次数 |
| `query_cache.miss_count` | 查询缓存未命中次数 |
| `request_cache.memory_size` | 请求缓存大小 |
| `request_cache.evictions` | 请求缓存驱逐次数 |
| `request_cache.hit_count` | 请求缓存命中次数 |
| `request_cache.miss_count` | 请求缓存未命中次数 |
### 索引操作统计字段
| 列名 | 描述 |
|------|------|
| `indexing.index_current` | 当前索引操作数 |
| `indexing.index_time` | 索引操作耗时 |
| `indexing.index_total` | 索引操作总数 |
| `indexing.index_failed` | 失败的索引操作数 |
| `indexing.delete_current` | 当前删除操作数 |
| `indexing.delete_time` | 删除操作耗时 |
| `indexing.delete_total` | 删除操作总数 |
### 搜索操作统计字段
| 列名 | 描述 |
|------|------|
| `search.query_current` | 当前查询阶段操作数 |
| `search.query_time` | 查询阶段耗时 |
| `search.query_total` | 查询操作总数 |
| `search.fetch_current` | 当前获取阶段操作数 |
| `search.fetch_time` | 获取阶段耗时 |
| `search.fetch_total` | 获取操作总数 |
| `search.scroll_current` | 开放的滚动上下文数 |
| `search.open_contexts` | 开放的搜索上下文数 |
### 合并操作统计字段
| 列名 | 描述 |
|------|------|
| `merges.current` | 当前合并操作数 |
| `merges.total` | 合并操作总数 |
| `merges.total_time` | 合并操作总耗时 |
### 分段统计字段
| 列名 | 描述 |
|------|------|
| `segments.count` | 分段数量 |
| `segments.memory` | 分段内存使用量 |
| `segments.index_writer_memory` | 索引写入器内存使用量 |
## 请求示例
```bash
# 查询所有节点的默认信息
GET /_cat/nodes
# 显示列头
GET /_cat/nodes?v
# 使用 JSON 格式
GET /_cat/nodes?format=json
# 只显示特定列
GET /_cat/nodes?h=name,ip,heap.percent,cpu,load_1m
# 按 CPU 使用率降序排序
GET /_cat/nodes?s=cpu:desc
# 显示完整节点 ID
GET /_cat/nodes?full_id=true
# 设置字节单位为 GB
GET /_cat/nodes?bytes=gb
# 显示帮助信息
GET /_cat/nodes?help
```
## 响应示例
### 文本格式(默认)
```
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.0.1.10 45 78 15 2.10 2.05 1.98 mdi * master-node
10.0.1.11 52 68 22 3.20 2.80 2.50 di - data-node-1
10.0.1.12 48 72 18 2.80 2.60 2.40 di - data-node-2
10.0.1.13 35 55 10 1.50 1.40 1.30 - - coordinating-node
```
### JSON 格式
```json
[
{
"ip": "10.0.1.10",
"heap.percent": "45",
"ram.percent": "78",
"cpu": "15",
"load_1m": "2.10",
"load_5m": "2.05",
"load_15m": "1.98",
"node.role": "mdi",
"master": "*",
"name": "master-node"
}
]
```
## 使用场景
1. **集群监控**:实时监控各节点的资源使用情况
2. **负载均衡检查**:确认负载在节点间分布是否均匀
3. **性能分析**:分析索引、搜索等操作的性能指标
4. **容量规划**:评估资源使用,规划节点扩容
5. **问题排查**:诊断节点相关的性能和稳定性问题
## 节点角色说明
| 角色 | 标识 | 描述 |
|------|------|------|
| 主节点候选 | `m` | 可以被选举为主节点 |
| 数据节点 | `d` | 存储数据和执行数据相关操作 |
| 摄取节点 | `i` | 执行摄取管道预处理数据 |
| 协调节点 | `-` | 处理客户端请求,分发搜索和聚合 |
一个节点可以同时具有多个角色,如 `mdi` 表示同时具备主节点候选、数据节点和摄取节点功能。
## 注意事项
1. 此 API 只支持 GET 方法
2. 默认只显示节点 ID 的前 4 个字符,使用 `full_id=true` 显示完整 ID
3. `local=true` 时可能返回过时信息,但响应更快
4. 大量节点时响应时间可能较长
5. 某些统计字段可能为空或显示 `-`
## 最佳实践
1. **定期监控**:定期检查各节点的资源使用情况
2. **告警设置**:对 CPU、内存、磁盘使用率设置告警阈值
3. **均衡分布**:确保数据和负载均匀分布在各节点
4. **专用角色**:大规模集群建议使用专用角色节点
5. **文件描述符**:监控文件描述符使用,避免耗尽
## 相关文档
- [查询主节点](./get-master-node.md)
- [查询集群健康](./get-cluster-health-cat-format.md)
- [获取节点信息](./get-node-info.md)
- [获取节点统计信息](./get-node-stats.md)