linux下安装Elasticsearch集群
摘要
-
本文介绍如何在linux下安装Elasticsearch集群(三节点)
-
Elasticsearch版本8.17.3
-
单节点安装参考linux下安装Elasticsearch,本文在此基础上完成集群安装
集群安装
-
三个节点分别安照单节点的安装方式完成下载,用户配置,环境变量配置,系统参数配置,等等。
-
任选一个节点作为集群的master节点,我们命名为
node-1
,其它节点命名为node-2
和node-3
-
先配置
node-1
节点的配置文件
1 | # 集群名称 |
-
配置
node-2
节点的配置文件
1 | # 集群名称 |
-
配置
node-3
节点的配置文件
1 | # 集群名称 |
-
启动
node-1
,启动成功后我们会在日志中看到如下安全认证信息信息,记录其中的加入集群的节点的token信息
1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
-
token信息有效时间只有30分钟,超时后可以使用如下命令重新生成新的token
1 | # 进入node-1节点的ES安装目录,此命令会生成新的节点注册令牌 |
-
启动
node-2
节点,启动时要带上token信息,node-3
与此一样。这里要注意,只有第一次加入集群时启动才需要带上注册令牌,后续启动不需要token信息
1 | # 进入node-2节点的ES安装目录,此命令会启动ES节点,并加入到集群中 |
加入集群失败
- 在执行
bin/elasticsearch --enrollment-token <token>
时有可能会遇到如下异常:
1 | ERROR: Aborting auto configuration because the node keystore contains password settings already, with exit code 78 |
- 这通常意味着节点的
keystore
已经包含了密码设置,因此自动配置过程被中止。 - 产生这种错误的原因大概率是当前ES是从已经安装好的服务器上拷贝过来的,而不是全新安装的,此时我们除了需要清空
data
目录外,还需要删除keystore
中的密码
1 | # 查看keystore中的密码 |
-
再次执行
bin/elasticsearch --enrollment-token <token>
即可。 -
另外还可能遇到如下报错:
1 | ERROR: Aborting enrolling to cluster. Could not communicate with the node on any of the addresses from the enrollment token. All of [10.250.0.239:9200] were attempted., with exit code 69 |
- 这是由于token过期了,重新生成新的token即可
-
启动成功后会在
node-2
的配置文件中看到如下配置信息
1 | #----------------------- BEGIN SECURITY AUTO CONFIGURATION ----------------------- |
验证集群状态
-
启动完成后,可以通过如下命令查看集群状态:
1 | # 查看集群状态 |
重要说明
-
集群一旦创建完成,则至少需要两个节点运行才能保证集群可用性,否则集群将无法运行。
-
如果
node-1
节点挂了,集群中剩下的两个节点会重新选择一个新的master
节点,不会影响集群的可用性。 -
一旦关闭
node-1
,则重新启动node-1
节点前要修改其配置文件,否则无法启动成功。
1 | # 注释掉该配置 |
Kibana关联ES集群
-
Kibana 关联单节点ES参考 linux下安装Kibana,在此基础上对配置文件进行如下修改:
1 | # 关联集群的节点地址,将集群内所有节点的地址都配置到该字段中 |
-
重启Kibana
-
只要保证集群内至少有两个ES节点工作正常,即可正常访问Kibana
nginx反向代理ES集群
1 | vim /etc/nginx/conf.d/es.conf # 添加如下内容 |