gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:49:35 25 4
gpt4 key购买 nike

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

每个节点都已启动并正在运行...但它们之间没有通信。主节点认为数据节点为零。数据节点未连接到主节点。

它们都有相同的cluster.name。我已尝试启用多播 (discovery.zen.ping.multicast.enabled: true) 和禁用(之前设置为 false,以及 discovery.zen.ping.unicast.hosts:["host1","host2",..."host9"]) 但在这两种情况下,节点都没有通信。

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

示例输出:$ curl host1:9200/_cluster/health
{"error":{"root_cause":[{"type":"master_not_discovered_exception","re​​ason":"waited for [30s]"}],"type":"master_not_discovered_exception","re​​ason":"waited for [ 30s]"},"status":503}

我想不出他们不联系的更多原因 - 寻找更多关于尝试什么的想法。

编辑:我终于解决了这个问题。有效的设置是 publish_host"_non_loopback:ipv4_" 和将 discovery.zen.ping.unicast.hosts 设置为 的单播["host1:9300","host2:9300","host3:9300"] - 仅列出专用主节点。我的最小主节点数为 2。

最佳答案

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

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

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

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

关于Elasticsearch 集群配置未在单播和多播下发现任何节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com