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.0.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.16.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
已使用的字段数据缓存内存,例如0b
fielddata.evictions, fe, fielddataEvictions
字段数据缓存逐出次数,例如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_timeiitiindexingIndexTime
索引花费的时间,例如 134ms
indexing.index_totaliitoindexingIndexTotal
索引操作的次数,例如 1
indexing.index_failediifindexingIndexFailed
索引操作失败的次数,例如 0
merges.currentmcmergesCurrent
当前合并操作的次数,例如 0
merges.current_docsmcdmergesCurrentDocs
当前正在合并的文档数量,例如 0
merges.current_sizemcsmergesCurrentSize
当前合并的大小,例如 0b
merges.totalmtmergesTotal
已完成的合并操作次数,例如 0
merges.total_docsmtdmergesTotalDocs
已合并的文档数量,例如 0
merges.total_sizemtsmergesTotalSize
当前合并的大小,例如 0b
merges.total_timemttmergesTotalTime
合并文档花费的时间,例如 0s
refresh.totalrtorefreshTotal
刷新的次数,例如 16
refresh.timertirefreshTime
刷新花费的时间,例如 91ms
script.compilationsscrccscriptCompilations
脚本编译的总次数,例如 17
script.cache_evictionsscrcescriptCacheEvictions
从缓存中驱逐的已编译脚本总数,例如 6
search.fetch_currentsfcsearchFetchCurrent
当前获取阶段的操作次数,例如 0
search.fetch_timesftisearchFetchTime
获取阶段花费的时间,例如 37ms
search.fetch_totalsftosearchFetchTotal
获取操作的次数,例如 7
search.open_contextssosearchOpenContexts
打开的搜索上下文数量,例如 0
search.query_currentsqcsearchQueryCurrent
当前查询阶段的操作次数,例如 0
search.query_timesqtisearchQueryTime
查询阶段花费的时间,例如 43ms
search.query_totalsqtosearchQueryTotal
查询操作的次数,例如 9
search.scroll_currentsccsearchScrollCurrent
打开的滚动上下文数量,例如 2
search.scroll_timesctisearchScrollTime
滚动上下文保持打开的时间,例如 2m
search.scroll_totalsctosearchScrollTotal
已完成的滚动上下文数量,例如 1
segments.countscsegmentsCount
段的数量,例如 4
segments.memorysmsegmentsMemory
段使用的内存,例如 1.4kb
segments.index_writer_memorysiwmsegmentsIndexWriterMemory
索引写入器使用的内存,例如 18mb
segments.version_map_memorysvmmsegmentsVersionMapMemory
版本映射使用的内存,例如 1.0kb
segments.fixed_bitset_memorysfbmfixedBitsetMemory
用于嵌套对象字段类型和类型过滤器(针对在 join 字段中引用的类型)的固定位集使用的内存,例如 1.0kb
suggest.currentsucsuggestCurrent
当前建议操作的数量,例如 0
suggest.timesutisuggestTime
建议操作花费的时间,例如 0
suggest.totalsutosuggestTotal
建议操作的总数,例如 0
shard_stats.total_countsstcshardsshardStatsTotalCount
分配的分片的数量。
mappings.total_countmtcmappingsTotalCount
映射的数量,包括 运行时对象 字段。
mappings.total_estimated_overhead_in_bytesmteomappingsTotalEstimatedOverheadInBytes
此节点上映射的估计堆开销(以字节为单位),每个映射字段允许 1KiB 的堆。
帮助
(可选,布尔值)如果 true,则响应包含帮助信息。默认为 false
master_timeout
(可选,时间单位)等待主节点的时长。如果在超时时间到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 以指示请求永远不会超时。
s
(可选,字符串)用于对响应进行排序的列名称或列别名的逗号分隔列表。
时间
(可选,时间单位)用于显示时间值的单位。
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.16.0 *