cat 分配 API

编辑

cat API 仅供使用命令行或 Kibana 控制台的人员使用。它们适用于应用程序。

提供每个数据节点分配的分片数量及其磁盘空间的快照。

请求

编辑

GET /_cat/allocation/<node_id>

GET /_cat/allocation

前提条件

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

路径参数

编辑
<node_id>
(可选,字符串) 用于限制返回信息的节点 ID 或名称的逗号分隔列表。

查询参数

编辑
bytes
(可选,字节大小单位) 用于显示字节值的单位。
format
(可选,字符串)HTTP accept 头的简短版本。有效值包括 JSON、YAML 等。
local
(可选,布尔值) 如果为true,则请求仅从本地节点检索信息。默认为false,这意味着信息是从主节点检索的。
master_timeout
(可选,时间单位) 等待主节点的期限。如果在超时过期前主节点不可用,则请求失败并返回错误。默认为30s。也可以设置为-1表示请求永远不会超时。
h
(可选,字符串) 要显示的列名称的逗号分隔列表。
help
(可选,布尔值) 如果为true,则响应包含帮助信息。默认为false
s
(可选,字符串) 用于对响应进行排序的列名称或列别名的逗号分隔列表。
v
(可选,布尔值) 如果为true,则响应包含列标题。默认为false

响应体

编辑
shards
分配给节点的主分片和副本分片的数量。
shards.undesired
计划移动到集群其他位置的分片数量,或-1(如果使用了除所需平衡分配器以外的其他分配器)
write_load.forecast
索引写入负载预测的总和
disk.indices.forecast
分片大小预测的总和
disk.indices

节点分片使用的磁盘空间。不包括translog或未分配分片的磁盘空间。

此指标对硬链接文件(例如在缩减拆分克隆索引时创建的文件)的磁盘空间进行了双重计算。

disk.used

使用的总磁盘空间。Elasticsearch 从节点的操作系统 (OS) 检索此指标。此指标包括以下内容的磁盘空间:

  • Elasticsearch,包括translog和未分配分片
  • 节点的操作系统
  • 节点上的任何其他应用程序或文件

disk.indices不同,此指标不会对硬链接文件的磁盘空间进行双重计算。

disk.avail
Elasticsearch 可用的空闲磁盘空间。Elasticsearch 从节点的操作系统检索此指标。基于磁盘的分片分配使用此指标根据可用磁盘空间将分片分配给节点。
disk.total
节点的总磁盘空间,包括已用空间和可用空间。
disk.percent
使用的总磁盘空间百分比。计算方法为disk.used / disk.total
host
节点的网络主机。使用network.host设置。
ip
节点的 IP 地址和端口。
node
节点的名称。使用node.name设置。
node.role, r, role, nodeRole
节点角色

示例

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

API 返回以下响应

shards shards.undesired write_load.forecast disk.indices.forecast disk.indices disk.used disk.avail disk.total disk.percent host      ip        node    node.role
     1                0                 0.0                  260b         260b    47.3gb     43.4gb    100.7gb           46 127.0.0.1 127.0.0.1 CSUXak2 himrst

此响应显示单个分片分配给一个可用的节点。