Elasticsearch集群部署

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文件尾添加,此配置重启生效。(eselasticsearch服务启动用户,此处可以用*号代替用户)

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"

集群设置密码

  1. 修改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上执行命令(随后按照提示依次输入elasticapm_systemkibanalogstash_systembeats_systemremote_monitoring_user6个用户的密码,完成后数据会自动同步至其他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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值