一、备份前配置
要使用es(Elasticsearch) snapshot备份功能,首先需要在es的配置elasticsearch.yml文件中添加仓库地址,如:
path.repo: /mnt
本次使用nfs网络存储来进行存储备份文件,防止es所在机器故障,以容灾。
NFS server端建立共享存储: vim /etc/exports 添加:
/data/bak/testes-back 192.168.3.0/24(rw,all_squash)
重载NFS服务使配置生效:systemctl reload nfs
此处可参阅来看看网络存储NFS
二、数据备份
备份过程使用es snapshot模式进行备份操作,实际使用中均通过es rest api进行
1)新建数据备份目录
POST http:// localhost:9092/_snapshot/test_es_bak
{
"type": "fs",
"settings": {
"location": "test_es_bak", # 快照存储目录
"compress": true,
"max_snapshot_bytes_per_sec" : "20mb", # 每秒备份速度默认20m
"max_restore_bytes_per_sec" : "20mb" # 每秒恢复速度默认20m
}
}
2)创建备份快照
PUT http:// localhost:9092/_snapshot/test_es_bak/snapshot_1603958408
这里如果数据量大,备份时间就会较长,同理数据恢复也是如此。
3)查询所有的快照名称
GET http:// localhost:9092/_snapshot/test_es_bak/_all
4)依据特定快照名称恢复数据
注意:恢复数据时,需要关闭已经打开的索引
POST http:// localhost:9092/_snapshot/my_backup/snapshot_1603958408/_restore
三、实际使用
实际使用过程中,我们可以起一个定时任务,每天定时备份一次,由于snapshot越来越多时也会占用较大的磁盘空间,因此可以考虑保留近7天的快照。
在新增快照之前先删除7天之前的旧快照,释放磁盘空间。