前言
前面介绍了es7相关的一些用法。这一节我们来实践下集群高可用搭建,以及账号权限的配置。之前看了很多博主介绍的都是从主模式,主节点挂了集群也就不能对外服务了。
目前使用的最新版本7.6.0。账号配置需要破解x-pack包。(如果不需要设置密码可以忽略)
配置
集群间证书认证
不需要用户权限配置可以忽略。
## 在 $ES_HOME 目录下执行
bin/elasticsearch-certutil ca
## 直接回车默认是生成文件 elastic-stack-ca.p12
Please enter the desired output file [elastic-stack-ca.p12]:
...
# 生成 elastic-stack-ca.p12后,执行命令elasticsearch-certutil
bin/elasticsearch-certutil cert --ca $ES_HOME/elastic-stack-ca.p12
...
# 直接回车生成elastic-certificates.p12文件
# 然后将生成的文件拷贝到各个节点的config下
elasticsearch.yml
主节点:
# 集群名称
cluster.name: "es_cluster"
# 节点名称 master1
node.name: master1
# 是否可以成为master节点
node.master: true
# 是否允许该节点存储数据,默认开启
node.data: true
# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: ["0.0.0.0"]
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 集群发现的节点ip
discovery.seed_hosts: ["dc_es1","dc_es2","dc_es3"]
# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["dc_es1","dc_es2","dc_es3"]
# 数据仓储位置
path.data: /data/es/data
path.logs: /data/es/logs
# 备份数据存储路径
path.repo: ["/data/es/backup"]
# 用户权限配置,不止的用户的可以忽略,
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
# es 应用是不锁住jvm内存
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
如果你的集群是三个节点,需要高可用配置。那么其他两个节点的配置只需要修改下node.name,另外cluster.initial_master_nodes 允许为主节点的ip需要设置为单数,如果集群3个节点只配置了两个个initial_master_nodes,cluster.initial_master_nodes: ["dc_es1","dc_es2"],当主节点挂了就有用以下异常:
[2020-02-25T13:56:16,123][WARN ][o.e.c.c.ClusterFormationFailureHelper] [master2] master not discovered yet: have discovered [{
master2
}{
2GvgG6GvStmPR2Z68wkQeg}{
9jC8kh0gQuidUAMOoegSGA}{
dc_es3}{
dc_es3

本文详细介绍ES7集群高可用搭建及账号权限配置过程,包括集群间证书认证、elasticsearch.yml配置、密码设置验证等关键步骤,适用于追求稳定性的企业级应用场景。
最低0.47元/天 解锁文章
1万+





