Elasticsearch client node 启动时出现警告:exception caught on transport layer 及java.net.NoRouteToHostException: No route to host

发现该问题源自发现kibana不能打开sense,并且看见elasticsearch插件处于服务不可用状态,但是在client node上curl localhost:9200发现能够返回ES基本信息,可以判断客服端节点工作正常。但是kibana一直显示ES服务不可用,通过

strace -o debug.log -tt /usr/local/kibana/bin/kibana

分析debug.log,发现

connect(12, {sa_family=AF_INET, sin_port=htons(9200), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress) 

该情况是出现在socket为非阻塞时出现的情况,表明连接正在建立并未完成。这里说明ES集群是有问题的,后面在ES官网论坛找到可能的原因:

discovery.zen.minimum_master_nodes: 2

集群中本应该有3个master节点,然后现在集群不足2个master节点,确实有两个master节点宕机,重启后,问题得到解决(运维说重启~~!)。

原文地址:https://www.cnblogs.com/xzysaber/p/6479237.html