索引分片存储 API

返回在一个或多个索引中关于副本分片的存储信息。对于数据流,API 返回流的备份索引的存储信息。

  1. GET /my-index-000001/_shard_stores

请求

GET /<target>/_shard_stores

GET /_shard_stores

前置条件

  • 如果 Elasticsearch 安全特性启用,你使用此 API 必须有 monitormanage 索引权限

描述

索引分片存储 API 返回以下信息:

  • 每个副本分片存在哪个节点
  • 每个副本分片分配的 ID
  • 每个副本分片唯一 ID
  • 打开分片索引时遇到的任何错误或早期故障导致的任何错误

默认情况,API 只返回未分配或有一到多个未分配副本分片的主分片存储信息。

路径参数

  • <target>

    (可选,字符串)限制请求的逗号分隔的数据流、索引和别名的列表。支持通配符()。要以所有数据流和索引为目标,忽略此参数或使用 `_all`。

查询参数

  • allow_no_indices

    (可选,布尔值)如果为 false,任何通配符、索引别名_all 值只针对丢失或关闭的索引,请求将返回一个错误。即使请求以其他开启索引为目标,此行为也适用。例如,如果一个索引以 foo 开头,而没有索引以 bar 开头,则以 foo*,bar* 为目标的请求将返回错误。

  • expand_wildcards

    (可选,字符串)通配符表达式可以匹配的索引类型。如果请求可以数据流为目标,则此参数确定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,如 open,hidden。有效的值有:

    1. all 匹配任何数据流或索引,包括 hidden(隐藏的)。
    2. open 匹配 open(开启)、非隐藏的索引。也匹配任何非隐藏的数据流。
    3. closed 匹配 closed(关闭)、非隐藏的索引。也匹配任何非隐藏的数据流。数据流不能关闭。
    4. hidden 匹配隐藏数据流和隐藏索引。必须与 openclosed 或一起使用。
    5. none 不接受通配符表达式。

    默认为 open

  • ignore_unavailable

(可选,布尔值)如果为 true,丢失的或关闭的索引不包含在响应中。默认为 false

  • status

    (可选,字符串)用于限制请求的,逗号分隔的分片健康状态。

    有效值包括:

    • green

      主分片和所有副本分片都已分配。

    • yellow

      一个或多个副本分片未分配。

    • red

      主分片未分配。

    • all

      返回所有分片,忽略健康状态。

    默认为 yellow,red

示例

获取特定数据流或索引的分片存储信息

  1. GET /test/_shard_stores

获取多个数据流和索引的分片存储信息

  1. GET /test1,test2/_shard_stores

获取所有数据流和索引的分片存储信息

  1. GET /_shard_stores

基于集群运行状况获取分片存储信息

你可以使用查询参数 status 来限制基于分片健康的返回信息。

以下的请求只返回已分配的主分片和副本分片信息。

  1. GET /_shard_stores?status=green

API 返回以下响应:

  1. {
  2. "indices": {
  3. "my-index-00001": {
  4. "shards": {
  5. "0": {
  6. "stores": [
  7. {
  8. "sPa3OgxLSYGvQ4oPs-Tajw": {
  9. "name": "node_t0",
  10. "ephemeral_id": "9NlXRFGCT1m8tkvYCMK-8A",
  11. "transport_address": "local[1]",
  12. "attributes": {},
  13. "roles": [...]
  14. },
  15. "allocation_id": "2iNySv_OQVePRX-yaRH_lQ",
  16. "allocation": "primary|replica|unused",
  17. "store_exception": ...
  18. }
  19. ]
  20. }
  21. }
  22. }
  23. }
  24. }
  1. "0": { : 密钥是存储信息的对应分片 id
  2. "stores": [:分片所有副本的存储信息列表
  3. "sPa3OgxLSYGvQ4oPs-Tajw": {: 托管存储副本的节点信息,密钥是唯一的节点 id
  4. "allocation_id": "2iNySv_OQVePRX-yaRH_lQ",:存储副本的分配 id
  5. "allocation": "primary|replica|unused": 存储副本的状态,无论它是否用作主副本、副本还是根本未使用
  6. "store_exception": ...:打开分片索引或早期引擎故障时遇到的任何异常

原文链接