MST
星途 面试题库

面试题:ElasticSearch 中如何获取集群健康状态基础数据用于可视化展示

在 ElasticSearch 环境下,阐述通过什么 API 可以获取集群健康状态的基础数据,这些数据包含哪些关键指标以及获取数据的代码示例(以 Python 结合 Elasticsearch 客户端库为例)。
17.8万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

获取集群健康状态基础数据的API

在Elasticsearch中,可通过/_cluster/health API获取集群健康状态的基础数据。

关键指标

  1. cluster_name:集群名称。
  2. status:集群状态,取值为green(所有主分片和副本分片均可用)、yellow(所有主分片可用,但部分副本分片不可用)、red(部分主分片不可用)。
  3. timed_out:布尔值,指示请求是否超时。
  4. number_of_nodes:集群中的节点数。
  5. number_of_data_nodes:集群中的数据节点数。
  6. active_primary_shards:活动的主分片数。
  7. active_shards:活动的分片总数(主分片 + 副本分片)。
  8. relocating_shards:正在迁移的分片数。
  9. initializing_shards:正在初始化的分片数。
  10. unassigned_shards:未分配的分片数。

代码示例(Python结合Elasticsearch客户端库)

from elasticsearch import Elasticsearch

# 连接到Elasticsearch集群
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])

# 获取集群健康状态
health = es.cluster.health()
print(health)

上述代码中:

  1. 首先通过Elasticsearch类连接到本地运行的Elasticsearch集群(根据实际情况修改主机和端口)。
  2. 然后使用es.cluster.health()方法获取集群健康状态数据,并将其打印输出。