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

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼5 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘6 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥6 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝6 天前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
Lsetea6 天前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链