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

节点的分片使用的磁盘空间。不包括 事务日志或未分配的分片的磁盘空间。

此指标会重复计算硬链接文件的磁盘空间,例如在 收缩拆分克隆索引时创建的文件。

disk.used

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

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

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

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