[TOC]
Cat Apis
集群的索引信息 indices
1.cluster health(集群健康)API 可以获取一个集群健康的简单状态
curl -XGET 'localhost:9200/_cat/indices?pretty'
| key | 描述 |
|---|---|
| health | green 则代表健康没问题,如果是 yellow 或者 red 则是集群有问题 |
| index | 索引名称 |
| pri | 主分片数量 |
| docs.count | 索引文档的总数 |
| docs.deleted | 索引文档的删除总数 |
| store.size | 主分片和副本分片占用的存储大小 |
| pri.store.size | 主分片占用的存储大小 |
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .ds-filebeat-8.0.1-2023.02.09-000024 wQ6237ZPS3uhriIP9exr7Q 1 0 50960 0 10mb 10mb
green open .ds-metricbeat-8.0.1-2023.02.14-000029 qLoFPguFRnSFOhunT_efSg 1 0 153616 0 76.3mb 76.3mb
green open .ds-metricbeat-8.0.1-2023.02.13-000028 uuhrIVjvSA6osh3FhHgRiw 1 0 153512 0 78.9mb 78.9mb
green open .ds-filebeat-8.0.1-2023.02.08-000022 M2lrl9tUR0ycVBWqKC8sKA 1 0 49852 0 9.9mb 9.9mb
yellow open .ds-.monitoring-es-8-mb-2023.02.09-000002 mhDHO1RoRjeLk31ANoqPVw 1 1 814114 0 366.5mb 366.5mb
green open .ds-metricbeat-8.0.1-2023.02.10-000025 Vy0Lp_aiSo-oZX441XwWtw 1 0 153305 0 83.7mb 83.7mb
green open .ds-metricbeat-8.0.1-2023.02.12-000027 v7wV2JlcRRC8XF0ai05HzQ 1 0 153495 0 78.4mb 78.4mb
yellow open .ds-.monitoring-es-8-mb-2023.02.08-000001 _9Knmmh4SC60gE3InaQeTQ 1 1 731657 0 328.7mb 328.7mb
green open .ds-metricbeat-8.0.1-2023.02.11-000026 rrp51F8fTgub6T8d0V7YBg 1 0 153351 0 82.5mb 82.5mb
集群健康状态 health
1.cluster health(集群健康)API 可以获取一个集群健康的简单状态
curl -XGET 'localhost:9200/_cat/health?pretty'
{
cluster_name: "my-es",
status: "yellow", #状态为 green 则代表健康没问题,如果是 yellow 或者 red 则是集群有问题
timed_out: false,#是否设置超时时间
number_of_nodes: 1,#集群的节点数
number_of_data_nodes: 1,#数据节点数
active_primary_shards: 5,#集群中所有活跃的主分片数
active_shards: 5,#集群中分片数量
relocating_shards: 0,#数据转移分片数
initializing_shards: 0,#正在初始化的分片
unassigned_shards: 5,#未分配的分片数
delayed_unassigned_shards: 0,
number_of_pending_tasks: 0,
number_of_in_flight_fetch: 0,
task_max_waiting_in_queue_millis: 0,
active_shards_percent_as_number: 50 #集群分片的可用性百分比,如果为0则表示不可用
}
2.该API也可以针对一个或多个索引执行请求以获得指定索引的健康状态 :
curl -XGET 'localhost:9200/_cluster/health/index?level=shards&pretty'
集群分片的状态 shards
1 shards API 可以获取一个集群分片的状态
curl -XGET 'localhost:9200/_cat/shards?v'
| key | 描述 |
|---|---|
| index | 索引的名称 |
| shard | 分片的名称id |
| prirep | 分片类型。返回值为primary或replica |
| state | 分片的状态:INITIALIZING:分片正在从对等分片或网关中恢复。RELOCATING: 碎片正在搬迁。STARTED: 分片已经开始。UNASSIGNED:分片未分配给任何节点。 |
| docs | 分片中的文档数 |
| store | 分片使用的磁盘空间 |
| ip | 节点的 IP |
| node | 节点名称 |
index shard prirep state docs store ip node
.kibana-event-log-8.0.1-000008 0 p STARTED 4 18.7kb 10.42.241.6 ll-es-0
.ds-.logs-deprecation.elasticsearch-default-2022.09.21-000015 0 p STARTED 0 225b 10.42.241.6 ll-es-0
.ds-.logs-deprecation.elasticsearch-default-2022.06.15-000008 0 p STARTED 0 225b 10.42.241.6 ll-es-0
.ds-filebeat-8.0.1-2023.02.13-000028 0 p STARTED 53683 10.5mb 10.42.241.6 ll-es-0
.ds-filebeat-8.0.1-2023.02.08-000022 0 p STARTED 49852 9.9mb 10.42.241.6 ll-es-0
集群节点信息 nodes
curl -XGET 'localhost:9200/_cat/nodes?v'
| key | 描述 |
|---|---|
| ip | node节点的IP |
| heap.percent | 堆内存占用百分比 |
| ram.percent | 内存占用百分比 |
| cpu | CPU占用百分比 |
| load_1m | 1分钟的系统负载 |
| load_5m | 5分钟的系统负载 |
| load_15m | 15分钟的系统负载 |
| node.role | node节点的角色 |
| master | 是否是master节点 |
| name | 节点名称 |
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.0.12.9 12 97 1 0.04 0.04 0.05 dilm * node-1
所有任务的进度 tasks
curl -XGET 'localhost:9200/_cat/tasks?v'
| key | 描述 |
|---|---|
| action | 任务动作 |
| task_id | 任务唯一id |
| parent_task_id | 父级任务id |
| type | 任务动作 |
| start_time | 任务开始时间 |
| timestamp | 开始时间时间戳格式 |
| running_time | 运行时间 |
| ip | ip |
action task_id parent_task_id type start_time timestamp running_time ip node
health-node[c] eoKIZAaXQA-8YideyGnFpA:39 cluster:3 persistent 1671618088600 10:21:28 62.8d 10.42.241.6 ll-es-0
geoip-downloader[c] eoKIZAaXQA-8YideyGnFpA:42 cluster:4 persistent 1671618088671 10:21:28 62.8d 10.42.241.6 ll-es-0
显示正在等待的任务 pending_tasks
排队的任务
curl -XGET 'localhost:9200/_cat/pending_tasks?v'
| key | 描述 |
|---|---|
| insertOrder | 任务插入顺序 |
| timeInQueue | 任务排队了多长时间 |
| priority | 任务优先级 |
| source | 任务源 |
所有cat命令列表
| 描述 | 对应接口 | |
|---|---|---|
| 空间占用资源分配 | /_cat/allocation | |
| 索引的分片情况 | /_cat/shards | |
| 指定索引的分片明细 | /_cat/shards/{index} | |
| master节点的信息 | /_cat/master | |
| 集群节点信息 | /_cat/nodes | |
| 查看集群所有任务 | /_cat/tasks | |
| 集群的索引信息,包含分片计数、文档数量、删除文档数、状态、存储等 | /_cat/indices | |
| 指定索引的分片信息 | /_cat/indices/{index} | |
| 索引 Lucene segments 信息 | /_cat/segments | |
| 指定索引 Lucene segments 信息 | /_cat/segments/{index} | |
| 所有索引的文档个数 | /_cat/count | |
| 指定索引索引的文档个数 | /_cat/count/{index} | |
| 索引分片的恢复视图 | /_cat/recovery | |
| 指定索引分片的恢复视图 | /_cat/recovery/{index} | |
| 集群的运行状况 | /_cat/health | |
| 被挂起的任务 | /_cat/pending_tasks | |
| 集群下的所有别名信息 | /_cat/aliases | |
| 集群下的指定别名信息 | /_cat/aliases/{alias} | |
| 集群中每个节点的线程池信息 | /_cat/thread_pool | |
| 集群中指定节点的线程池信息 | /_cat/thread_pool/{thread_pools} | |
| 查看每个节点正在运行的插件 | /_cat/plugins | |
| 节点字段分配情况 | /_cat/fielddata | |
| 指定字段节点分配情况 | /_cat/fielddata/{fields} | |
| 自定义节点属性 | /_cat/nodeattrs | |
| 集群的快照仓库 | /_cat/repositories | |
| ES的快照仓库 | /_cat/snapshots/{repository} | |
| 集群的索引模板 | /_cat/templates |
Cluster Apis 相关接口
| 重要度 | API | 说明 | 请求 (curl) |
|---|---|---|---|
| ⭐⭐⭐⭐⭐ | Cluster Health API | 检查集群的整体健康状态,包括节点、分片和索引的健康状态。 | curl -X GET 'localhost:9200/_cluster/health?pretty' |
| ⭐⭐⭐⭐ | Cluster Stats API | 获取集群的统计数据,如文档数、分片信息、节点状态、内存使用等性能指标。 | curl -X GET 'localhost:9200/_cluster/stats?pretty' |
| ⭐⭐⭐⭐ | Cluster State API | 查看集群的当前状态信息,包括节点、索引元数据、分片分配等。 | curl -X GET 'localhost:9200/_cluster/state?pretty' |
| ⭐⭐⭐ | Nodes Stats API | 获取每个节点的统计信息,如内存使用、CPU 负载、磁盘 I/O,便于监控性能。 | curl -X GET 'localhost:9200/_nodes/stats?pretty' |
| ⭐⭐⭐ | Nodes Info API | 获取每个节点的详细信息,包括角色、JVM 版本、插件等,用于查看集群拓扑和节点配置信息。 | curl -X GET 'localhost:9200/_nodes?pretty' |
| ⭐⭐ | Cluster Settings API | 查看和更新集群级别的设置,包括持久性和瞬时性配置。 | curl -X GET 'localhost:9200/_cluster/settings?pretty' curl -X PUT 'localhost:9200/_cluster/settings' -H 'Content-Type: application/json' -d '{ "persistent": { "setting_key": "value" }}' |
| ⭐⭐ | Cluster Reroute API | 手动控制分片的分配,例如重新分配未分配的分片或将分片从一个节点迁移到另一个节点。 | curl -X POST 'localhost:9200/_cluster/reroute' -H 'Content-Type: application/json' -d '{ "commands": [ { "move": { "index": "index_name", "shard": 0, "from_node": "node-1", "to_node": "node-2" }}]}' |
| ⭐⭐ | Pending Tasks API | 获取当前等待执行的集群任务列表,帮助查看配置变更和分片迁移的待处理任务。 | curl -X GET 'localhost:9200/_cluster/pending_tasks?pretty' |
| ⭐ | Cluster Allocation Explain API | 分析分片分配状况,查找未分配分片的原因,特别在分片分配出现问题时使用。 | curl -X POST 'localhost:9200/_cluster/allocation/explain' -H 'Content-Type: application/json' -d '{ "index": "index_name", "shard": 0, "primary": true }' |
| ⭐ | Remote Cluster API | 设置和查看远程集群连接信息,支持跨集群搜索和数据访问。 | curl -X GET 'localhost:9200/_remote/info?pretty' curl -X PUT 'localhost:9200/_cluster/settings' -H 'Content-Type: application/json' -d '{ "persistent": { "cluster.remote.remote_cluster.seeds": ["remote_host:9300"] }}' |
https://elkguide.elasticsearch.cn/elasticsearch/monitor/api/cat-cmd.html
引用资料
https://www.elastic.co/guide/en/elasticsearch/reference/7.7/cat.html
https://doc.codingdict.com/elasticsearch/226/
https://rstyro.github.io/blog/2020/09/24/Elasticsearch7-cat-API%E8%AF%A6%E8%A7%A3/