云中的弹性搜索群集

时间:2014-01-17 20:20:16

标签: elasticsearch

我有2个Linux VM(都在Cloud Provider的同一个数据中心):Elastic1和Elastic2(其中Elastic 2是Elastic 1的克隆)。两者都有相同的版本centos,相同的集群名称和相同的版本ES,再次 - Elastic2是一个克隆。

我使用服务包装器在启动时自动启动它们,并将每个其他ip引入它们各自的iptables文件,所以现在我可以在节点之间成功ping。

我认为这足以让ES组成一个集群,但无济于事。

Elastic1和Elastic2都有1个索引,每个索引都分别命名为e1和e2。每个索引都有1个分片,没有副本。

我可以成功使用每个服务器上的头部和护理人员插件。并使用curl -XGET 'http://localhost:9200/_cluster/nodes?pretty=true'验证群集名称是否相同,每个服务器只列出1个节点。

为什么这些节点没有说话,有什么明显的吗?我已重新启动ES服务并在两台服务器上重新启动都无济于事。克隆能成为问题吗?

1 个答案:

答案 0 :(得分:2)

在elasticsearch.yml中:

discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ['host1:9300', 'host2:9300']

因此,只需在单播主机下列出具有传输端口(默认为9300)的节点IP。默认情况下启用多播,但在不使用外部插件的云环境中通常是不可能的。

此外,请务必检查您的IP规则/安全组!这很容易忘记。