ElasticSearch最常用的API接口
Elasticsearch (ES) 提供了多个 API 接口来查询集群、节点、索引等不同层面的状态。
以下是几个最常用且核心的状态查询接口:
1. 集群健康状态 (Cluster Health)
这是最常用的接口,用于快速查看集群整体是否健康(绿色、黄色、红色)。
- 接口:
GET /_cluster/health - 用途: 查看集群状态 status (
green,yellow,red)、活跃分片数、未分配分片数等。 - 示例:
GET /_cluster/health?pretty green: 所有主分片和副本分片都正常。yellow: 所有主分片正常,但部分副本分片不可用(通常发生在单节点集群,因为副本无法分配到同一节点)。red: 部分主分片不可用,数据不完整。
![image]()
2. 集群详细状态 (Cluster State)
- 接口:
GET /_cluster/state - 用途: 获取集群的完整元数据状态,包括节点列表、路由表、元数据块等。这个返回的数据量通常非常大,主要用于调试或内部分析。
- 示例:
GET /_cluster/state?metric=_all&pretty# 可以指定只查部分信息,例如只查节点 GET /_cluster/state?metric=nodes&pretty
3. 集群统计信息 (Cluster Stats)
- 接口:
GET /_cluster/stats - 用途: 获取集群级别的统计信息,如文档总数、存储大小、JVM 使用情况、操作系统信息等。适合用于监控仪表盘。
- 示例:
GET /_cluster/stats?pretty
4. 节点状态 (Node Stats)
- 接口:
GET /_nodes/stats - 用途: 查看各个节点的详细统计信息,包括 CPU、内存、磁盘 I/O、网络流量、线程池状态等。
- 示例:
# 查看所有节点的所有统计 GET /_nodes/stats?pretty # 只查看 JVM 和 OS 信息 GET /_nodes/stats/jvm,os?pretty
5. 节点信息 (Node Info)
- 接口:
GET /_nodes - 用途: 查看节点的配置信息(而不是实时统计),如安装的插件、角色(master/data)、版本、IP 地址等。
- 示例:
GET /_nodes?pretty
6. 索引状态 (Index Stats/Health)
- 接口:
GET /<index_name>/_stats或GET /<index_name>/_health - 用途: 查看特定索引或所有索引的状态和统计。
- 示例:
# 查看所有索引的健康状况 GET /_cat/indices?v # 查看特定索引的统计 GET /my-index/_stats?pretty
7. Cat API (人类可读的简洁视图)
如果你需要在命令行快速查看状态,
_cat API 是最方便的,它返回的是文本表格格式。- 集群健康:
GET /_cat/health?v - 节点列表:
GET /_cat/nodes?v - 索引列表:
GET /_cat/indices?v - 分片分布:
GET /_cat/shards?v - 线程池状态:
GET /_cat/thread_pool?v
总结建议
- 日常监控/报警: 使用
GET /_cluster/health判断红黄绿状态。 - 运维排查: 使用
GET /_cat/...系列接口快速定位问题节点或分片。 - 深度分析/仪表盘: 使用
GET /_cluster/stats或GET /_nodes/stats获取详细指标。
你可以通过
curl 命令、Kibana 的 Dev Tools 或者任何 HTTP 客户端调用这些接口。本文来自博客园,作者:业余砖家,转载请注明原文链接:https://chuna2.787528.xyz/yeyuzhuanjia/p/19730859


浙公网安备 33010602011771号