前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入了解Elasticsearch:管理快照操作指南

深入了解Elasticsearch:管理快照操作指南

原创
作者头像
洛秋_
发布2023-12-12 10:29:44
5291
发布2023-12-12 10:29:44
举报
文章被收录于专栏:洛秋的运维之路

引言

  在 Elasticsearch 中,有效地管理快照和使用快照生命周期管理(SLM)是确保数据备份和恢复的关键步骤。本节将提供删除快照、配置 SLM 策略以及执行自动备份的实用操作和示例。通过这些步骤可以更好地保护数据,应对意外数据丢失或系统故障。

删除快照

通过删除快照 API,您可以从存储库中删除指定的快照。以下是删除单个或多个快照的示例:

代码语言:shell
复制
curl -X DELETE -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_1?pretty"
curl -X DELETE -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_2,snapshot_3?pretty"
curl -X DELETE -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snap*?pretty"

如果在创建快照时发生错误,您可以使用此 API 取消错误启动的快照操作。

SLM:管理快照生命周期

快照生命周期管理(SLM)允许您自动执行快照,并设置了时间、频率和保留策略。通过 SLM CRUD API,您可以构建和管理快照策略。以下是 SLM 的一些关键操作:

  • 停止和重新启动 SLM: 您可以暂时暂停自动备份,以执行升级或其他维护操作。
使用 SLM 自动执行备份的教程
1. 创建存储库

首先,您需要创建一个存储库来保存快照。以下是创建存储库的示例:

代码语言:shell
复制
curl -X PUT -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup?pretty" -H 'Content-Type: application/json' -d'
{
  "type": "fs",
  "settings": {
    "location": "my_autobackup_location"
  }
}
'
2. 设置快照策略

然后,设置快照策略,包括计划、名称、存储库、索引配置和保留策略。以下是设置夜间快照策略的示例:

代码语言:shell
复制
curl -X PUT -u undefined:$ESPASS "localhost:9200/_slm/policy/nightly-snapshots?pretty" -H 'Content-Type: application/json' -d'
{
  "schedule": "0 30 14 * * ?", 
  "name": "<nightly-snap-{now/d}>", 
  "repository": "my_backup", 
  "config": { 
    "indices": ["*"] 
  },
  "retention": { 
    "expire_after": "30d", 
    "min_count": 5, 
    "max_count": 50 
  }
}
'
3. 测试快照策略

您可以立即执行配置,而不必等待计划运行。以下是强制执行夜间快照策略的示例:

代码语言:shell
复制
curl -X POST -u undefined:$ESPASS "localhost:9200/_slm/policy/nightly-snapshots/_execute?pretty"

然后,您可以检查策略执行的结果:

代码语言:shell
复制
curl -X GET -u undefined:$ESPASS "localhost:9200/_slm/policy/nightly-snapshots?human&pretty"
安全性和 SLM

为了增加安全性,您可以创建不同的角色,以限制对 SLM 相关操作的访问。以下是创建 slm-adminslm-read-only 角色的示例:

代码语言:shell
复制
# 创建 slm-admin 角色
curl -X POST -u undefined:$ESPASS "localhost:9200/_security/role/slm-admin?pretty" -H 'Content-Type: application/json' -d'
{
  "cluster": ["manage_slm", "cluster:admin/snapshot/*"],
  "indices": [
    {
      "names": [".slm-history-*"],
      "privileges": ["all"]
    }
  ]
}
'

# 创建 slm-read-only 角色
curl -X POST -u undefined:$ESPASS "localhost:9200/_security/role/slm-read-only?pretty" -H 'Content-Type: application/json' -d'
{
  "cluster": ["read_slm"],
  "indices": [
    {
      "names": [".slm-history-*"],
      "privileges": ["read"]
    }
  ]
}
'

  通过本节提供的操作和示例,可以更加灵活地管理 Elasticsearch 快照,并利用 SLM 自动执行备份,确保数据的完整性和可用性。保持对快照生命周期的有效控制。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档