关于elasticsearch node 节点不可用的故障分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于elasticsearch node 节点不可用的故障分析相关的知识,希望对你有一定的参考价值。
开发那边在搭建集群的时候,无论如何测试,node 节点就是连不上,始终报错误org.elasticsearch.client.transport.NoNodeAvailableException: No node available
后开看了下,本地环境,原因是回话时间太多,而他的本地环境并没有做内核优化,而线上都做了统一的内核优化,其中一条就是吧,检测tcp 连接探测间隔在5秒,对es 来说,太断了,
google 搜到一片文章,连接如下
https://blog.trifork.com/2015/04/08/dealing-with-nodenotavailableexceptions-in-elasticsearch/
大概内容是,这根本因为系统没有调优内核,导致无法连接,与我们相反,他是保持连接时间探测过长导致的
那么我们可以推测,tcp 内核连接,要保持在一定的数值范围内,而且必须与es 连接的工作原理相符,不然linux 系统的防火机制,和tcp 连接探测机制,会把还需要继续保持的连接给干掉,结果就会变成了,没有节点可用
具体操作如下
centos 系统
修改内核参数
net.ipv4.tcp_keepalive_time=7200(默认值)
改为
net.ipv4.tcp_keepalive_time=600(具体看情况)
以上是关于关于elasticsearch node 节点不可用的故障分析的主要内容,如果未能解决你的问题,请参考以下文章