记录一下es节点掉线后修复好了的情况

问题定位:96 节点是"孤儿节点"------因为它不知道其他节点在哪

从日志中可以明确看到:

关键证据 1:它只在找 localhost

日志不断出现:

复制代码
discovery will continue using [127.0.0.1:9300, 127.0.0.1:9301 ...]

说明这一台(192.142.8.96):

  • 完全没有向 97 或 100 发起过连接

  • 配置文件缺少真正的 seed hosts

  • 它只能试图在自己机器内部寻找集群(当然找不到)

这就是它无法加入集群的根本原因。


关键证据 2:集群 UUID 冲突

日志提示:

复制代码
this node is locked into cluster UUID [...] but [cluster.initial_master_nodes] is set to [node-1]; remove this setting

含义是:

  • 96 节点先前加入过集群(有 UUID)

  • 但配置里仍然写着"我是一个新的集群的初始主节点"

  • 这会导致 ES 拒绝加入本来就存在的 97/100 的集群


解决方案(在 192.142.8.96 上操作)

⚠️ 该机不需要再初始化集群,它只需要加入现有集群。


1. 编辑配置文件

复制代码
vi /data/elk/es/elasticsearch-8.13.3/config/elasticsearch.yml

2. 修改关键配置

✔ 添加正确的节点发现列表 discovery.seed_hosts

找到或新增以下行,并写上三台机器的真实 IP:

复制代码
discovery.seed_hosts: ["192.142.8.96", "192.142.8.97", "192.142.8.100"]

✔ 注释掉 cluster.initial_master_nodes

集群已经存在,这台机器不是初始化节点,所以这一行必须被注释掉:

复制代码
# cluster.initial_master_nodes: ["node-1"]

3. 重启 Elasticsearch

复制代码
su - es

# 结束旧进程
kill -9 $(ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}')

# 重启
/data/elk/es/elasticsearch-8.13.3/bin/elasticsearch -d

4. 验证节点是否成功加入集群(在 97 或 100 上执行)

复制代码
curl -u elastic:'xxxxxx' -X GET "http://localhost:9200/_cat/nodes?v"

成功时你会看到 3 条节点记录,包括:

  • 96

  • 97

  • 100

此时 96 节点正式归队。


🎉 修复完成后你可以:

  • 恢复 Java 程序的 3 节点配置

  • 继续使用整个 3 节点 ES 集群

相关推荐
荣--21 小时前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森1 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜2 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB3 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220705 天前
如何搭建本地yum源(上)
运维
大树888 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠8 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质8 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工8 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信