elasticsearch集群搭建

一、搭建es集群

查看本章前请先查看我的上一篇文章elasticsearch安装使用,基础就不过多介绍

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节点

你可能感兴趣的:(elasticsearch集群搭建)