cat 节点 API编辑

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

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

请求编辑

GET /_cat/nodes

先决条件编辑

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

查询参数编辑

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

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

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

有效列为

ip, i
(默认) IP 地址,例如 127.0.1.1
heap.percent, hp, heapPercent
(默认) 最大配置堆,例如 7
heap.max, hm, heapMax
(默认) 总堆,例如 4gb
ram.percent, rp, ramPercent
(默认) 已使用的总内存百分比,例如 47
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.14.2。
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
dense_vector.value_count, dvc, denseVectorCount
已索引的密集向量的数量。
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
当前获取操作的数量,例如 0
get.time, gti, getTime
花费在获取上的时间,例如 14ms
get.total, gto, getTotal
获取操作的数量,例如 2
get.exists_time, geti, getExistsTime
花费在成功获取上的时间,例如 14ms
get.exists_total, geto, getExistsTotal
成功获取操作的数量,例如 2
get.missing_time, gmti, getMissingTime
花费在失败获取上的时间,例如 0s
get.missing_total, gmto, getMissingTotal
失败获取操作的数量,例如 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 的堆。
帮助
(可选,布尔值)如果为 true,则响应包含帮助信息。默认为 false
master_timeout
(可选,时间单位)等待主节点的时间段。如果在超时时间到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1,表示请求永远不会超时。
s
(可选,字符串)用于对响应进行排序的列名或列别名的逗号分隔列表。
时间
(可选,时间单位)用于显示时间值的单位。
v
(可选,布尔值)如果为 true,则响应包含列标题。默认为 false
include_unloaded_segments
(可选,布尔值)如果为 true,则响应包含来自 加载到内存中的段的信息。默认为 false

示例edit

使用默认列的示例edit

response = client.cat.nodes(
  v: true
)
puts 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 列提供了用于监控整个集群(尤其是大型集群)的有用信息。

使用显式列的示例edit

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

response = client.cat.nodes(
  v: true,
  h: 'id,ip,port,v,m'
)
puts 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.14.2 *