Elasticsearch 8.x+搭建集群一 (RPM/DEB 安装方式)

当然可以!以下是 Elasticsearch 8.x+ 自管部署(Self-Managed)环境下,从零搭建一个安全集群的完整操作流程总结 ,适用于 RPM/DEB 安装方式(如 yum/apt)


✅ 总体目标

  1. 启动第一个节点 → 自动创建安全单节点集群
  2. 添加更多节点 → 安全加入现有集群

全程 无需手动配置 TLS 证书、密码或修改 elasticsearch.yml


🧱 第一阶段:启动第一个节点(创建集群)

💡 这是整个集群的"种子节点",会自动生成 CA、密码和 token。

操作步骤:

复制代码
# 1. 安装 Elasticsearch(以 RPM 为例)
sudo yum install elasticsearch-8.x.x.rpm

# 2. 确保数据目录为空(首次安装默认就是空的)
ls /var/lib/elasticsearch    # 应该为空或不存在

# 3. 直接启动!(关键:不要改任何配置)
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

验证自动安全配置:

复制代码
# 查看 elastic 用户密码
sudo grep "Password for the elastic user" /var/log/elasticsearch/*.log

# 查看 enrollment token(用于后续加节点/Kibana)
sudo grep "Enroll this node" /var/log/elasticsearch/*.log
sudo grep "Enroll Kibana" /var/log/elasticsearch/*.log

# 检查证书是否生成
ls /etc/elasticsearch/certs/
# 应包含: http_ca.crt, http.p12, transport_ca.crt, transport.p12

# 测试访问(需密码)
curl -u elastic -k https://localhost:9200

✅ 此时你已有一个 启用 HTTPS + 认证 + TLS transport 的单节点安全集群


➕ 第二阶段:添加新节点(加入集群)

💡 新节点必须 从未启动过(数据目录为空),且使用相同版本 ES。

操作步骤:

🔹 步骤 1:在已有集群节点上生成 node enrollment token
复制代码
# 在第一个节点(或任意已有节点)执行
sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

输出示例:

复制代码
eyJ2ZXIiOiIxLjAiLCJhZHIiOlsiMTkyLjE2OC4xLjEwOjkyMDAiXSwiZmdyIjoi...

注意:token 1 小时内有效,一次性使用


🔹 步骤 2:在新节点上运行 reconfigure-node
复制代码
# 在新服务器上(已安装 ES,但尚未启动!)
sudo /usr/share/elasticsearch/bin/elasticsearch-reconfigure-node \
  --enrollment-token "eyJ2ZXIiOiIxLjAiLCJhZHIiOlsiMTkyLjE2OC4xLjEwOjkyMDAiXSwiZmdyIjoi..."

✅ 该命令会自动:

  • 下载集群 CA 证书
  • 申请本机 TLS 证书
  • 配置安全通信参数

🔹 步骤 3:启动新节点
复制代码
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

🔹 步骤 4:验证新节点是否加入成功

在任意节点执行:

复制代码
# 需要 elastic 密码(来自第一步日志)
curl -u elastic -k "https://localhost:9200/_cat/nodes?v&h=name,ip,role"

应看到新节点的 IP 和角色。


📌 关键注意事项

项目 要求
ES 版本 所有节点必须完全一致(如 8.12.0)
数据目录 新节点必须为空(/var/lib/elasticsearch
网络连通性 新节点能访问已有节点的 9200 端口(HTTPS)
主机名/DNS 建议配置正确 hostname,或确保 IP 可被识别
不要提前启动新节点 否则它会自建集群,无法加入

🚫 错误做法(务必避免)

错误 后果
先启动新节点再 reconfigure 新节点变成独立集群(脑裂)
手动复制证书文件 容易出错,官方不推荐
在 tar 包安装上用 reconfigure-node 不支持!仅限 RPM/DEB
使用过期或已用过的 token 加入失败

🔄 扩展:添加 Kibana(同理)

复制代码
# 在 ES 节点生成 Kibana token
bin/elasticsearch-create-enrollment-token -s kibana

# 在 Kibana 服务器执行
bin/kibana --enrollment-token "xxx"

Kibana 会自动完成 HTTPS 配置并连接 ES。


✅ 最终架构效果

复制代码
[Node-1] ← 自动创建 CA/密码/token
     │
     ├─ [Node-2] ← 通过 reconfigure-node + token 加入
     ├─ [Node-3] ← 同上
     └─ [Kibana] ← 通过 kibana enrollment token 加入

所有通信:HTTPS + TLS + 认证,开箱即安全 🔐


💡 总结一句话

第一个节点:直接启动,自动安全初始化;
后续节点:先拿 token,再 reconfigure,最后启动。

这就是 Elasticsearch 8.x "Secure by default, simple to scale" 的最佳实践!

需要我提供一个 自动化 Shell 脚本模板 来一键完成多节点部署吗?😊

相关推荐
叶落阁主1 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
洛森唛2 天前
ElasticSearch查询语句Query String详解:从入门到精通
后端·elasticsearch
用户962377954483 天前
DVWA 靶场实验报告 (High Level)
安全
洛森唛3 天前
Elasticsearch DSL 查询语法大全:从入门到精通
后端·elasticsearch
数据智能老司机3 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机3 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954483 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star3 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954483 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher5 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全