面试题答案
一键面试获取集群健康状态基础数据的API
在Elasticsearch中,可通过/_cluster/health
API获取集群健康状态的基础数据。
关键指标
- cluster_name:集群名称。
- status:集群状态,取值为
green
(所有主分片和副本分片均可用)、yellow
(所有主分片可用,但部分副本分片不可用)、red
(部分主分片不可用)。 - timed_out:布尔值,指示请求是否超时。
- number_of_nodes:集群中的节点数。
- number_of_data_nodes:集群中的数据节点数。
- active_primary_shards:活动的主分片数。
- active_shards:活动的分片总数(主分片 + 副本分片)。
- relocating_shards:正在迁移的分片数。
- initializing_shards:正在初始化的分片数。
- unassigned_shards:未分配的分片数。
代码示例(Python结合Elasticsearch客户端库)
from elasticsearch import Elasticsearch
# 连接到Elasticsearch集群
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
# 获取集群健康状态
health = es.cluster.health()
print(health)
上述代码中:
- 首先通过
Elasticsearch
类连接到本地运行的Elasticsearch集群(根据实际情况修改主机和端口)。 - 然后使用
es.cluster.health()
方法获取集群健康状态数据,并将其打印输出。