Elasticsearch集群部署
需jdk环境
1.解压jdk安装包
[root@localhost opt]# tar xf jdk-8u191-linux-x64.tar.gz
[root@localhost opt]# mv jdk1.8.0_191 java
2.配置环境变量
vim /etc/profile
#Java
export JAVA_HOME=/opt/java
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=/opt/java/jre
3.执行profile文件
source /etc/profile
4.检查jdk
java -version
上传安装包
tar -zxvf elasticsearch-7.15.0-linux-x86_64.tar.gz -C /usr/local
cd /usr/local/
修改jvm.options配置,vim /elasticsearch-7.15.0/config
## 修改内存大小 ,内存小就设置成这样了
-Xms512m
-Xmx512m
修改node-1的elasticsearch.yml 配置文件
vim config/elasticsearch.yml
# 集群名称,三台集群,要配置相同的集群名称!!!
cluster.name: my-application
# 节点名称
node.name: node-1
# 是否有资格被选举为master,ES默认集群中第一台机器为主节点
node.master: true
# 是否存储数据
node.data: true
#最⼤集群节点数,为了避免脑裂,集群节点数最少为 半数+1
node.max_local_storage_nodes: 3
# 数据目录
path.data: /usr/local/node-1/data
# log目录
path.logs: /usr/local/node-1/logs
# 修改 network.host 为 0.0.0.0,表示对外开放,如对特定ip开放则改为指定ip
network.host: 0.0.0.0
# 设置对外服务http端口,默认为9200
http.port: 9200
# 内部节点之间沟通端⼝
transport.tcp.port: 9300
# 写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["172.18.0.130:9300", "172.18.0.137:9301", "172.18.0.138:9302"]
# 初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
# 设置集群中N个节点启动时进行数据恢复,默认为1
gateway.recover_after_nodes: 3
# 下面的两个配置在安装elasticsearch-head的时候会用到
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"
#关闭xpack
xpack.security.enabled: false
复制当前es构建其他数据节点
scp elasticsearch.yml root@172.18.0.137:/usr/local/elasticsearch-7.15.0/config/
修改node-2的elasticsearch.yml 配置文件
vim config/elasticsearch.yml
# 集群名称,三台集群,要配置相同的集群名称!!!
cluster.name: my-application
# 节点名称
node.name: node-2
# 是否有资格被选举为master,ES默认集群中第一台机器为主节点
node.master: true
# 是否存储数据
node.data: true
#最⼤集群节点数,为了避免脑裂,集群节点数最少为 半数+1
node.max_local_storage_nodes: 3
# 数据目录
path.data: /usr/local/node-2/data
# log目录
path.logs: /usr/local/node-2/logs
# 修改 network.host 为 0.0.0.0,表示对外开放,如对特定ip开放则改为指定ip
network.host: 0.0.0.0
# 设置对外服务http端口,默认为9200,可更改端口不为9200
http.port: 9201
# 内部节点之间沟通端⼝
transport.tcp.port: 9301
# 写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["172.18.0.130:9300", "172.18.0.137:9301", "172.18.0.138:9302"]
# 初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
# 设置集群中N个节点启动时进行数据恢复,默认为1
gateway.recover_after_nodes: 3
# 下面的两个配置在安装elasticsearch-head的时候会用到
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"
修改node-3的elasticsearch.yml 配置文件
# 集群名称,三台集群,要配置相同的集群名称!!!
cluster.name: my-application
# 节点名称
node.name: node-3
# 是否有资格被选举为master,ES默认集群中第一台机器为主节点
node.master: true
# 是否存储数据
node.data: true
#最⼤集群节点数,为了避免脑裂,集群节点数最少为 半数+1
node.max_local_storage_nodes: 3
# 数据目录
path.data: /usr/local/node-3/data
# log目录
path.logs: /usr/local/node-3/logs
# 修改 network.host 为 0.0.0.0,表示对外开放,如对特定ip开放则改为指定ip
network.host: 0.0.0.0
# 设置对外服务http端口,默认为9200,可更改端口不为9200
http.port: 9202
# 内部节点之间沟通端⼝
transport.tcp.port: 9302
# 写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["172.18.0.130:9300", "172.18.0.137:9301", "172.18.0.138:9302"]
# 初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
# 设置集群中N个节点启动时进行数据恢复,默认为1
gateway.recover_after_nodes: 3
# 下面的两个配置在安装elasticsearch-head的时候会用到
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"
#关闭xpack
xpack.security.enabled: false
#关闭xpack
xpack.security.enabled: false
创建ES存储数据和log目录,根据之前每个节点的配置文件内配置path进行创建或修改
mkdir -p /usr/local/node-1/data
mkdir -p /usr/local/node-1/logs
mkdir -p /usr/local/node-2/data
mkdir -p /usr/local/node-2/logs
mkdir -p /usr/local/node-3/data
mkdir -p /usr/local/node-3/logs
创建普通用户,由于ES需要使用非root用户来启动,所以下面创建一个普通用户
#创建elasticsearch用户组
groupadd elasticsearch
#创建新用户elasticsearch ,设置用户组为elasticsearch ,密码123456
useradd elasticsearch -g elasticsearch -p 123456
#授权,更改/elasticsearch-7.15.0文件夹所属用户及用户组为elasticsearch:elasticsearch
chown -R elasticsearch:elasticsearch /usr/local/elasticsearch-7.15.0/
#切换用户elasticsearch
su elasticsearch
9、给节点文件授权:
chown -R elasticsearch:elasticsearch /usr/local/node-1
chown -R elasticsearch:elasticsearch /usr/local/node-2
chown -R elasticsearch:elasticsearch /usr/local/node-3
10.启动
进入elasticsearch /bin目录下
./elasticsearch -d
报错修改
1.配置文件修改错误,此处注意
在/etc/security/limits.conf文件尾添加,此配置重启生效。(es为elasticsearch服务启动用户,此处可以用*号代替用户)
es hard nofile 65536
es soft nofile 65536
es soft nproc 65535
es hard nproc 65535
[root@test elasticsearch-7.15.0]# ulimit -Sn
[root@test elasticsearch-7.15.0]# ulimit -Hn
因为elasticsearch用户拥有的内存权限太小,至少需要262144。解决方案,切换到root用户下,在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
执行生效
/sbin/sysctl -p
配置文件权限问题,设置为elasticsearch启动用户
[root@test config]# chown es.es elasticsearch.keystore
数据目录权限问题,设置为elasticsearch启动用户
[root@test local]# chown es.es -R node-3/
访问IP:9200
访问IP:9201
访问IP:9202
查询集群状态命令:
[root@localhost local]# curl -XGET "http://192.168.80.63:9200/_cluster/health?pretty"
[root@localhost local]# curl -XGET “http://192.168.80.64:9200/_cluster/health?pretty”
[root@localhost local]# curl -XGET "http://192.168.80.65:9200/_cluster/health?pretty"
集群设置密码
- 修改elasticsearch.yml文件,三台服务器配置均修改
添加配置
#以下配置用于设置密码访问ES集群,如不需要可以不用
xpack.security.enabled: true
xpack.license.self_generated.type: basic
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
2. 生成 TLS 和身份验证
单独使用一个节点生成证书,证书会生成在config目录下,证书文件名为 elastic-certificates.p12;
进入es目录:
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
3. 将 config目录下的elastic-certificates.p12文件上传至其他2台服务器的config目录下
scp elastic-certificates.p12 root@192.168.80.64:/usr/local/elasticsearch-7.15.0/config/
scp elastic-certificates.p12 root@192.168.80.65:/usr/local/elasticsearch-7.15.0/config/
4.重启es服务
杀掉ES进程,关闭服务
再次启动es服务
cd /usr/local/elasticsearch-7.15.0
./elasticsearch -d
设置密码,在服务器1上执行命令(随后按照提示依次输入elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user这6个用户的密码,完成后数据会自动同步至其他2个节点。):
bin/elasticsearch-setup-passwords interactive
键入y 回车
并依次键入服务密码回车即可
再次在浏览器中访问ES,http://ip地址:9200,就可以看到需要用户名密码访问
查看集群状态命令:
curl -XGET "http://192.168.80.63:9200/_cluster/health?pretty" --user elastic:qwe123文章来源:https://www.toymoban.com/news/detail-849207.html
文章来源地址https://www.toymoban.com/news/detail-849207.html
到了这里,关于Elasticsearch集群部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!