ElasticSearch集群部署

 ElasticSearch集群部署

一、 准备工作
1.1、修改Linux句柄数
## 查看当前最大句柄数
sysctl -a | grep vm.max_map_count

## 修改句柄数
vi /etc/sysctl.conf

## 添加以下配置
vm.max_map_count=262144


## 配置生效
sysctl -p
 
1.2、关闭swap
因为ES的数据大量都是常驻内存的,一旦使用了虚拟内存就会导致查询速度下降,一般需要关闭swap,但是要保证有足够的内存。

## 临时关闭
swapoff -a

## 永久关闭
vi /etc/fstab

## 注释掉swap这一行的配置

#/dev/mapper/centos-swap swap                    swap    defaults        0 0
 
1.3、修改最大线程数
因为ES运行期间可能创建大量线程,如果线程数支持较少可能报错。

vi /etc/security/limits.conf

## 在文件末尾添加如下配置
* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

elsearch soft nproc 125535

elsearch hard nproc 125535
 
重新生效

Reboot


 1.4、创建elsearch用户
## ElasticSearch不能以Root身份运行, 需要单独创建一个用户, 并赋予目录权限
groupadd elsearch

useradd elsearch -g elsearch -p elsearch
chown -R elsearch:elsearch /home/elsearch
 
1.5、关闭防火墙
systemctl stop  firewalld.service
systemctl disable  firewalld.service
 

4.4、改集群配置文件
•    linux1

vi elasticsearch-7.12.1/config/elasticsearch.yml

## 集群名称
cluster.name: my-application
## 当前该节点的名称
node.name: node-1
## 是不是有资格竞选主节点
node.master: true
## 是否存储数据
node.data: true
## 最大集群节点数
node.max_local_storage_nodes: 3
## 数据存档位置
path.data: /home/elsearch/elasticsearch-7.12.1/data
## 日志存放位置
path.logs: /home/elsearch/elasticsearch-7.12.1/log
## 绑定IP地址
network.host: 0.0.0.0
## 指定服务访问端口
http.port: 9200
## 指定API端户端调用端口
transport.tcp.port: 9300
## 集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
## es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["10.15.14.46","10.15.14.47","10.15.14.48"]
## 当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
## 其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
## 如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
## 在群集完全重新启动后阻止初始恢复,直到启动N个节点
## 简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
## 禁用安全配置,否则查询的时候会提示警告
#xpack.security.enabled: false
## 开启跨域访问支持,默认为false
http.cors.enabled: true
## 跨域访问允许的域名, 允许所有域名
http.cors.allow-origin: "*"


#以下配置用于设置密码访问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
 

4.5、改java内存
Vi  /home/elsearch/elasticsearch-7.12.1/config/jvm.optins


-Xms8g
-Xmx8g
两个改大一点
4.6、启动集群节点
分别启动三个ES服务
## linux1
[elsearch@linux1 ~]$ /home/elsearch/elasticsearch-7.12.1/bin/elasticsearch -d


4.7、添加用户名密码

开启密码访问
在服务器1上生成 TLS 和身份验证,将会在 config 下生成 elastic-certificates.p12 文件,将此文件传到其他两个节点的 config 目录,注意文件权限

cd /data/elasticsearch-6.8.10
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
将 config目录下的elastic-certificates.p12文件上传至其他2台服务器的config目录下。

重启ElasticSearch服务,3台服务器都需要执行:

设置密码,在服务器1上执行命令:

bin/elasticsearch-setup-passwords interactive

随后按照提示依次输入elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user这6个用户的密码,完成后数据会自动同步至其他2个节点。

再次在浏览器中访问ES,http://ip地址:9200,就可以看到需要用户名密码访问了。
 

Linxu共享
1.1确认服务端系统是否已安装nfs
rpm -qa nfs-utils rpcbind
#安装路径下的所有rpm包

rpm -Uvh *.rpm --nodeps –f

D:\soft\es\nfs


2.NFS 配置及使用
2.1我们在服务端创建一个共享目录/data/backup/db,或者直接使用想要共享的目录,作为客户端挂载的远端入口,然后设置权限。
mkdir -p /data/backup/db
chmod 777 /data/backup/db
2.2然后,修改 NFS 配置文件/etc/exports
 vim /etc/exports

/data/backup/db 10.15.14.*(rw,sync,insecure,no_subtree_check,no_root_squash)

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 
/data/backup/db 文件目录设置为允许 IP 为 10.0.0.2的客户端挂载。
 2.3先启动 RPC 服务。
service rpcbind start

# 或者使用如下命令亦可

 /bin/systemctl start rpcbind.service

# 查看 NFS 服务项 rpc 服务器注册的端口列表

rpcinfo -p localhost 
 
2.4再启动nfs服务
# 启动 NFS 服务

service nfs start

# 或者使用如下命令亦可

/bin/systemctl start nfs.service

# 启动 NFS 服务后 rpc 服务已经启用了对 NFS 的端口映射列表

 rpcinfo -p localhost
 
11
2.5在服务端看下是否正确加载了设置的/etc/exports配置。
 showmount -e localhost 


8.在服务器端和客户端启动NTFS服务并设置开机启动
    systemctl start rpcbind 
systemctl start nfs
systemctl enable rpcbind 
systemctl enable nfs

3.NFS 测试
3.1最后,在另一台 Linux 虚拟机上测试一下,是否能够正确挂载吧。首先,我们可以在客户端查看下 NFS 服务端 (服务端 IP 为:10.0.0.1) 设置可共享的目录信息。
 showmount -e 10.15.14.46

 
3.2然后,在客户端创建挂在目录/share
 mkdir -p /share
1
3.3最后,挂载远端目录到本地/share目录。
mount 10.15.14.46:/data/backup/db /share

自动启/etc/fstab
192.168.1.222:/data/backup/db            /share       nfs    defaults    0     0

 df -h | grep 10.0.0.1

3.4在客户端测试是否能访问服务器端/data/backup/db目录下的文件
 ll  /share
1
3.5最后,如果客户端要卸载 NFS 挂载的话,使用如下命令即可。
umount /share

2 修改elasticsearch配置文件
修改 elasticsearch.yml 配置文件,增加如下配置:
path.repo: ["/share"]

重启  

创建备份仓库
作者所有。未经允许禁止转载,如需转载请联系作者获得授权。

curl -XPUT "http://10.15.14.49:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d '{  "type": "fs",  "settings": {    "location": "/share2"  }}'

curl -XGET 'http://10.15.14.49:9200/_snapshot?pretty'
 
curl -XDELETE  http://10.15.14.49:9200/_snapshot/my_backup/bak1

2备份

curl -XPUT "http://10.15.14.49:9200/_snapshot/my_backup/bak1?wait_for_completion=true"

curl -XPUT http://10.15.14.49:9200/_snapshot/my_backup/bak1?wait_for_completion=true"
   '{"indices":"my_index"}'


3 压缩

tar zcvf all.tar.gz *


 5 还原
 

 
curl -XPOST "http://10.15.14.49:9200/_snapshot/my_backup/bak1/_restore?wait_for_completion=true" -H 'Content-Type: application/json' -d  '{"indices":"zhuanli_search_info_v2"}'


 
curl -XPOST "http://10.15.14.49:9200/_snapshot/my_backup/bak1/_restore?wait_for_completion=true" -H 'Content-Type: application/json' -d  '{"indices":"zhuanli_search_info_v2,zhuanli_search_sim_v2"}'


==============================================================================================

1. 创建存储库
curl -XPUT  -u'elastic:mZy8uIh3!Cy'  "http://192.168.211.43:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d '{ "type": "fs",  "settings": { "location": "/esbak"  }}'

2. 删除--快照 

curl -XDELETE  -u'elastic:mZy8uIh3!Cy'  http://192.168.211.43:9200/_snapshot/my_backup/bak1
3. 备份--快照

curl -XPUT   -u'elastic:mZy8uIh3!Cy'  "http://192.168.211.43:9200/_snapshot/my_backup/bak1?wait_for_completion=true" -H 'Content-Type: application/json'   -d  '{ "indices": "zhuanli_search_info_v2,z_search_sim_v2"}'

4. 压缩

tar zcvf all.tar.gz *
tar -xf all.tar.gz

unrar x all.rar


 
5. 还原 
 
curl -XPOST "http://10.15.14.49:9200/_snapshot/my_backup/bak1/_restore?wait_for_completion=true" -H 'Content-Type: application/json' -d  '{"indices":"z_search_info_v2"}'

 
curl -XPOST "http://10.15.14.49:9200/_snapshot/my_backup/bak1/_restore?wait_for_completion=true" -H 'Content-Type: application/json' -d  '{"indices":"z_search_info_v2,zhuanli_search_sim_v2"}'


 

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值