记录一下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 集群

相关推荐
Leinwin2 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382502 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇2 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7592 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣2 小时前
智能体选型实战指南
运维·人工智能
yy55273 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔5 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密5 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20155 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑