描述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 集群,及时了解集群的健康状况、资源使用情况以及索引的状态。