如何知道ElasticSearch集群中的节点总数?

rlcwz9us  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(178)

我有3个节点的ElasticSearch集群。如果多个节点出现故障,我可以很容易地手动检查它们。假设集群中的节点增加了,那么手动检查它们将很困难。那么,即使集群中的所有节点都出现故障,我如何才能获得它们呢?
为了获得活动/健康节点,我点击了api端点:
curl -X GET "hostname/ip:port/_cat/nodes?v&pretty"
是否有任何端点可用于获取ElasticSearch集群中的总节点数和不健康/故障节点数?
我试图列出所有使用elasticsearch.yml配置文件中的discovery.seed.hosts的节点。但我不知道如何做到这一点,或者这是正确的方法与否。

qmb5sa22

qmb5sa221#

我不认为有任何API知道离线节点。如果你的整个集群或一个节点关闭,然后弹性不提供任何方式来检查节点的健康。你需要依靠一个外部脚本或代码或监控工具,将ping你的所有节点和打印状态。
您可以编写一个自定义脚本,它将调用下面的API,并返回集群中可用的所有节点。一旦收到响应,您可以过滤出节点的IP或主机名,如果没有响应,您可以将其视为故障节点。

GET _cat/nodes?format=json&filter_path=ip,name

另一个选项是启用cluster monitoring,它将为您提供整个集群的状态,但同样,它将仅显示有关正在运行的节点的信息。
请检查this答案,了解Kibana如何在群集监视中显示脱机节点。

相关问题