一、搭建es集群
1、前置操作
如果已有单节点es,想要将其转换升级为集群,必须要删除/data下的node数据,即清空data中的信息
2、生成证书
仅在集群的第一台服务器node-01执行,其他服务器直接复制即可
注:配置了安全认证之后,访问es需要输入账号密码
- 进入bin目录
cd /usr/local/es/elasticsearch-8.4.3/bin
- 签发ca证书
此处会让你输入证书文件名、密码,我们什么哦度不输入,直接点回车就行,两次都是
命令执行完后,会在
elasticsearch-8.4.3
目录下生成一个ca证书:elastic-stack-ca.p12
./elasticsearch-certutil ca
- 用ca证书签发节点证书
以前面生成的ca证书,生成节点证书
需要输入的内容直接回车跳过(三次)
执行完成后悔在
elasticsearch-8.4.3
目录先生成:elastic-certificates.p12
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
- 将证书放到../config/certs 中
mkdir /usr/local/es/elasticsearch-8.4.3/config/certs
mv elastic-stack-ca.p12 elastic-certificates.p12 /config/certs/
- 配置文件配置证书信息
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.keystore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
ingest.geoip.downloader.enabled: false
3、集群配置
elasticsearch.yml
ES8版本的参数改变role.data:true不再使用,改为node.roles:
# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了
cluster.name: my-es-cluster
# 每一个节点的名称,必须不一样
node.name: es-node1
# http端口(使用默认即可)
http.port: 9200
# 主节点,作用主要是用于来管理整个集群,负责创建或删除索引,管理其他非master节点(此外,每一个es几点都要配置该信息,因为只有该信息配置为true的节点,才有机会在主节点挂掉之后成为新的master,如果为false,就相当于该节点在任何情况下都不可能成为master)es8之后使用node.roles
#node.master: true
# 数据节点,用于对文档数据的增删改查
#node.data: true
# 注意至少有两个具有选举master资格的节点
node.roles: [data, master]
# 集群列表
discovery.seed_hosts: ["192.168.xx.xxx", "192.168.xx.xxx", "192.168.xx.xxx"]
# 启动的时候使用一个master节点(当前节点的节点名称)
cluster.initial_master_nodes: ["es-node1", "es-node2", "es-node3"]
4、设置es访问的用户名密码
此处会有很多的密码需要设置,我们先都将其设置成一样的
root123
注:es的默认用户为:
elastic
,此处设置的密码:root123
,即登录名和密码
./elasticsearch-setup-passwords interactive
5、一个完整的集群配置信息
- elasticsearch.yml
一个可用集群配置
一个完整的,配置了证书的集群,测试无误
每个节点只需要修改node.name
信息,其他都不用动,node.roles
安实际情况配置,可相同
cluster.name: my-cluster
node.roles: [master, data]
# 每个节点不同即可
node.name: node-1
path.data: /usr/local/es/elasticsearch-8.4.3/data
path.logs: /usr/local/es/elasticsearch-8.4.3/logs
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.56.101", "192.168.56.106", "192.168.56.107"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
action.destructive_requires_name: false
# 证书相关
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.keystore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
ingest.geoip.downloader.enabled: false
3、启动各个节点
集群配置成功,启动各个es节点