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

相关推荐
invicinble8 小时前
对linux形成认识
linux·运维·服务器
小Pawn爷8 小时前
14.VMmare安装ubuntu
linux·运维·ubuntu
技术路上的探险家8 小时前
8 卡 V100 服务器:基于 vLLM 的 Qwen 大模型高效部署实战
运维·服务器·语言模型
有谁看见我的剑了?8 小时前
介绍一款 测试 DNS解析成功率的网站
运维
半桔8 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
HABuo9 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7779 小时前
关于Linux服务器的协作问题
linux·运维·服务器
yunfuuwqi11 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
迎仔11 小时前
C-算力中心网络隔离实施方法:怎么搞?
运维·网络
代码游侠11 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法