ES集群备份恢复

艺帆风顺 发布于 2025-04-20 26 次阅读


点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

ES集群备份至NAS

1.1 准备工作(三节点)

NAS准备:

第一步:安装NFSrpc

[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-cm--permanent --add-service=nfssuccess #配置防火墙放行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
1.2 修改配置&重启集群(三节点)
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?vhealth status index                    uuid pri rep docs.count docs.deleted store.size pri.store.sizegreen open   .slm-history-1-000001    PLWtYN6xT56mQrTYA9GmgQ 1   1         11            0     27.6kb 13.8kbgreen open   index-1                  wZG8-5NUTja4AIxL5vrcAA 1   1        100            0     23.2kb 9.7kbgreen open   index-2                  XeWdPx2kQsexRC3IoNlZaQ 1   1        100            0     64.4kb 32.2kbgreen open   .kibana_task_manager_1 ax4Kee4xTzaSyKKhPh1T9w 1   1          2            1     34.2kb 17.1kbgreen open   .apm-agent-configuration NBrJ3AvRQc-4xJNTBkkJGg 1   1          0            0       566b           283bgreen open   .kibana_1 _vZvwSgxQ3Kn2mjcjjfgQQ 1   1         28            3     49.4kb 24.7kb#删除索引DELETE /index-1DELETE /index-2get /_cat/indices?vhealth status index                    uuid pri rep docs.count docs.deleted store.size pri.store.sizegreen open   .slm-history-1-000001    PLWtYN6xT56mQrTYA9GmgQ 1   1         11            0     27.6kb 13.8kbgreen open   .kibana_task_manager_1 ax4Kee4xTzaSyKKhPh1T9w 1   1          2            1     34.2kb 17.1kbgreen open   .apm-agent-configuration NBrJ3AvRQc-4xJNTBkkJGg 1   1          0            0       566b           283bgreen 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?vhealth status index                    uuid pri rep docs.count docs.deleted store.size pri.store.sizegreen open   .slm-history-1-000001    PLWtYN6xT56mQrTYA9GmgQ 1   1         11            0     27.6kb 13.8kbgreen open   index-1                  XA4JpySbQ2ynwzYpl-jy9g 1   1        100            0       42kb 21kbgreen open   index-2                  -yjWbT-kQZqaRAPLZfSWcg 1   1        100            0     49.3kb 24.6kbgreen open   .kibana_task_manager_1 ax4Kee4xTzaSyKKhPh1T9w 1   1          2            1     34.2kb 17.1kbgreen open   .apm-agent-configuration NBrJ3AvRQc-4xJNTBkkJGg 1   1          0            0       566b           283bgreen open   .kibana_1 _vZvwSgxQ3Kn2mjcjjfgQQ 1   1         28            3     49.4kb 24.7kb

恢复方式二:

Kibana恢复:

再次查看是否恢复成功:

 

END


本文作者:郑金龙(上海新炬中北团队)

本文来源:“IT那活儿”公众号