此 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 | 索引写入器内存使用量 |
请求示例 #
# 查询所有节点的默认信息
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 格式 #
[
{
"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"
}
]
使用场景 #
- 集群监控:实时监控各节点的资源使用情况
- 负载均衡检查:确认负载在节点间分布是否均匀
- 性能分析:分析索引、搜索等操作的性能指标
- 容量规划:评估资源使用,规划节点扩容
- 问题排查:诊断节点相关的性能和稳定性问题
节点角色说明 #
| 角色 | 标识 | 描述 |
|---|---|---|
| 主节点候选 | m | 可以被选举为主节点 |
| 数据节点 | d | 存储数据和执行数据相关操作 |
| 摄取节点 | i | 执行摄取管道预处理数据 |
| 协调节点 | - | 处理客户端请求,分发搜索和聚合 |
一个节点可以同时具有多个角色,如 mdi 表示同时具备主节点候选、数据节点和摄取节点功能。
注意事项 #
- 此 API 只支持 GET 方法
- 默认只显示节点 ID 的前 4 个字符,使用
full_id=true显示完整 ID local=true时可能返回过时信息,但响应更快- 大量节点时响应时间可能较长
- 某些统计字段可能为空或显示
-
最佳实践 #
- 定期监控:定期检查各节点的资源使用情况
- 告警设置:对 CPU、内存、磁盘使用率设置告警阈值
- 均衡分布:确保数据和负载均匀分布在各节点
- 专用角色:大规模集群建议使用专用角色节点
- 文件描述符:监控文件描述符使用,避免耗尽





