ElasticSearch最常用的API接口

Elasticsearch (ES) 提供了多个 API 接口来查询集群、节点、索引等不同层面的状态。
以下是几个最常用且核心的状态查询接口:

1. 集群健康状态 (Cluster Health)

这是最常用的接口,用于快速查看集群整体是否健康(绿色、黄色、红色)。
  • 接口GET /_cluster/health
  • 用途: 查看集群状态 status (greenyellowred)、活跃分片数、未分配分片数等。
  • 示例:
    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 客户端调用这些接口。
 
posted @ 2026-03-17 18:23  业余砖家  阅读(5)  评论(0)    收藏  举报