Using tribe node for federation between Elasticsearch clusters


(Chinmoy Das) #1

I have two elastic search clusters ( distributed in two physical sites ). These clusters are working fine with logstash and kibana individually. For now, I am trying to replicate this in a single machine. Each of the clusters is having single elasticsearch nodes. I need to provide a view from Kibana that will consider the data from both the sites.

Seeing the documentation of tribe nodes, it appears to me that tribe can help me to achieve the objective, without replication of data between the sites. I want to avoid the data replication across sites(different clusters), to get rid of the network overhead. My tribe node configuration in elasticsearch.yml is as below:

t1:
    cluster.name:   cluster1
    discovery.zen.ping.multicast.enabled: false
    discovery.zen.ping.unicast.hosts: ["localhost:9201"]
t2:
    cluster.name:   cluster2
    discovery.zen.ping.multicast.enabled: false
    discovery.zen.ping.unicast.hosts: ["localhost:9202"]

In host1 and host2 elasticsearch.ymls, I have un-commented only the following lines:
For 1st elasticsearch

cluster.name: cluster1
node.name: node-1
http.port: 9201

For 2nd elasticsearch

cluster.name: cluster2
node.name: node-2
http.port: 9202

When I use Kibana with the tribe node, it does not show any result. Am I missing anything?

Strangely the console of the tribe node shows a reference to port 9302 as below, Not sure how it is getting reference to 9302:

[2015-12-24 23:04:26,481][INFO ][transport ] [Bova] publish_address {127.0.0.1:9302}, bound_addresses {127.0.0.1:9302}, {[::1]:9302}


(Tin Le) #2

Is this a test setup? Do you have other ES instances running that host?

Your tribe config is pointing to two local clusters on that same host. Where t1 is pointing to localhost:9201 and t2 is to localhost:9202

If this is NOT a test setup and you are actually configuring a real tribe to talk with your remote clusters, you need to put in their actual FQDN name or IP addresses and correct port.

What version of ES are you using? There are various issues with tribe depending on which version :smiley:


(Chinmoy Das) #3

I am using elasticsearch 2.1.1, logstash 2.1.1, kibana 4.3.1 (64 bit version ).

This is a test setup where I am trying to set up tribe in my local, then I shall apply in different boxes. At present I am using two instances of ES as different clusters, and one as the tribe.


(Tin Le) #4

Are your two test instances healthy? Do they have any data in them?

The tribe node is a client node, so it will talk with other clusters over ES port 9300. You should change your config to use 9301 and 9302 for t1 and t2.


(system) #5