# Configure cluster

**URL:** <https://discuss.elastic.co/t/configure-cluster/77392>\
**Category:** Elasticsearch\
**Created:** [March 4, 2017, 7:12pm UTC](https://discuss.elastic.co/t/configure-cluster/77392 "2017-03-04T19:12:04Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 4, 2017, 7:12pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/1 "2017-03-04T19:12:04Z")

</div>

Hi,  
I created 3 vm machine with elasticsearch installation  
I want to create cluster with one master and 2 data nodes  
configure the yml as follow:  
master node:  
[cluster.name](http://cluster.name): elastic  
[node.name](http://node.name): master\_elk  
node.master: true  
node.data: false  
network.host: the ip of the master machine  
transport.host: localhost  
transport.tcp.port: 9300  
http.port: 9200  
discovery.zen.ping.unicast.hosts: ["master IP", "data 1 ip", "data2 ip"]  
discovery.zen.minimum\_master\_nodes: 1  
data 1+2:  
[cluster.name](http://cluster.name): elasic  
[node.name](http://node.name): data1  
node.master: true  
node.data: true  
network.host: the ip of the data machine  
transport.host: localhost  
transport.tcp.port: 9300  
http.port: 9200  
discovery.zen.ping.unicast.hosts: ["master IP", "data 1 ip", "data2 ip"]  
discovery.zen.minimum\_master\_nodes: 1

when trying to telnet from the master to the data machine ip with port 9200 I get a connection but when trying with port 9300 I dont get connection  
and when running health check to the cluster I get status red

Any help will be greate  
Thanks,  
Talia

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 4, 2017, 8:00pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/2 "2017-03-04T20:00:11Z")

</div>

forgot to add that the elasticsearch version I installed is 5.2

curl -XGET '[http://XXXX:9200/\_nodes/transport?pretty](http://XXXX:9200/_nodes/transport?pretty)'  
{  
"\_nodes" : {  
"total" : 1,  
"successful" : 1,  
"failed" : 0  
},  
"cluster\_name" : "elastic",  
"nodes" : {  
"H4pskB4fQOOmJT4m74goIg" : {  
"name" : "master\_elk",  
"transport\_address" : "127.0.0.1:9300",  
"host" : "localhost",  
"ip" : "127.0.0.1",  
"version" : "5.2.0",  
"build\_hash" : "24e05b9",  
"roles" : [  
"master",  
"ingest"  
],  
"transport" : {  
"bound\_address" : [  
"127.0.0.1:9300",  
"[::1]:9300"  
],  
"publish\_address" : "127.0.0.1:9300",  
"profiles" : { }  
}  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [March 5, 2017, 4:42am UTC](https://discuss.elastic.co/t/configure-cluster/77392/3 "2017-03-05T04:42:20Z")

</div>

> [@talial](#):
>
> network.host: the ip of the master machine transport.host: localhost

Just set `network.host` and you should be ok.

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 5, 2017, 12:02pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/4 "2017-03-05T12:02:49Z")

</div>

still not working

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 5, 2017, 1:24pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/5 "2017-03-05T13:24:50Z")

</div>

Logs?

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 5, 2017, 2:12pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/6 "2017-03-05T14:12:23Z")

</div>

when I just set the network.host without transport.host the elastic search is not started

in the log file I have:  
[2017-03-05T16:00:43,997][INFO][o.e.t.TransportService] [master] publish\_address {xxxx:9300}, bound\_addresses {xxxx:9300}  
[2017-03-05T16:00:44,004][INFO][o.e.b.BootstrapChecks] [master] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks  
[2017-03-05T16:00:44,006][ERROR][o.e.b.Bootstrap] [master] node validation exception  
bootstrap checks failed  
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

---

<div class="post-metadata">

**Author:** ![jasontedor](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jasontedor/32/66992_2.png) [@jasontedor](https://discuss.elastic.co/u/jasontedor)\
**Post date:** [March 5, 2017, 3:22pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/7 "2017-03-05T15:22:49Z")

</div>

> [@talial](#):
>
> ```auto
> bootstrap checks failed
> system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
> 
> ```

This tells you exactly what the problem is. Earlier in your logs will be output telling you why the system call filters failed to install. Often it's due to your kernel not supporting them. You have two options: change to kernel that supports the seccomp features that are needed here, or disable system call filters at your own risk. This is covered in the [docs](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/system-call-filter-check.html).

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 5, 2017, 5:33pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/8 "2017-03-05T17:33:29Z")

</div>

OK, Thanks

I add just for the testing of discovery this line to yml file:  
bootstrap.system\_call\_filter: false  
now I have telnet with ports 9200 + 9300  
but when I try to run the discovery I get timeout

curl -XGET 'machine\_ip:9200/\_cat/health?v&pretty'

try to add those line in the yml:  
discovery.zen.join\_timeout: 90s  
discovery.zen.ping\_timeout: 30s

still having timeout

{  
"error" : {  
"root\_cause" : [  
{  
"type" : "master\_not\_discovered\_exception",  
"reason" : null  
}  
],  
"type" : "master\_not\_discovered\_exception",  
"reason" : null  
},  
"status" : 503  
}

in the log:  
[WARN][o.e.n.Node] [master] timed out while waiting for initial discovery state - timeout: 30s  
[INFO][o.e.h.HttpServer] [master] publish\_address {machine ip:9200}, bound\_addresses {machine ip:9200}  
[INFO][o.e.n.Node] [master] started  
[INFO][o.e.d.z.ZenDiscovery] [master] failed to send join request to master [{master}{H4pskB4fQOOmJT4m74goIg}{vpQbi0o7R\_mog2jiRpv0yg}{machine ip}{machine ip:9300}], reason [RemoteTransportException[[master][machine ip:9300][internal:discovery/zen/join]]; nested: NotMasterException[Node [{master}{H4pskB4fQOOmJT4m74goIg}{mwU8gjwgQWiyRr\_xG3FlHg}{machine ip}{machine ip:9300}] not master for join request]; ], tried [3] times  
[2017-03-05T19:27:37,324][DEBUG][o.e.a.a.c.h.TransportClusterHealthAction] [master] no known master node, scheduling a retry  
[2017-03-05T19:28:07,325][DEBUG][o.e.a.a.c.h.TransportClusterHealthAction] [master] timed out while retrying [cluster:monitor/health] after failure (timeout [30s])  
[2017-03-05T19:28:07,326][WARN][r.suppressed] path: /\_cat/health, params: {pretty=, v=}  
org.elasticsearch.discovery.MasterNotDiscoveredException: null  
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:211) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:307) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:237) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.cluster.service.ClusterService$NotifyTimeout.run(ClusterService.java:1157) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:527) [elasticsearch-5.2.0.jar:5.2.0]  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0\_101]  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0\_101]  
at java.lang.Thread.run(Thread.java:745) [?:1.8.0\_101]

Thanks for the replys

---

<div class="post-metadata">

**Author:** ![jasontedor](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jasontedor/32/66992_2.png) [@jasontedor](https://discuss.elastic.co/u/jasontedor)\
**Post date:** [March 6, 2017, 1:55am UTC](https://discuss.elastic.co/t/configure-cluster/77392/9 "2017-03-06T01:55:16Z")

</div>

Your configuration above shows:

```auto
transport.host: localhost

```

for the master node. You need to bind both the master and the data node to non-loopback interfaces or they will not be able to connect with each other across your network.

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 6, 2017, 12:41pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/10 "2017-03-06T12:41:49Z")

</div>

change the yml, configure the transport.host: machine IP  
in the log I cam see that :  
bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks

but stiil when running the curl -XGET 'machine\_ip:9200/\_cat/health?v&pretty'  
get the same errors in the log

Maybe there is something that I have to configure in the etc/hosts file?  
What I missing?

---

<div class="post-metadata">

**Author:** ![iti](https://avatars.discourse-cdn.com/v4/letter/i/b19c9b/32.png) [@iti](https://discuss.elastic.co/u/iti)\
**Post date:** [March 8, 2017, 5:01am UTC](https://discuss.elastic.co/t/configure-cluster/77392/11 "2017-03-08T05:01:50Z")

</div>

Can you telnet from data node to master at port 9200/9300?  
Also, since you have 3 mater nodes,  
discovery.zen.minimum\_master\_nodes: 2

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 8, 2017, 10:58am UTC](https://discuss.elastic.co/t/configure-cluster/77392/12 "2017-03-08T10:58:18Z")

</div>

Thanks for the reply

telnet is working from all 3 servers

also checked and OK:  
curl 10.15.20.10:9200  
curl 10.15.20.11:9200  
curl 10.15.20.12:9200

[elasticsearch@master ~]$ curl -XGET '[http://10.15.20.10:9200/\_nodes/transport?pretty](http://10.15.20.10:9200/_nodes/transport?pretty)'  
{  
"\_nodes" : {  
"total" : 1,  
"successful" : 1,  
"failed" : 0  
},  
"cluster\_name" : "elkcl",  
"nodes" : {  
"H4pskB4fQOOmJT4m74goIg" : {  
"name" : "master",  
"transport\_address" : "10.15.20.10:9300",  
"host" : "10.15.20.10",  
"ip" : "10.15.20.10",  
"version" : "5.2.0",  
"build\_hash" : "24e05b9",  
"roles" : [  
"master",  
"ingest"  
],  
"transport" : {  
"bound\_address" : [  
"10.15.20.10:9300"  
],  
"publish\_address" : "10.15.20.10:9300",  
"profiles" : { }  
}  
}  
}  
}

[elasticsearch@ptktl-elkdev2 ~]$ curl -XGET '[http://10.15.20.11:9200/\_nodes/transport?pretty](http://10.15.20.11:9200/_nodes/transport?pretty)'  
{  
"\_nodes" : {  
"total" : 1,  
"successful" : 1,  
"failed" : 0  
},  
"cluster\_name" : "elkcl",  
"nodes" : {  
"H4pskB4fQOOmJT4m74goIg" : {  
"name" : "ptktl-elkdev2",  
"transport\_address" : "10.15.20.11:9300",  
"host" : "10.15.20.11",  
"ip" : "10.15.20.11",  
"version" : "5.2.0",  
"build\_hash" : "24e05b9",  
"roles" : [  
"data",  
"ingest"  
],  
"transport" : {  
"bound\_address" : [  
"10.15.20.11:9300"  
],  
"publish\_address" : "10.15.20.11:9300",  
"profiles" : { }  
}  
}  
}  
}

[elasticsearch@ptktl-elkdev2 ~]$ curl -XGET '[http://10.15.20.12:9200/\_nodes/transport?pretty](http://10.15.20.12:9200/_nodes/transport?pretty)'  
{  
"\_nodes" : {  
"total" : 1,  
"successful" : 1,  
"failed" : 0  
},  
"cluster\_name" : "elkcl",  
"nodes" : {  
"H4pskB4fQOOmJT4m74goIg" : {  
"name" : "ptktl-elkdev3",  
"transport\_address" : "10.15.20.12:9300",  
"host" : "10.15.20.12",  
"ip" : "10.15.20.12",  
"version" : "5.2.0",  
"build\_hash" : "24e05b9",  
"roles" : [  
"data",  
"ingest"  
],  
"transport" : {  
"bound\_address" : [  
"10.15.20.12:9300"  
],  
"publish\_address" : "10.15.20.12:9300",  
"profiles" : { }  
}  
}  
}  
}

I want to have one master and 2 data machine  
configure the yml as follow:

master node:  
[cluster.name](http://cluster.name): elastic  
[node.name](http://node.name): master  
node.master: true  
node.data: false  
bootstrap.system\_call\_filter: false  
network.host: 10.15.20.10  
transport.host: 10.15.20.10  
transport.tcp.port: 9300  
http.port: 9200  
network.publish\_host: 10.15.20.10  
discovery.zen.ping.unicast.hosts: ["10.15.20.10:9300", "10.15.20.11:9300", "10.15.20.12:9300"]  
discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.join\_timeout: 90s  
discovery.zen.ping\_timeout: 90s

data 1+2:  
[cluster.name](http://cluster.name): elasic  
[node.name](http://node.name): data1  
node.master: false  
node.data: true  
bootstrap.system\_call\_filter: false  
transport.host: 10.15.20.11  
transport.tcp.port: 9300  
http.port: 9200  
network.host: 10.15.20.11  
network.publish\_host: 10.15.20.11  
discovery.zen.ping.unicast.hosts: ["10.15.20.10:9300", "10.15.20.11:9300", "10.15.20.12:9300"]  
discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.join\_timeout: 90s  
discovery.zen.ping\_timeout: 90s

[elasticsearch@master ~]$ curl [http://10.15.20.10:9200/\_cluster/health?pretty=true](http://10.15.20.10:9200/_cluster/health?pretty=true)  
{  
"error" : {  
"root\_cause" : [  
{  
"type" : "master\_not\_discovered\_exception",  
"reason" : null  
}  
],  
"type" : "master\_not\_discovered\_exception",  
"reason" : null  
},  
"status" : 503  
}

in the log:  
[INFO][o.e.t.TransportService] [master] publish\_address {10.15.20.10:9300}, bound\_addresses {10.15.20.10:9300}  
[INFO][o.e.b.BootstrapChecks] [master] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks  
[WARN][o.e.n.Node] [master] timed out while waiting for initial discovery state - timeout: 30s  
[INFO][o.e.h.HttpServer] [master] publish\_address {10.15.20.10:9200}, bound\_addresses {10.15.20.10:9200}  
[INFO][o.e.n.Node] [master] started  
[DEBUG][o.e.a.a.c.h.TransportClusterHealthAction] [master] no known master node, scheduling a retry  
[DEBUG][o.e.a.a.c.h.TransportClusterHealthAction] [master] timed out while retrying [cluster:monitor/health] after failure (timeout [30s])  
[WARN][r.suppressed] path: /\_cluster/health, params: {pretty=true}  
org.elasticsearch.discovery.MasterNotDiscoveredException: null  
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:211) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:307) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:237) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.cluster.service.ClusterService$NotifyTimeout.run(ClusterService.java:1157) [elasticsearch-5.2.0.jar:5.2.0]  
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:527) [elasticsearch-5.2.0.jar:5.2.0]  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0\_101]  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0\_101]  
at java.lang.Thread.run(Thread.java:745) [?:1.8.0\_101]  
[INFO][o.e.d.z.ZenDiscovery] [master] failed to send join request to master [{master}{H4pskB4fQOOmJT4m74goIg}{zEXhVspzSuy69JgbEZbRoQ}{10.15.20.10}{10.15.20.10:9300}], reason [RemoteTransportException[[master][10.15.20.10:9300][internal:discovery/zen/join]]; nested: NotMasterException[Node [{master}{H4pskB4fQOOmJT4m74goIg}{Y0Bi0UqcT-e0mHFC5OYasg}{10.15.20.10}{10.15.20.10:9300}] not master for join request]; ], tried [3] times

Any suggestions?  
Also if I change the discovery.zen.minimum\_master\_nodes: 2 its still not working

Please advise

---

<div class="post-metadata">

**Author:** ![talial](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@talial](https://discuss.elastic.co/u/talial)\
**Post date:** [March 9, 2017, 3:51pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/13 "2017-03-09T15:51:58Z")

</div>

Hi,  
Now I have in the log file at the data servers:  
found existing node with the same id but is a different node instance

While checking this error I found out that:  
"I think that you copied the data folder from one to the other. In particular, this means that the node ID was copied along with it, and we do not allow two nodes with the same ID to join the cluster."

Maybe this is my problem?

How can I check the node ID?  
How can I change the ID if its the same?

see above reply I upload the outpout of:  
curl -XGET '[http://10.15.20.12:9200/\_nodes/transport?pretty](http://10.15.20.12:9200/_nodes/transport?pretty)' from each machine  
Does the node id is:  
"nodes" : {  
"H4pskB4fQOOmJT4m74goIg"  
If so how can I change it?

Please advice  
Thanks,  
Talia

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 6, 2017, 3:52pm UTC](https://discuss.elastic.co/t/configure-cluster/77392/14 "2017-04-06T15:52:13Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
