Elasticsearch部分节点不能发现集群(脑裂)问题处理
现象描述
es版本 1.4.5+centos 6.5
es1,es2,es3三台es组成一个集群,集群状态正常,
当es1 服务器重启后,es1不能加到集群中,自己选举自己为master,这就产生了es集群中所谓的“脑裂”, 把es1的es服务重启后,es1则能正常发现集群并加入。当重启es2服务器后,es2不能加到集群中,自己选举自己为master,也产生了es集群中所谓的“脑裂”,当重启es服务后,还是不能发现集群。
当重启es3服务器后,es3能加到集群中。正常。
分析
三台es服务器es服务,插件的版本均一样,配置除了节点名不同也一样。
查看es服务的启动日志发现:[2015-07-22 16:48:24,628][INFO ][cluster.service ] [Es_node_10_0_31_2] new_master [Es_node_10_0_31_2][fDJA3kUtTHC7eJuS4h78FA][localhost][inet[/10.0.31.2:9300]]{rack=rack2, master=true}, reason: zen-disco-join (elected_as_master)
服务启动过程中,由于未能发现集群,自己选举自己为master
导致该问题有可能网络原因。因为discovery.zen(es 中一个集群的服务)超时了还没有找到集群则选举自己为master。
修改设置 discovery.zen.ping_timeout: 30s,原来10s 重启es1发现正常了。用同样的方法修改es2,发现不凑效
修改es2