关于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(具体看情况)

















本文转自wks9751CTO博客,原文链接: http://blog.51cto.com/wks97/2086023,如需转载请自行联系原作者





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我会尽力用中文来回答您的问题。 首先,假设您已经在 Mac 上安装了 Docker,并且已经创建了一个 Elasticsearch 集群,其中包含一个 master 节点和一个 node2 节点。如果 node2 节点无法连接到 master 节点,那么可能是由于以下几个原因造成的: 1. 网络问题:如果 node2 节点和 master 节点不在同一个网络中,或者它们之间存在防火墙,则 node2 节点可能无法连接到 master 节点。 2. Elasticsearch 配置问题:如果您在 Elasticsearch 配置文件中未正确设置 node2 节点的名称,或者没有正确设置 master 节点的地址,则 node2 节点可能无法连接到 master 节点。 3. Docker 容器问题:如果 node2 节点的 Docker 容器存在问题,例如运行状态异常,则 node2 节点可能无法连接到 master 节点。 如果您想要解决 node2 节点无法连接到 master 节点的问题,那么可以尝试以下步骤: 1. 确保网络环境正常:检查网络连接状态,确保 node2 节点和 master 节点在同一个网络中,并且没有防火墙存在。 2. ### 回答2: 在Mac系统下安装Docker并创建ES集群时,如果节点2无法连接到主节点(Master),可能有以下几个原因和解决方法。 1. 网络配置问题:首先,确保所有的节点都在同一个网络中,可以相互访问。可以通过运行`docker network ls`命令来查看docker网络列表。如果没有创建网络,则需要运行`docker network create`命令创建一个新的网络。确保所有的节点都加入了相同的网络。 2. 主节点配置问题:确认主节点配置文件正确,特别是`elasticsearch.yml`文件中相关的网络配置参数,如`network.host`和`discovery.seed_hosts`等。`network.host`的值应设置为主节点的IP地址,而`discovery.seed_hosts`应设置为包括所有节点的IP地址。 3. 防火墙问题:如果节点2无法连接主节点,可能是由于防火墙阻止了节点之间的通信。在主节点节点2上检查并确保防火墙配置允许Elasticsearch的通信端口(默认是9300和9200)。可以通过运行`sudo ufw allow 9300`和`sudo ufw allow 9200`来打开端口。 4. 硬件资源问题:确认所有节点的硬件资源满足Elasticsearch的要求。如果节点2的硬件资源不足,可能会导致其无法连接到主节点。可以通过运行`docker stats`命令来查看每个节点的资源使用情况。 5. Docker镜像问题:如果节点2无法连接主节点,可能是由于Docker镜像的问题。尝试重新拉取Elasticsearch的镜像并重新创建所有节点。可以通过运行`docker pull elasticsearch:版本号`来拉取特定版本的Elasticsearch镜像。 通过以上几个步骤,您应该能够解决在Mac系统下安装Docker并创建ES集群时节点2无法连接主节点的问题。如果问题仍然存在,建议查看主节点节点2的日志文件,以便找到更详细的错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值