当前位置:  开发笔记 > 数据库 > 正文

Elasticsearch集群配置未发现单播和多播下的任何节点

如何解决《Elasticsearch集群配置未发现单播和多播下的任何节点》经验,为你挑选了1个好方法。

我一直在尝试使用可爱的ansible-elasticsearch项目来建立一个九节点的Elasticsearch集群.

每个节点都已启动并运行......但它们并未相互通信.主节点认为没有数据节点.数据节点未连接到主节点.

他们都有相同的cluster.name.我已尝试使用multicast enabled(discovery.zen.ping.multicast.enabled: true)和disabled(先前设置为false,并且discovery.zen.ping.unicast.hosts:["host1","host2",..."host9"]),但在任何一种情况下节点都不通信.

它们之间具有网络连接 - 通过端口9300上的telnet进行验证.

样本输出: $ curl host1:9200/_cluster/health {"error":{"root_cause":[{"type":"master_not_discovered_exception","reason":"waited for [30s]"}],"type":"master_not_discovered_exception","reason":"waited for [30s]"},"status":503}

我想不出他们为什么不联系的更多理由 - 寻找更多关于尝试什么的想法.

编辑:我终于解决了这个问题.该工作的设置都publish_host"_non_loopback:ipv4_"单播与discovery.zen.ping.unicast.hosts组来["host1:9300","host2:9300","host3:9300"]-只列出专门的主节点.我的最小主节点数为2.



1> Or Weinberge..:

我认为可能导致这种行为的唯一原因是:

    连接问题 - Ping不是检查节点是否可以相互连接的好工具.使用telnet并尝试在端口9300上从host1连接到host2.

    elasticsearch.yml设置为绑定127.0.0.1或错误的主机(如果您不确定,绑定0.0.0.0以查看是否解决了您的连接问题,然后将其更改为仅绑定内部主机以避免将elasticsearch直接暴露给互联网很重要).

    您的publish_host不正确 - 例如,当您在docker容器中运行ES时,通常会发生这种情况,您需要确保将publish_host设置为可以通过其他主机访问的地址.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有