Elasticsearch 的 _cat/health
API 是一个非常有用的工具,可以用来获取关于 Elasticsearch 集群健康状况的简要信息。这个 API 提供了一个快速的方式来检查集群的状态,包括节点数量、索引数量、集群状态(例如绿色、黄色或红色)等。
如何使用 _cat/health API
要使用 _cat/health
API,您可以通过 HTTP GET 请求访问它。请求的格式如下:
GET /_cat/health?v=true
这里的 v=true
参数是可选的,用于控制输出是否包含列标题。如果设置为 true
,则返回的数据将包含列名,这使得数据更易于阅读。
返回的信息
执行上述命令后,您将收到类似以下的响应:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1631872800 08:00:00 my_cluster green 3 3 10 5 0 0 0 0 - 100.0%
- epoch: 时间戳,表示自从 Unix 纪元(1970-01-01 00:00:00 UTC)以来的秒数。
- timestamp: 当前时间。
- cluster: 集群名称。
- status: 集群状态。可能的值有
green
,yellow
,red
。绿色表示所有主分片和副本分片都正常工作;黄色表示所有主分片都在工作,但至少有一个副本分片缺失;红色表示至少有一个主分片缺失。 - node.total: 集群中的节点总数。
- node.data: 数据节点的数量。
- shards: 索引分片的总数。
- pri: 主分片的数量。
- relo: 正在重新定位的分片数量。
- init: 初始化中的分片数量。
- unassign: 未分配的分片数量。
- pending_tasks: 集群协调任务队列中等待处理的任务数量。
- max_task_wait_time: 最长任务等待时间。
- active_shards_percent: 活动分片占总分片的比例。
常见问题
- 如果看到
status
为yellow
,通常意味着虽然所有的主分片都已经分配了,但是至少有一个副本分片没有被分配。这可能是由于集群中只有单个节点导致无法创建副本分片。 red
状态表示有主分片未分配,这通常是一个需要立即关注的问题,因为这意味着部分数据不可用。
通过定期检查 _cat/health
API 的输出,可以帮助您及时发现并解决集群中的潜在问题,确保集群的稳定性和性能。