代码之家  ›  专栏  ›  技术社区  ›  Abhishek Sinha

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

  •  0
  • Abhishek Sinha  · 技术社区  · 2 年前

    我有3个节点elasticsearch集群。如果有多个节点发生故障,那么我可以轻松地手动检查它们。假设集群中的节点增加了,那么手动检查它们将很困难。那么,即使集群中的所有节点(特别是节点的名称)都已关闭,我如何获取它们呢?

    要获得活动/健康的节点,我点击api端点:

    curl -X GET "hostname/ip:port/_cat/nodes?v&pretty"

    在elasticsearch集群中,是否有可以获取总节点和不健康/下降节点的端点?

    我试图使用 discovery.seed.hosts 出现在 elasticsearch.yml 配置文件。但我不知道该怎么做,也不知道这是不是正确的方法。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Sagar Patel    2 年前

    我认为没有任何API可以了解离线节点。如果整个集群停机或单个节点停机,则Elastic不提供任何检查节点运行状况的方法。您需要依赖外部脚本或代码或监控工具,它将ping您的所有节点并打印状态。

    您可以编写一个自定义脚本,它将在API下面调用,并返回集群中可用的所有节点。一旦收到响应,就可以过滤掉节点的IP或主机名,无论哪个节点都不响应,您可以将其视为向下节点。

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

    另一个选项是启用 cluster monitoring 这将为您提供整个集群的状态,但它同样只会显示有关运行节点的信息。

    请查收 this 回答Kibana如何在集群监控中显示脱机节点。

    推荐文章