2015-12-15 72 views
2

我試圖部署2節點elasticsearch集羣。Elasticsearch集羣實例顯示爲單個主節點

我有2個虛擬機如下:

VM1 - > 10.20.1.4(CentOS7)

VM2 - > 10.20.1.5(CentOS7)

我已經安裝java8作爲先決條件在上面的VM中。

下載的elasticsearch焦油從下面鏈接: 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),I具有低於配置在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實例時,兩個實例都作爲單個主節點出現。他們沒有形成集羣,因爲他們無法發現它們。

我也曾嘗試以下禪單播的變化,但他們都不是爲我工作

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"] 

是否有人可以幫助我得到這個elasticsearch集羣工作。

回答

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_hostnetwork.publish_host設置爲相同的IP地址。

+0

嗨瓦爾,感謝您的快速解決。我早些時候給network.host 0.0.0.0,結果發生以下錯誤未能向主發送加入請求[{node1} {bOiZbpdvT3Wy5J-B8NFyIA} {10.0.2.15} {10.0.2.15:9300} {master = true }],reason [RemoteTransportException [[node2] [10.0.2.15:9300] [internal:discovery/zen/join]];嵌套:IllegalStateException [Node [{node2} {oXn2ozOKTu6PsIHnKMzDoA} {10.0.2.15} {10.0.2.15:9300}]不適用於加入請求]; ] –

+0

現在有效嗎? – Val

+0

是的,它現在可以工作..再次感謝快速修復 –

相關問題