暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ES集群备份恢复

IT那活儿 2025-04-21
336

点击上方“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=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

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?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恢复:

再次查看是否恢复成功:

 

END


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

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

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论