点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
ES集群备份至NAS
1.1 准备工作(三节点)
NAS准备:
第一步:安装NFS和rpc
[root@localhost ~]# yum install -y nfs-utils
#安装nfs服务
[root@localhost ~]# yum install -y rpcbind
#安装rpc服务
第二步:启动服务和设置开启启动
[root@localhost ~]# systemctl start rpcbind #先启动rpc服务
[root@localhost ~]# systemctl enable rpcbind #设置开机启动
[root@localhost ~]# systemctl start nfs-server nfs-secure-server
启动nfs服务和nfs安全传输服务
[root@localhost ~]# systemctl enable nfs-server nfs-secure-server
[root@localhost ]# firewall-cmd --permanent --add-service=nfs
success #配置防火墙放行nfs服务
[root@localhost ]# firewall-cmd --reload
Success
第三步:配置共享文件目录,编辑配置文件
首先创建共享目录,然后在/etc/exports配置文件中编辑配置即可。
[root@localhost ] # mkdir es_backup
#创建public共享目录
[root@localhost ]# vi etc/exports
es_backup xxx.xxx.xxxx.0/24(rw)
[root@localhost ]# systemctl reload nfs
#重新加载NFS服务,使配置文件生效
新建挂载目录
mkdir /es_backup
查看共享
showmount -e xxx.xxx.xxxx.xxxx
挂载命令
mount -t nfs -o vers=3,proto=tcp,rsize=16384,wsize=1048576,hard,intr,timeo=600 xxx.xx.xxx.xxx:/es_backup /es_backup
检查
df -h
开机自动挂载 :vi etc/rc.d/rc.local 中 插入下面
mount -t nfs -o vers=3,proto=tcp,rsize=16384,wsize=1048576,hard,intr,timeo=600 192.168.2.10:/es_backup es_backup
批量写ES数据:
for i in {1..100};do
curl -XPUT -H "Content-Type: Application/json" \
http://xxx.xxx.xxx.xxx:9200/index-1/_doc/$i \
-d "{\"name\":\"tom_$i\",\"age\":\"$i\"}";done
vim /usr/local/elasticsearch-7.5.1/config/elasticsearch.yml
#备份(fs类型)
path.repo: ["/es_backup/es-test_bak"]
#重启集群
systemctl restart elasticsearch.service
1.3 创建fs类型的快照仓库(es_fs_repository)
仓库:
PUT _snapshot/es_fs_repository
{
"type": "fs",
"settings": {
"location": "/es_backup/es-test_bak",
"max_restore_bytes_per_sec": "1000mb",
"max_snapshot_bytes_per_sec": "1000mb",
"compress": true }
}
参数 | 简介 |
location | 指定了一个已挂载的目的地址 |
compress | 是否开启压缩。压缩仅对元数据进行(mapping 及settings), 不对数据文件进行压缩,默认为true |
chunk_ size | 传输文件时数据被分解为块,此处配置块大小,单位为字节,默认为null (无限块大小) |
max_snapshot_bytes_per_sec | 快照操作时节点间限速值,默认为40MB |
max_restore_bytes_per_ sec | 从快照恢复时节点间限速值,默认为40MB |
readonly | 设置仓库属性为只读,默认为false |
1.4 进行一个快照备份
备份:
参数 | 详解 |
wait_for_completion | 参数是可选项,默认情况下,快照命令会立即返回,任务在后台执行,如果想等待任务完成API才返回,则可以将wait_for_completion 参数设置为true,默认为false。 |
ignore_unavailable | 跳过不存在的索引。默认为false, 因此默认情况下遇到不存在的索引快照失败。 |
include_global_state | 不快照集群状态。默认为false。注意,集群设置和模板保存在集群状态中,因此默认情况下不快照集群设置和模板,但是一般情况下我们需要将这些信息一起保存。 |
全备份:
PUT _snapshot/es_fs_repository/snapshot_1?wait_for_completion=true
{
"indices": "*",
"ignore_unavailable": true,
"include_global_state": true
}
单/多索引备份:
PUT _snapshot/es_fs_repository/snapshot_2?wait_for_completion=true
{
"indices": "index-1,index-2",
"ignore_unavailable": true,
"include_global_state": true
}
快照和仓库删除:
#删除仓库es_fs_repository中的snapshot_2快照:
DELETE _snapshot/es_fs_repository/snapshot_2
#删除仓库:
DELETE _snapshot/es_fs_repository

1.5 设置定时备份作业

NAS恢复
恢复方式一:
场景:将索引index-1/index-2删除,利用备份进行恢复。
#查看索引
get /_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .slm-history-1-000001 PLWtYN6xT56mQrTYA9GmgQ 1 1 11 0 27.6kb 13.8kb
green open index-1 wZG8-5NUTja4AIxL5vrcAA 1 1 100 0 23.2kb 9.7kb
green open index-2 XeWdPx2kQsexRC3IoNlZaQ 1 1 100 0 64.4kb 32.2kb
green open .kibana_task_manager_1 ax4Kee4xTzaSyKKhPh1T9w 1 1 2 1 34.2kb 17.1kb
green open .apm-agent-configuration NBrJ3AvRQc-4xJNTBkkJGg 1 1 0 0 566b 283b
green open .kibana_1 _vZvwSgxQ3Kn2mjcjjfgQQ 1 1 28 3 49.4kb 24.7kb
#删除索引
DELETE index-1
DELETE index-2
get /_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .slm-history-1-000001 PLWtYN6xT56mQrTYA9GmgQ 1 1 11 0 27.6kb 13.8kb
green open .kibana_task_manager_1 ax4Kee4xTzaSyKKhPh1T9w 1 1 2 1 34.2kb 17.1kb
green open .apm-agent-configuration NBrJ3AvRQc-4xJNTBkkJGg 1 1 0 0 566b 283b
green open .kibana_1 _vZvwSgxQ3Kn2mjcjjfgQQ 1 1 28 3 49.4kb 24.7kb
#利用备份snapshot_2进行还原
POST _snapshot/es_fs_repository/snapshot_2/_restore
{
"indices": "index-1,index-2" ,
"ignore_unavailable": true
}
#查看索引,已经恢复
get /_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .slm-history-1-000001 PLWtYN6xT56mQrTYA9GmgQ 1 1 11 0 27.6kb 13.8kb
green open index-1 XA4JpySbQ2ynwzYpl-jy9g 1 1 100 0 42kb 21kb
green open index-2 -yjWbT-kQZqaRAPLZfSWcg 1 1 100 0 49.3kb 24.6kb
green open .kibana_task_manager_1 ax4Kee4xTzaSyKKhPh1T9w 1 1 2 1 34.2kb 17.1kb
green open .apm-agent-configuration NBrJ3AvRQc-4xJNTBkkJGg 1 1 0 0 566b 283b
green open .kibana_1 _vZvwSgxQ3Kn2mjcjjfgQQ 1 1 28 3 49.4kb 24.7kb
恢复方式二:
Kibana恢复:



再次查看是否恢复成功:

本文作者:郑金龙(上海新炬中北团队)
本文来源:“IT那活儿”公众号





