0%

ElasticSearch7.x 高可用集群

集群环境准备

IP 监听端口 主机名 系统 es版本
10.0.2.76 9200/9300 es01 CentOS 7 7.15.0
10.0.2.77 9200/9300 es02 CentOS 7 7.15.0
10.0.2.78 9200/9300 es03 CentOS 7 7.15.0

安装

1
yum 安装 

创建集群目录

每一台服务器都需要操作。

1
2
3
4
5
创建集群存储目录
mkdir /data/elasticsearch/{data,logs} -R

授权
chown -R elasticsearch /data/elasticsearch

节点es01配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#配置es的集群名称,同一个集群中的多个节点使用相同的标识
#如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: jusda-es-prod

#节点名称
node.name: es01

#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3

#数据存储路径
path.data: /data/elasticsearch/data
#日志存储路径
path.logs: /data/elasticsearch/logs

#节点所绑定的IP地址,并且该节点会被通知到集群中的其他节点
#通过指定相同网段的其他节点会加入该集群中 0.0.0.0任意IP都可以访问elasticsearch
network.host: 0.0.0.0

#对外提供服务的http端口,默认为9200
http.port: 9200

#内部节点之间沟通端口
transport.tcp.port: 9300

#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["10.0.2.76:9300","10.0.2.77:9300","10.0.2.78:9300"]

#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["es01", "es02","es03"]

#ES默认开启了内存地址锁定,为了避免内存交换提高性能。但是Centos6不支持SecComp功能,启动会报错,所以需要将其设置为false
bootstrap.memory_lock: false

# 是否支持跨域
http.cors.enabled: true

# *表示支持所有域名
http.cors.allow-origin: "*"

节点es02配置

只修改节点名称

1
2
#节点名称
node.name: es02

节点es03配置

只修改节点名称

1
2
#节点名称
node.name: es03

启动集群环境

1
systemctl start elasticsearch

查看集群

查看集群节点

查看集群节点:[http://IP:9201/_cat/nodes?v]

注:若已经设置了账密则需要输入账密

1
2
# curl -u 用户名:密码 -XGET 'http://IP:9201/_cat/nodes?v'
curl -u elastic:1234567 -XGET 'http://localhost:9201/_cat/nodes?v'

查看集群状态

查看集群状态:[http://IP:9201/_cluster/stats?pretty]

添加密码

单机版

添加配置

1
2
3
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.authc.accept_default_password: true

设置密码

1
2
3
4
5
6
7
cd  /usr/share/elasticsearch/bin

//生成随机密码
elasticsearch-setup-passwords auto

//设置默认账号密码
elasticsearch-setup-passwords interactive

集群版

生成证书
1
/usr/share/elasticsearch/bin/elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 -pass ""
拷贝到另外两台服务器
1
2
3
4
```

##### 分别修改每台的配置并启动

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12

1
2
3

##### 设置密码(要在配置修改完并启动集群之后设置密码)

cd /usr/share/elasticsearch/bin

//生成随机密码
elasticsearch-setup-passwords auto

//设置默认账号密码
elasticsearch-setup-passwords interactive