elasticsearch7.8.0索引备份到阿里云oss以及恢复

背景需求,阿里云新建了一套 elk 但是数据需要进行迁移备份,

解决方案使用 logstash 迁移很慢,100 多 g 的索引基本要一天才能迁移完成。

使用 oss 快照方式迁移,方便测试了下一个 100 多 g 的索引快照恢复只需要 50 分钟即可完成

但是阿里云的 es 插件 elasticsearch-repository-oss 在安装好后使用报错

{

  "error" : {

    "root_cause" : [

      {

        "type" : "repository_exception",

        "reason" : "[my_backup] repository type [oss] does not exist"

      }

    ],

    "type" : "repository_exception",

    "reason" : "[my_backup] repository type [oss] does not exist"

  },

  "status" : 500

}

网上找了下资料发现其实 oss 与 s3 的接口是兼容的所以安装 s3 插件进行迁移

注意需要 oss 授权所有权限

/data/elasticsearch/bin/elasticsearch-plugin install repository-s3
#安装成功后导入 oss key
/data/elasticsearch/bin//elasticsearch-keystore add s3.client.default.access_key
/data/elasticsearch/bin//elasticsearch-keystore add s3.client.default.secret_key

安装完成后依次重启 es 集群。

新旧集群创建 my_oss_repo 的快照仓库注意需要使用 s3 类型,

bucket 为你的 oss 存储桶

 
{
"type": "s3",
"settings": {
"endpoint": "oss-cn-shenzhen-internal.aliyuncs.com",
"bucket": "g6k-log-es-snapshot",
"base_path": "es-backup",
"compress": true
}
}

创建一个快照:名为 snapshot_g6k_nginx,将 prod-applogs-g6k-nginx-2025.05.06 索引备份到已经创建好的仓库 my_oss_repo 中。

 
PUT _snapshot/my_oss_repo/snapshot_g6k_nginx?wait_for_completion=true
{"indices": "prod-applogs-g6k-nginx-2025.05.06",
"ignore_unavailable": true,
"include_global_state": false
}

备份多个索引到仓库中

 
# 备份 4 月所有索引到新的快照
PUT _snapshot/my_oss_repo/snapshot_g6k_202504?wait_for_completion=true
{"indices": "prod-applogs-g6k-nginx-2025.04.*",
"ignore_unavailable": true,
"include_global_state": false
}

使用命令查看备份进度

 
GET _snapshot/my_oss_repo/snapshot_g6k_202504
"start_time" : "2025-05-14T07:59:33.939Z",
"start_time_in_millis" : 1747209573939,
"end_time" : "1970-01-01T00:00:00.000Z",

end_time 大于 start_time 就是备份成功了

恢复数据

 

POST _snapshot/my_oss_repo/snapshot_g6k_nginx/_restore
{"indices": "prod-applogs-g6k-nginx-2025.05.06",
"ignore_unavailable": true,
"include_global_state": false
}

 完整yaml格式请参考​​​​​​elasticsearch7.8.0索引备份到阿里云oss以及恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值