1. 安装curator工具
下面是我离线安装的过程
https://blog.csdn.net/weixin_43736084/article/details/121775484?spm=1001.2014.3001.5501
2.使用fs建立es存储库
我们使用NFS,下面是官网给出的几种仓库类型
2.1 fs建立存储库的注意事项
注意事项,要不然后面创建仓库会失败:
- 各台机器之间使用的用户的uid和gid必须一样(启动es的用户),我这里uid=1000 gid=1003,不一样需要进行修改
查看:
# 各台机器都是一样的1000和1003
[root@localhost yuantek]# id es
uid=1000(es) gid=1003(xyc) groups=1003(xyc)
修改:
usermod -u 1000 es
groupmod -g 1003 es
2.2 NFS建立共享文件夹
在某一台节点上创建目录, 注:快照数据会全部写入到当前节点的当前目录下,并不是分布式的,注意磁盘空间
# 来查看下所要备份的索引的大小,我这里1.1T的大小
GET /_cat/indices?v
green open xxxx RGagjw1FSnSB5Y38kV-JaF 12 1 154756020 34013577 1.1tb 567.3gb
- 创建目录
[root@localhost ~]# mkdir /chun/snapshot -R es:es如果已经创建了好了,就修改权限
[root@localhost ~]# chown es:es /chun/snapshot
- 编辑 nfs 配置文件
[root@localhost /]# cat /etc/exports
/chun/snapshot *(insecure,rw,sync,no_root_squash,anonuid=1000,anongid=1003)
- 查看共享目录和状态
[root@localhost /]# exportfs -rv
exporting *:/chun/snapshot
4.其他节点挂在共享目录:(在其他节点上执行)
在(192.168.2.132,192.168.2.133上分别执行)[root@localhost ~]# mount -t nfs 192.168.2.131:/chun/snapshot /chun/snapshot
5.开机挂载(因为开机后失效)
开机挂载NFS目录(在其他节点上执行)#编辑fstab文件
[root@localhost ~]# cat /etc/fstab |grep nfs
192.168.2.131:/chun/snapshot /chun/snapshot nfs defaults,_netdev 0 0
2.3 修改ES配置文件,每台节点都加入
添加存储库路径,添加:path.repo: ["/chun/snapshot"]
[root@localhost ~]# cat /opt/elasticsearch-6.5.1/config/elasticsearch.yml |grep path.repo
path.repo: ["/chun/snapshot"]
3.3 重启ES集群,使配置生效
1.最好是一台一台重启,防止es重新索引时间过长,导致集群长时间red
2.关闭分片
PUT /_cluster/settings
{"transient": {"cluster.routing.allocation.enable":"none"}
}
3.kill掉es进程
jps -l |grep Elastic |awk '{print $1}' |xargs kill -9
4.重启es
su es;./elasticsearch -d
5.开启分片
PUT /_cluster/settings
{"transient": {"cluster.routing.allocation.enable":"all"}
}
6.等待集群green后,重复上述步骤,重启其他节点,master最后再重启就行
3.4 创建快照库
location如果是相对路径就是在path.repo配置的目录下创建快照库文件
如果是绝对路径父目录也要是path.repo,/chun/snapshot/chun_backup
PUT /_snapshot/chun_backup
{"type": "fs","settings": {"location": "chun_backup","compress": true}
}
参数介绍,根据实际情况选择,默认速率是20MB
{"type": "fs", #共享文件夹"settings": {"location": "chun_backup", #存储库位置"max_restore_bytes_per_sec":"10mb", #恢复最大速率"compress":"true", #是否压缩"max_snapshot_bytes_per_sec":"10mb", #创建最大速率"chunk_size":"100mb" #压缩块大小
}
查看快照库
POST /_snapshot/chun_backup/_verify
3.5 curator备份索引
工具安装在最上面
文件如何写参照官网配置,下面是我实际使用的:
创建curator.yml文件
---
# Remember, leave a key empty if there is no value. None will be a string,
# # not a Python "NoneType"
client:#es集群iphosts:- 192.68.2.131- 192.68.2.132- 192.68.2.133port: 9201url_prefix:use_ssl: Falsecertificate:client_cert:client_key:ssl_no_validate: Falseusername: elasticpassword: chunchuntimeout: 30master_only: Falselogging:loglevel: INFO#日志路经logfile: /chun/curator-5.8.4/log/run.loglogformat: defaultblacklist: ['elasticsearch', 'urllib3']
创建action.yml文件
actions:1:action: snapshotdescription: >-Back up the index, and then solve the inconsistency between ES and HBase data.options:repository: chun_back# Leaving name blank will result in the default 'curator-%Y%m%d%H%M%S'name: chun_back_2021-12-09wait_for_completion: True# max_wait: 3600# wait_interval: 10ignore_unavailable: Falseinclude_global_state: Truepartial: Falseskip_repo_fs_check: Falsefilters:- filtertype: patternkind: prefixvalue: 'chun'
执行:
命令:
curator --config config.yml action.yml**最好在后台执行,防止备份时间长想要关闭终端导致失败,使用screen建立一个后台终端
[root@localhost ~]# screen -S esbak执行备份命令
[root@localhost curator-5.8.4]# curator --config curator.yml action.yml退出此终端
按快捷键 ctrl + a + d查看创建的screen终端
[root@localhost ~]# screen -ls
There is a screen on:37910.esbak (Detached)
1 Socket in /var/run/screen/S-root.重新进入
[root@localhost ~]# screen -r esbak
至此整个备份过程就结束了。