Elasticsearch学习笔记(六)使用集群令牌将新加点加入集群

随着业务的增长,陆续会有新的节点需要加入集群。当我们在集群中的某个节点上使用命令生成令牌时会出现报错信息。

复制代码
# 生成令牌
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

出现报错信息:

复制代码
Unable to create enrollment token for scope [node]

ERROR: Unable to create an enrollment token. Elasticsearch node HTTP layer SSL configuration Keystore doesn't contain any PrivateKey entries where the associated certificate is a CA certificate, with exit code 73

从上面的报错信息来看,是因为当前节点的keystore中不包含CA证书,所以要解决这个问题的思路就是为keystore添加CA证书。

1.安装keytool

因为接下来的操作需要使用到keytool这一工具,首先安装一下这个工具。

复制代码
apt install -y openjdk-21-jre-headless

由于当前我们通过deb包安装的jdk的版本是21所以安装keytool工具时我选择的版本也是21.如果你不知道你通过deb安装elasticsearch时自带的jdk版本,可以使用下面的命令查看。

复制代码
/usr/share/elasticsearch/jdk/bin/java --version

💁‍♂ 也可以不用安装,我也是安装完才发现的,其实在/usr/share/elasticsearch/jdk/bin/目录下已经有这个工具了。

2.向keystore中添加证书

使用下面的命令向当前节点的keystore中添加证书。

复制代码
keytool -importkeystore -destkeystore <filename-http-PKCS12> -srckeystore <filename-PKCS12-contains-CA-Cert.p12> -srcstoretype PKCS12

下面是我的命令,大家可以参考我的命令根据自己的情况修改和<filename-PKCS12-contains-CA-Cert.p12>的名称。

复制代码
/usr/share/elasticsearch/jdk/bin/keytool -importkeystore -destkeystore /etc/elasticsearch/certs/http.p12 -srckeystore /usr/share/elasticsearch/elastic-stack-ca.p12 -srcstoretype PKCS12

🔑 http.p12就是前面通过手动模式生成的。

🔑 elastic-stack-ca.p12文件是通过elasticsearch自带的CA工具生成的CA文件。

3.生成令牌

完成上面的操作之后,再次生成令牌。

复制代码
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

也可以为kibana节点生成令牌。

复制代码
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

你会发现命令都不报错了。

4.将新节点加入集群

首先在新节点上安装好elasticsearch,然后修改新节点elasticsearch的配置文件,只需要修改以下内容即可。

复制代码
cluster.name: es-cluster
node.name: node-5
network.host: 192.168.50.11
http.port: 9200
cluster.initial_master_nodes: ["192.168.50.11"]

🖊 这里我的使用了第五个节点,因为第四个节点我做实验没有截图。

使用令牌将新节点加入集群。

复制代码
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token>

然后启动新节点。

复制代码
systemctl start elasticsearch

从上图来看没有报错信息,我们的新节点已经启动成功。到kibana中查看节点信息,你会发现新节点已经加入到集群了,是不是很赞啊?

好了,今天的教程虽然有点短,但是干货满满啊,希望爱学习的同学可以按照我的教程走几遍,这样你才能对集群的搭建有比较深刻的认识。我为了写好这个教程,整个国庆长假都没有休息呢,反反复复的将集群安装了十几次,加油吧少年,如果你不努力就会面临着被淘汰的命运了。

下面是我为卸载elasticsearch写的一个卸载脚本,大家在卸载elasticsearch时使用我这个脚本就能一键卸载干净了。

复制代码
#!/bin/bash


apt purge -y elasticsearch

rm -rf /var/lib/elasticsearch
rm -rf /etc/elasticsearch
rm -rf /usr/share/elasticsearch


相关推荐
FakeOccupational30 分钟前
【电路笔记 信号】DBPSK 波形查找表+脉冲成形(升余弦+根升余弦滤波)
开发语言·笔记
传奇开心果编程1 小时前
【SwiftUI提高练中学】第13课 实时活动与灵动岛:ActivityKit 实战
学习·ui·ios·swiftui·swift
欣欣之王来了1 小时前
Python入门:什么是Python以及为什么选择它
学习·架构·面向对象·项目·python教程
dadaobusi2 小时前
pcie原子操作和nvme原子操作
学习
sunshine22 girl2 小时前
Java学习五 面向对象高级5 内部类1
java·学习
Sayai3 小时前
Elasticsearch 日志检索 DSL 实战:时间范围查询、字段去重、分钟级统计与最新日志获取
大数据·运维·elasticsearch·搜索引擎·日志分析
Horn Still Sounds4 小时前
IMX6ULL裸机|I2C通信协议 + ADC模数转换学习笔记
arm开发·笔记·单片机·嵌入式硬件
每天题库4 小时前
架子工脚手架工题库:安全操作考点与模拟题练习指南
学习·安全·考试·题库·考证
yangmu32035 小时前
Codex 提示词优化教程:用四要素把模糊需求变成可执行任务
人工智能·学习
无敌贵点大王6 小时前
RTThread学习记录13——关于要使用一个外设,RTThread与cubemx到底要怎么配合?
c语言·stm32·学习·rtthread