我正在尝试部署2节点elasticsearch集群。
我有2个VM,如下所示:
VM1 - > 10.20.1.4(CentOS7)
VM2 - > 10.20.1.5(CentOS7)
我已经在上述VM中安装了java8作为先决条件。
从下面的链接下载了elasticsearch tar: https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.1.0/elasticsearch-2.1.0.tar.gz
在VM1(10.20.1.4)中,我在elasticsearch.yml文件中有以下配置
cluster.name: TestCluster
node.name: "node1"
node.master: true
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.20.1.4:9300", "10.20.1.5:9300"]
在VM2(10.20.1.5)中,我在elasticsearch.yml文件中有以下配置
cluster.name: TestCluster
node.name: "node2"
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.20.1.4:9300", "10.20.1.5:9300"]
但是使用这种配置,当我启动elasticsearch实例时,两个实例都将作为单独的主节点出现。他们没有形成集群,因为他们无法发现它们。
我也试过下面的zen单播变体,但没有一个能为我工作
discovery.zen.ping.unicast.hosts: ["10.20.1.4:9200", "10.20.1.5:9200"]
OR
discovery.zen.ping.unicast.hosts: ["10.20.1.4", "10.20.1.5"]
OR
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
有人可以帮助我让这个弹性搜索集群发挥作用。
答案 0 :(得分:1)
这是因为ES服务器is bound to localhost by default,即在您的配置中,您可以看到network.bind_host: _local_
他们采取了这一决定,以防止ES群集与来自外部世界的不受欢迎的主机形成。
相反,您应该在每台主机上设置以下设置:
network.host: 10.20.1.4 # on VM1
和
network.host: 10.20.1.5 # on VM2
请注意,设置network.host
会将network.bind_host
和network.publish_host
设置为相同的IP地址。