【问题标题】:ElasticSearch VM clone - master_not_found_exception, found existing node with the same id but is a different node instanceElasticSearch VM 克隆 - master_not_found_exception,找到具有相同 id 但是不同节点实例的现有节点
【发布时间】:2017-05-29 02:34:45
【问题描述】:

这是我的设置:

Ubuntu 16.04 的两个实例。第二个是从第一个克隆的。 ElasticSearch 仅安装在来宾 (Ubuntu) 操作系统上。克隆虚拟机后配置已调整。

我在 VirtualBox 中使用桥接网络运行 - 每个实例都从路由器获取其 IP。 Windows(主机)防火墙配置正确。所有机器都可以互相ping通。 Ping、Netstat 和 nmap 测试表明端口 9200 和 9300 是开放的(也测试了“远程”主机)。

ElasticSearch 服务运行正常。我可以在本地和远程“curl -XGET”并获得正确的结果。

问题是第二台机器的 ES 没有加入集群。

这里是配置文件:

第一个:

cluster.name: p4g4n_cluster
node.name: master
node.master: true
network.host: 192.168.0.12
discovery.zen.ping.unicast.hosts: ["192.168.0.12", "192.168.0.17"]

第二个:

cluster.name: p4g4n_cluster
node.name: node1
node.master: false
network.host: 192.168.0.17
discovery.zen.ping.unicast.hosts: ["192.168.0.12", "192.168.0.17"]

如果我尝试curl -XGET 192.168.0.17:9200/_cluster/health,我会得到master_not_discovered_exception。如果我尝试基本的 GET 请求,我会看到 node1_na_,因为 cluster_uuid" property, while on first machine - *master*cluster_uuid` 存在。

运行的 ElasticSearch 版本为:5.4.0 和 Lucene 的版本是:6.5.0

谁能帮助我解决node1 看到并加入集群需要做的事情?

【问题讨论】:

  • 尝试在两台服务器中更改network.host: 0.0.0.0
  • 它不工作:(

标签: elasticsearch virtualbox


【解决方案1】:

我能够解决这个问题。

翻阅日志表明这不是网络配置问题。

由于我首先在一台机器上配置了整个 ELK 堆栈然后对其进行克隆,因此 ES 和 logstash 已经在运行并将 syslog 日志泵入弹性。

因此,克隆机器与现有机器具有相同的数据文件夹。事实证明,节点 UUID 嵌入在数据文件夹中,解决方案是删除克隆 VM 上的数据文件夹。

我在日志中发现的错误是:found existing node {xxx} with the same id but is a different node instance ...所以出现了明显的冲突。

我发现这个github ES issue 和这个SO answer 处理了同样的问题。

【讨论】:

    【解决方案2】:

    您可以尝试在两个服务器中添加 network.bind_host: 0.0.0.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 2014-11-22
      • 2017-12-28
      • 1970-01-01
      相关资源
      最近更新 更多