cat 分配 API编辑

cat API 仅供用户在命令行或 Kibana 控制台中使用。它们*不*适用于应用程序。

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

请求编辑

GET /_cat/allocation/<node_id>

GET /_cat/allocation

先决条件编辑

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

路径参数编辑

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

查询参数编辑

bytes
(可选,字节大小单位)用于显示字节值的单位。
format
(可选,字符串)HTTP 接受标头 的简短版本。有效值包括 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
节点角色

示例编辑

response = client.cat.allocation(
  v: true
)
puts 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

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