cat 节点 API

编辑

cat API 仅供使用命令行或 Kibana 控制台的人员使用。它们适用于应用程序使用。对于应用程序使用,请使用节点信息 API

返回有关集群节点的信息。

请求

编辑

GET /_cat/nodes

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须拥有 monitormanage 集群权限才能使用此 API。

查询参数

编辑
bytes
(可选,字节大小单位)用于显示字节值的单位。
format
(可选,字符串)HTTP accept 标头的简短版本。有效值包括 JSON、YAML 等。
full_id
(可选,布尔值)如果为 true,则返回完整节点 ID。如果为 false,则返回缩短的节点 ID。默认为 false
h

(可选,字符串)要显示的列名的逗号分隔列表。

如果您没有指定要包含哪些列,则 API 将按以下顺序返回默认列。如果您明确指定了一个或多个列,则仅返回指定的列。

有效列为

ip, i
(默认)IP 地址,例如 127.0.1.1
heap.percent, hp, heapPercent
(默认)已用总分配 Elasticsearch JVM 堆的百分比,例如 7。这仅反映在操作系统中运行的 Elasticsearch 进程,并且是其 JVM/堆/内存资源性能的最直接指标。
heap.max, hm, heapMax
总堆,例如 4gb
ram.percent, rp, ramPercent
(默认)已用操作系统总内存的百分比,例如 47。这反映了操作系统上运行的所有进程,而不仅仅是 Elasticsearch,并且不能保证与其性能相关。
file_desc.percent, fdp, fileDescriptorPercent
已用文件描述符百分比,例如 1
node.role, r, role, nodeRole

(默认)节点的角色。返回的值包括 c (冷节点)、d (数据节点)、f (冻结节点)、h (热节点)、i (摄取节点)、l (机器学习节点)、m (有资格成为主节点的节点)、r (远程集群客户端节点)、s (内容节点)、t (转换节点)、v (仅投票节点)、w (暖节点) 和 - (仅协调节点)。

例如,dim 表示有资格成为主节点的数据和摄取节点。请参阅节点

master, m
(默认)指示节点是否为选定的主节点。返回的值包括 *(选定的主节点)和 -(未选定的主节点)。
name, n
(默认)节点名称,例如 I8hydUG
id, nodeId
节点 ID,例如 k0zy
pid, p
进程 ID,例如 13061
port, po
绑定的传输端口,例如 9300
http_address, http
绑定的 http 地址,例如 127.0.0.1:9200
version, v
Elasticsearch 版本,例如 8.17.0。
build, b
Elasticsearch 构建哈希值,例如 5c03844
jdk, j
Java 版本,例如 1.8.0
disk.total, dt, diskTotal
总磁盘空间,例如 458.3gb
disk.used, du, diskUsed
已用磁盘空间,例如 259.8gb
disk.avail, d, disk, diskAvail
可用磁盘空间,例如 198.4gb
disk.used_percent, dup, diskUsedPercent
已用磁盘空间百分比,例如 47
heap.current, hc, heapCurrent
已用堆,例如 311.2mb
ram.current,rc, ramCurrent
已用总内存,例如 513.4mb
ram.max, rm, ramMax
总内存,例如 2.9gb
file_desc.current, fdc, fileDescriptorCurrent
已用文件描述符,例如 123
file_desc.max, fdm, fileDescriptorMax
最大文件描述符数,例如 1024
cpu
(默认)最近的系统 CPU 使用率(以百分比表示),例如 12
load_1m, l
(默认)最近的平均负载,例如 0.22
load_5m, l
(默认)过去五分钟的平均负载,例如 0.78
load_15m, l
(默认)过去十五分钟的平均负载,例如 1.24
uptime, u
节点正常运行时间,例如 17.3m
completion.size, cs, completionSize
补全大小,例如 0b
fielddata.memory_size, fm, fielddataMemory
已用 fielddata 缓存内存,例如 0b
fielddata.evictions, fe, fielddataEvictions
Fielddata 缓存逐出,例如 0
query_cache.memory_size, qcm, queryCacheMemory
已用查询缓存内存,例如 0b
query_cache.evictions, qce, queryCacheEvictions
查询缓存逐出,例如 0
query_cache.hit_count, qchc, queryCacheHitCount
查询缓存命中数,例如 0
query_cache.miss_count, qcmc, queryCacheMissCount
查询缓存未命中数,例如 0
request_cache.memory_size, rcm, requestCacheMemory
已用请求缓存内存,例如 0b
request_cache.evictions, rce, requestCacheEvictions
请求缓存逐出,例如 0
request_cache.hit_count, rchc, requestCacheHitCount
请求缓存命中数,例如 0
request_cache.miss_count, rcmc, requestCacheMissCount
请求缓存未命中数,例如 0
flush.total, ft, flushTotal
刷新次数,例如 1
flush.total_time, ftt, flushTotalTime
刷新所花费的时间,例如 1
get.current, gc, getCurrent
当前 get 操作数,例如 0
get.time, gti, getTime
get 操作所花费的时间,例如 14ms
get.total, gto, getTotal
get 操作数,例如 2
get.exists_time, geti, getExistsTime
成功 get 操作所花费的时间,例如 14ms
get.exists_total, geto, getExistsTotal
成功 get 操作数,例如 2
get.missing_time, gmti, getMissingTime
失败 get 操作所花费的时间,例如 0s
get.missing_total, gmto, getMissingTotal
失败 get 操作数,例如 1
indexing.delete_current, idc, indexingDeleteCurrent
当前删除操作数,例如 0
indexing.delete_time, idti, indexingDeleteTime
删除操作所花费的时间,例如 2ms
indexing.delete_total, idto, indexingDeleteTotal
删除操作数,例如 2
indexing.index_current, iic, indexingIndexCurrent
当前索引操作数,例如 0
indexing.index_time, iiti, indexingIndexTime
索引操作所花费的时间,例如 134ms
indexing.index_total, iito, indexingIndexTotal
索引操作的总数,例如 1
indexing.index_failed, iif, indexingIndexFailed
索引操作失败的次数,例如 0
merges.current, mc, mergesCurrent
当前合并操作的数量,例如 0
merges.current_docs, mcd, mergesCurrentDocs
当前正在合并的文档数量,例如 0
merges.current_size, mcs, mergesCurrentSize
当前合并的大小,例如 0b
merges.total, mt, mergesTotal
已完成的合并操作的数量,例如 0
merges.total_docs, mtd, mergesTotalDocs
已合并的文档数量,例如 0
merges.total_size, mts, mergesTotalSize
当前合并的大小,例如 0b
merges.total_time, mtt, mergesTotalTime
合并文档所花费的时间,例如 0s
refresh.total, rto, refreshTotal
刷新次数,例如 16
refresh.time, rti, refreshTime
刷新所花费的时间,例如 91ms
script.compilations, scrcc, scriptCompilations
脚本编译的总数,例如 17
script.cache_evictions, scrce, scriptCacheEvictions
从缓存中逐出的已编译脚本总数,例如 6
search.fetch_current, sfc, searchFetchCurrent
当前的获取阶段操作,例如 0
search.fetch_time, sfti, searchFetchTime
获取阶段所花费的时间,例如 37ms
search.fetch_total, sfto, searchFetchTotal
获取操作的数量,例如 7
search.open_contexts, so, searchOpenContexts
打开的搜索上下文,例如 0
search.query_current, sqc, searchQueryCurrent
当前查询阶段的操作,例如 0
search.query_time, sqti, searchQueryTime
查询阶段所花费的时间,例如 43ms
search.query_total, sqto, searchQueryTotal
查询操作的数量,例如 9
search.scroll_current, scc, searchScrollCurrent
打开的滚动上下文,例如 2
search.scroll_time, scti, searchScrollTime
滚动上下文保持打开的时间,例如 2m
search.scroll_total, scto, searchScrollTotal
已完成的滚动上下文,例如 1
segments.count, sc, segmentsCount
段的数量,例如 4
segments.memory, sm, segmentsMemory
段使用的内存,例如 1.4kb
segments.index_writer_memory, siwm, segmentsIndexWriterMemory
索引写入器使用的内存,例如 18mb
segments.version_map_memory, svmm, segmentsVersionMapMemory
版本映射使用的内存,例如 1.0kb
segments.fixed_bitset_memory, sfbm, fixedBitsetMemory
用于嵌套对象字段类型和join字段中引用的类型的类型过滤器的固定位集使用的内存,例如 1.0kb
suggest.current, suc, suggestCurrent
当前建议操作的数量,例如 0
suggest.time, suti, suggestTime
在建议中花费的时间,例如 0
suggest.total, suto, suggestTotal
建议操作的数量,例如 0
shard_stats.total_count, sstc, shards, shardStatsTotalCount
分配的分片数量。
mappings.total_count, mtc, mappingsTotalCount
映射的数量,包括运行时对象字段。
mappings.total_estimated_overhead_in_bytes, mteo, mappingsTotalEstimatedOverheadInBytes
此节点上映射的估计堆开销(以字节为单位),每个映射字段允许 1KiB 的堆。
help
(可选,布尔值)如果为 true,则响应包含帮助信息。默认为 false
master_timeout
(可选,时间单位)等待主节点的时间。如果主节点在超时过期之前不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 表示请求永远不应超时。
s
(可选,字符串)用逗号分隔的列名称或列别名列表,用于对响应进行排序。
time
(可选,时间单位)用于显示时间值的单位。
v
(可选,布尔值)如果为 true,则响应包括列标题。默认为 false
include_unloaded_segments
(可选,布尔值)如果为 true,则响应包括来自加载到内存中的段的信息。默认为 false

示例

编辑

带有默认列的示例

编辑
resp = client.cat.nodes(
    v=True,
)
print(resp)
response = client.cat.nodes(
  v: true
)
puts response
const response = await client.cat.nodes({
  v: "true",
});
console.log(response);
GET /_cat/nodes?v=true

API 返回以下响应

ip        heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1           65          99  42    3.07                  dim       *      mJw06l1

ipheap.percentram.percentcpuload_* 列提供了每个节点的 IP 地址和性能信息。

node.rolemastername 列提供了对监控整个集群(尤其是大型集群)有用的信息。

带有显式列的示例

编辑

以下 API 请求返回 idipportv(版本)和 m(主节点)列。

resp = client.cat.nodes(
    v=True,
    h="id,ip,port,v,m",
)
print(resp)
response = client.cat.nodes(
  v: true,
  h: 'id,ip,port,v,m'
)
puts response
const response = await client.cat.nodes({
  v: "true",
  h: "id,ip,port,v,m",
});
console.log(response);
GET /_cat/nodes?v=true&h=id,ip,port,v,m

API 返回以下响应

id   ip        port  v         m
veJR 127.0.0.1 59938 8.17.0 *