描述Elasticsearch 中常用的 cat命令有哪些?

参考回答

在 Elasticsearch 中,CAT API 提供了一组非常实用的命令,帮助用户快速查看和管理集群、节点、索引、分片等信息。CAT 命令返回的结果通常是表格格式,方便人类阅读。以下是 Elasticsearch 中常用的 CAT 命令及其功能:

1. _cat/health

  • 功能:显示集群的健康状态。它返回集群的基本健康信息,包括集群的状态、节点数量、分片分配情况等。
  • 常用选项
    • v:增加列名。
    • h:显示帮助信息。
  • 示例

    “`bash
    GET /_cat/health?v
    “`

  • 返回

    “`
    cluster_name status node.total node.data shards prirep rebalance.pending
    my-cluster green 3 3 5 p 0
    “`

  • 解释
    • status: 集群健康状态(green/yellow/red)。
    • node.total: 集群中的总节点数。
    • node.data: 数据节点数。
    • shards: 总分片数。
    • prirep: 分片类型,p 是主分片,r 是副本分片。

2. _cat/nodes

  • 功能:显示集群中每个节点的信息,包括 CPU 使用、内存使用、节点角色、负载等。
  • 常用选项
    • v:显示列名。
    • h:显示帮助信息。
  • 示例

    “`bash
    GET /_cat/nodes?v
    “`

  • 返回

    “`
    ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
    192.168.0.1 50 75 25 0.12 0.14 0.08 mdi * node-1
    192.168.0.2 65 80 50 0.25 0.22 0.18 mdi – node-2
    “`

  • 解释
    • heap.percent: 堆内存使用百分比。
    • ram.percent: 内存使用百分比。
    • cpu: CPU 使用率。
    • load_1m, load_5m, load_15m: 系统负载的 1 分钟、5 分钟、15 分钟平均值。
    • node.role: 节点角色(m = 主节点,d = 数据节点,i = 协调节点)。
    • master: 如果是主节点,显示 *
    • name: 节点名称。

3. _cat/indices

  • 功能:列出所有索引及其相关信息,如状态、文档数量、分片数量、存储大小等。
  • 常用选项
    • v:显示列名。
    • h:显示帮助信息。
  • 示例

    “`bash
    GET /_cat/indices?v
    “`

  • 返回

    “`
    health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
    green open my_index xxxxxxx 1 1 1000 0 5mb 2mb
    yellow open logs yyyyyyy 5 1 50000 500 100mb 50mb
    “`

  • 解释
    • health: 索引健康状态(green/yellow/red)。
    • status: 索引状态(open/closed)。
    • index: 索引名称。
    • docs.count: 文档数量。
    • store.size: 索引存储大小。
    • pri.store.size: 主分片存储大小。

4. _cat/shards

  • 功能:显示集群中所有分片的状态、主副本情况等。用于查看分片的分配和健康状况。
  • 常用选项
    • v:显示列名。
    • h:显示帮助信息。
  • 示例

    “`bash
    GET /_cat/shards?v
    “`

  • 返回

    “`
    index shard prirep state docs store ip node
    my_index 0 p STARTED 1000 1.5mb 192.168.0.1 node-1
    my_index 0 r STARTED 1000 1.5mb 192.168.0.2 node-2
    logs 0 p STARTED 2000 3.0mb 192.168.0.1 node-1
    logs 0 r STARTED 2000 3.0mb 192.168.0.2 node-2
    “`

  • 解释
    • prirep: 主分片 (p) 或副本分片 (r)。
    • state: 分片的状态(如 STARTED)。
    • docs: 分片中的文档数量。
    • store: 分片存储的大小。
    • ip: 分片所在的节点的 IP 地址。
    • node: 分片所在的节点名称。

5. _cat/count

  • 功能:获取集群中所有文档的总数或特定索引的文档数量。
  • 示例

    “`bash
    GET /_cat/count?v
    “`

  • 返回

    “`
    count
    100000
    “`

  • 解释:返回的是集群中所有文档的总数。你也可以通过指定索引来获取特定索引的文档总数。

6. _cat/aliases

  • 功能:列出索引的别名信息,显示所有别名及其对应的索引。
  • 常用选项
    • v:显示列名。
    • h:显示帮助信息。
  • 示例

    “`bash
    GET /_cat/aliases?v
    “`

  • 返回

    “`
    alias index filter routing.index routing.search
    alias1 my_index * my_index my_index
    alias2 logs * logs logs
    “`

7. _cat/fielddata

  • 功能:显示有关字段数据缓存的信息,帮助用户查看内存中字段数据的使用情况。
  • 示例

    “`bash
    GET /_cat/fielddata?v
    “`

  • 返回

    “`
    fielddata.memory_size memory_size_in_bytes
    my_field 3.0mb
    “`

8. _cat/templates

  • 功能:列出集群中的所有索引模板,显示模板的名称、创建时间和索引匹配规则等信息。
  • 示例

    “`bash
    GET /_cat/templates?v
    “`

  • 返回

    “`
    name index_patterns order
    template1 ["logs-*"] 1
    template2 ["my_index-*"] 2
    “`

9. _cat/segments

  • 功能:显示索引的段信息,帮助用户查看索引的 Lucene 段结构。
  • 示例

    “`bash
    GET /_cat/segments?v
    “`

  • 返回

    “`
    index shard segment count size memory
    my_index 0 _0 10 100kb 500kb
    “`

总结

CAT API 提供了一组简洁易读的命令,帮助用户快速查看 Elasticsearch 集群的各种信息。常见的 CAT 命令包括:
_cat/health:查看集群健康状态。
_cat/nodes:查看节点信息。
_cat/indices:查看索引信息。
_cat/shards:查看分片信息。
_cat/count:查看文档总数。
_cat/aliases:查看索引别名。
_cat/fielddata:查看字段数据的缓存情况。
_cat/templates:查看索引模板。
_cat/segments:查看索引的段信息。

通过这些命令,用户可以高效地监控和管理 Elasticsearch 集群,及时了解集群的健康状况、资源使用情况以及索引的状态。

发表评论

后才能评论