当前位置: 首页 > news >正文

ElasticSearch集群数据备份恢复详解 - huangSir

概述

官方推荐的ElasticSearch备份方案为Snapshot,对运行中集群做全量 + 增量备份,不影响读写。
Snapshot也就是快照,在某一时间点的集群一致性镜像。其原理为:

  • 基于文件系统块级快照:
    • 首次快照:复制所有分片数据块。可以理解成首次快照为全量备份
    • 后续快照:只复制新增 / 修改的块,共享未变块(节省空间)。可以理解成后续快照就是增量备份。
  • 快照存储在独立仓库,与集群数据目录分离。
  • 一致性保证:快照过程中,分片数据冻结时间点,新写入不影响已拍快照。

数据存储仓库

ES集群数据备份存储支持以下几种存储类型

存储类型 适用场景 要求
共享文件系统(NFS/NAS/CephFS) 自建机房、私有云集群 所有ES节点必须挂载同一个共享路径,且elasticsearch.yml中配置path.repo允许该路径
对象存储(S3/OSS/COS/OBS) 云原生集群、容灾备份 安装对应repository插件(如repository-s3/repository-oss)
HDFS 大数据生态集群 安装repository-hdfs插件

集群备份之NFS存储

节点设计

选3节点中的任意一个闲置节点(生产环境建议使用独立本地服务器)作为NFS存储服务器,另外两个节点通过NFS协议挂载共享目录,实现3节点统一访问备份路径:

角色 IP地址 备份路径 说明
NFS服务器(节点1) 192.168.1.10 /data00/nfs/es_backup 本地物理磁盘,作为共享存储源
ES节点2 192.168.1.11 /data00/nfs/es_backup 挂载节点1的NFS共享目录
ES节点3 192.168.1.12 /data00/nfs/es_backup 挂载节点1的NFS共享目录

备份基础配置

1.1 NFS服务端配置(节点1执行)

# 下载nfs
root@master:~# apt install nfs-kernel-server rpcbind -y# 创建备份目录
root@master:~# mkdir -p /data00/nfs/es_backup
root@master:~# chown -R elasticsearch:elasticsearch /data00/nfs/es_backup
root@master:~# chmod 777 /data00/nfs/es_backup# 3. 配置NFS共享规则,允许3节点网段访问
# anongid和anongid为你集群elasticsearch用户的UID和GID,用id elasticsearch命令查看
root@master:~# echo "/data00/nfs/es_backup 10.37.0.0/16(rw,sync,no_root_squash,all_squash,anonuid=2002,anongid=2002,no_subtree_check)" >> /etc/exportsroot@master:~# exportfs -ra
root@master:~# systemctl restart nfs-kernel-server

1.2 NFS客户端配置(节点2、3执行)

# 下载nfs
root@node01:~# apt install -y nfs-common
# 创建共享目录,es集群的节点中,路径都需要保持一致
root@node01:~# mkdir -p /data00/nfs/es_backup
root@node01:~# chown elasticsearch:elasticsearch -R /data00/nfs/es_backup
# 挂载
root@node01:~# mount -t nfs 10.37.97.56:/data00/nfs/es_backup /data00/nfs/es_backup# 验证
root@node01:~# df -h | grep es_backup# 写一个文件10.37.97.56:/data00/nfs/es_backup  492G   13G  454G   3% /data00/nfs/es_backup

1.2 NFS客户端配置(节点2、节点3执行)

root@node01:~# apt install -y nfs-common
root@node01:~# mkdir -p /data00/nfs/es_backup
root@node01:~# chown elasticsearch:elasticsearch -R /data00/nfs/es_backup
# 挂载
root@node01:~# mount -t nfs 10.37.97.56:/data00/nfs/es_backup /data00/nfs/es_backup
# 检查
root@node01:~# df -h | grep es_backup

修改ES的配置文件(所有节点执行)

编辑每个节点的config/elasticsearch.yml,添加备份路径白名单:

root@master:~# vim /usr/local/elasticsearch/config/elasticsearch.yml 
# 添加以下配置,路径必须和挂载路径完全一致,三个节点的路径必须完全相同,否则快照创建直接失败
path.repo: ["/data00/nfs/es_backup"]

滚动重启所有ES节点

先重启节点2,等待集群状态变绿后再重启节点3,最后重启节点1,保证业务不受影响

检查三个节点的配置是否生效

GET _nodes/settings?pretty# 查看以下的响应
....
"path" : {"data" : "/data00/data/elasticsearch","logs" : "/var/log/elasticsearch","home" : "/usr/local/elasticsearch","repo" : ["/data00/nfs/es_backup"]}
....

备份案例实战测试

第一步:创建快照存储库

PUT _snapshot/nfs_es_backup
{"type": "fs","settings": {"location": "/data00/nfs/es_backup","compress": true,"max_snapshot_bytes_per_sec": "50mb","max_restore_bytes_per_sec": "200mb","chunk_size": "1gb","readonly": false}
}# 参数详细解释
local_es_backup:存储库的名称,可指定
location:表示存储路径,和上文es配置文件中配置的保持一致
compress:开启压缩,节省30%-50%本地磁盘空间,生产环境必备优化参数
max_snapshot_bytes_per_sec:备份时的带宽 IO 限速,生产环境必备,不影响业务
max_restore_bytes_per_sec:恢复时的IO限速,恢复一般在非业务时间,所以可以比备份快
chunk_size:大文件分片,避免单个文件过大损坏
readonly:false表示允许写入、创建快照、删除快照,true表示仓库只读,不能写入,不能删除,防止误删备份,极高安全# 查看存储库
GET /_snapshot
# 返回结果
{"nfs_es_backup" : {"type" : "fs","settings" : {"chunk_size" : "1gb","location" : "/data00/nfs/es_backup","max_restore_bytes_per_sec" : "200mb","readonly" : "false","compress" : "true","max_snapshot_bytes_per_sec" : "50mb"}}
}

第二步,创建一个索引进行备份删除恢复测试

# 创建索引
PUT /user
{"settings": {"number_of_shards": 3, "number_of_replicas": 1}
}# 查看索引是否创建成功
{"user" : {"aliases" : { },"mappings" : { },"settings" : {"index" : {"routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"number_of_shards" : "3","provided_name" : "user","creation_date" : "1776410155455","number_of_replicas" : "1","uuid" : "2ezMKqpKTlSWHwMk0vV1Yg","version" : {"created" : "7172699"}}}}
}

第三步:备份索引

  • 单索引备份
# 执行备份
PUT _snapshot/nfs_es_backup/snapshot_user_test01
{"indices": "user","include_global_state": false
}#参数解释
nfs_es_backup:存储库名称
snapshot_user_test01:快照名称
indices:指定索引名称
include_global_state:备份索引模板、ILM策略、用户权限、安全配置等全局状态,在全局备份时需要开启# 检查是否备份成功
GET _snapshot/nfs_es_backup/snapshot_user_test01# 响应
{"snapshots" : [{"snapshot" : "snapshot_user_test01","uuid" : "JM6FcLzLQ6W-uN58A_k6tA","repository" : "nfs_es_backup","version_id" : 7172699,"version" : "7.17.26","indices" : [ # 索引名称"user"],"data_streams" : [ ],"include_global_state" : false,"state" : "SUCCESS", # 状态为成功"start_time" : "2026-04-17T07:23:33.014Z", #备份开始时间"start_time_in_millis" : 1776410613014,"end_time" : "2026-04-17T07:23:33.214Z", # 备份结束时间"end_time_in_millis" : 1776410613214,"duration_in_millis" : 200,"failures" : [ ],"shards" : {"total" : 3,"failed" : 0,"successful" : 3},"feature_states" : [ ]}],"total" : 1,"remaining" : 0
}# 查看一下磁盘中多了哪些内容?
root@master:/data00/nfs/es_backup# ll
total 24
-rw-r--r-- 1 elasticsearch elasticsearch  648 Apr 17 15:23 index-0
-rw-r--r-- 1 elasticsearch elasticsearch    8 Apr 17 15:23 index.latest
drwxr-xr-x 3 elasticsearch elasticsearch 4096 Apr 17 15:23 indices
-rw-r--r-- 1 elasticsearch elasticsearch  202 Apr 17 15:23 meta-JM6FcLzLQ6W-uN58A_k6tA.dat
-rw-r--r-- 1 elasticsearch elasticsearch  315 Apr 17 15:23 snap-JM6FcLzLQ6W-uN58A_k6tA.dat
drwxr-xr-x 2 kibana        elasticsearch 4096 Apr 17 15:05 tests-ZXO9W4fjQVacYTs7HPAnzA# 解释:
index-0:仓库的 “目录清单”,记录这个仓库里有哪些快照,记录每个快照的名称、UUID、状态、包含索引,相当于仓库的目录表
index.latest:指向最新的 index-xx 文件,内容只有一个数字:0,ES 用它快速找到当前清单,永远指向最新清单
indices:这是一个目录,真正的数据备份目录,里面存放着所有索引的分片数据、 Lucene 段文件,增量快照也在这里,占空间99% 的就是它,恢复数据时,从这里读取真实数据
meta-xxx.dat:快照元数据文件,记录着索引的 mapping,索引的 settings,集群配置,模板、ILM、SLM 策略,恢复时,ES 先读这个文件,重建结构
snap-xxx.dat:快照本身信息文件,记录着快照开始 / 结束时间,备份了哪些索引,快照状态(SUCCESS/FAILED),分片备份成功数量,ES 通过它判断快照是否有效
tests-xxxxxx:这是仓库验证临时目录,执行 PUT _snapshot 创建仓库时,ES 会自动创建这个目录,写一个测试文件,验证是否可读写,验证成功后不会自动删除,可以手动删除,不影响任何备份
  • 全集群备份
PUT _snapshot/nfs_es_backup/snapshot_20260417_full?wait_for_completion=false
{"indices": "*","ignore_unavailable": true,"include_global_state": true,"partial": false,"slices": "auto"
}
# 参数解释
nfs_es_backup:表示存储库名称
snapshot_20260417_full:表示快照名称
wait_for_completion=false:是否等待快照执行完成再返回结果,生产环境建议用false,不然大数据量备份会直接卡死 / 超时!
indices:备份所有索引,可指定多个:"order_index,user_index"
ignore_unavailable:忽略不存在的索引,避免备份中断,生产环境建议开启
include_global_state:全集群备份时必须开启!备份索引模板、ILM策略、用户权限、安全配置等全局状态
partial:有分片不可用时直接失败,避免生成不完整的备份,生产环境默认用false
slices:7.3+版本专属:开启并行备份,速度提升2-3倍,生产环境建议用 auto# 查看备份结果:
GET _snapshot/nfs_es_backup/snapshot_20260417_full#响应结果
{"snapshots" : [{"snapshot" : "snapshot_20260417_full","uuid" : "gjYuTksgRbuCeXNBQLDKmA","repository" : "nfs_es_backup","version_id" : 7172699,"version" : "7.17.26","indices" : [".kibana_task_manager_7.17.12_001",".kibana-event-log-7.17.12-000001",".tasks",".ds-.logs-deprecation.elasticsearch-default-2026.04.15-000001",".apm-agent-configuration",".apm-custom-link",".kibana_7.17.12_001","test01",".ds-ilm-history-5-2026.04.15-000001","user",".kibana_security_session_1",".security-7"],"data_streams" : ["ilm-history-5",".logs-deprecation.elasticsearch-default"],"include_global_state" : true,"state" : "SUCCESS","start_time" : "2026-04-17T07:44:34.973Z","start_time_in_millis" : 1776411874973,"end_time" : "2026-04-17T07:44:35.373Z","end_time_in_millis" : 1776411875373,"duration_in_millis" : 400,"failures" : [ ],"shards" : {"total" : 16,"failed" : 0,"successful" : 16},"feature_states" : [{"feature_name" : "kibana","indices" : [".kibana_7.17.12_001",".apm-custom-link",".apm-agent-configuration",".kibana_security_session_1",".kibana_task_manager_7.17.12_001"]},{"feature_name" : "tasks","indices" : [".tasks"]},{"feature_name" : "security","indices" : [".security-7"]}]}],"total" : 1,"remaining" : 0
}

第四步:删除索引

# 删除user索引
DELETE /user# 查看user索引
GET /user# 响应结果,可以看到索引已经被删除了
{"error" : {"root_cause" : [{"type" : "index_not_found_exception","reason" : "no such index [user]","index_uuid" : "_na_","resource.type" : "index_or_alias","resource.id" : "user","index" : "user"}],"type" : "index_not_found_exception","reason" : "no such index [user]","index_uuid" : "_na_","resource.type" : "index_or_alias","resource.id" : "user","index" : "user"},"status" : 404
}

第五步:恢复索引

查看快照列表

# 查看快照列表
GET _snapshot/nfs_es_backup/_all## 响应结果
{"snapshots" : [{"snapshot" : "snapshot_user_test01","uuid" : "JM6FcLzLQ6W-uN58A_k6tA","repository" : "nfs_es_backup","version_id" : 7172699,"version" : "7.17.26","indices" : ["user"],"data_streams" : [ ],"include_global_state" : false,"state" : "SUCCESS","start_time" : "2026-04-17T07:23:33.014Z","start_time_in_millis" : 1776410613014,"end_time" : "2026-04-17T07:23:33.214Z","end_time_in_millis" : 1776410613214,"duration_in_millis" : 200,"failures" : [ ],"shards" : {"total" : 3,"failed" : 0,"successful" : 3},"feature_states" : [ ]},{"snapshot" : "snapshot_20260417_full","uuid" : "gjYuTksgRbuCeXNBQLDKmA","repository" : "nfs_es_backup","version_id" : 7172699,"version" : "7.17.26","indices" : [".kibana_task_manager_7.17.12_001",".kibana-event-log-7.17.12-000001",".tasks",".ds-.logs-deprecation.elasticsearch-default-2026.04.15-000001",".apm-agent-configuration",".apm-custom-link",".kibana_7.17.12_001","test01",".ds-ilm-history-5-2026.04.15-000001","user",".kibana_security_session_1",".security-7"],"data_streams" : ["ilm-history-5",".logs-deprecation.elasticsearch-default"],"include_global_state" : true,"state" : "SUCCESS","start_time" : "2026-04-17T07:44:34.973Z","start_time_in_millis" : 1776411874973,"end_time" : "2026-04-17T07:44:35.373Z","end_time_in_millis" : 1776411875373,"duration_in_millis" : 400,"failures" : [ ],"shards" : {"total" : 16,"failed" : 0,"successful" : 16},"feature_states" : [{"feature_name" : "kibana","indices" : [".kibana_7.17.12_001",".apm-custom-link",".apm-agent-configuration",".kibana_security_session_1",".kibana_task_manager_7.17.12_001"]},{"feature_name" : "tasks","indices" : [".tasks"]},{"feature_name" : "security","indices" : [".security-7"]}]}],"total" : 2,"remaining" : 0
}
单索引恢复

找到我们的快照名称,开始恢复

# 恢复user索引
POST _snapshot/nfs_es_backup/snapshot_user_test01/_restore
{"indices": "user","include_global_state": false
}# 查看user
GET user# 响应结果
{"user" : {"aliases" : { },"mappings" : { },"settings" : {"index" : {"routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"number_of_shards" : "3","provided_name" : "user","creation_date" : "1776410155455","number_of_replicas" : "1","uuid" : "EdPqsnqgROWfr9K_2FUKTA","version" : {"created" : "7172699"}}}}
}

全集群恢复:集群故障时使用

POST _snapshot/nfs_es_backup/snapshot_20260417_full/_restore?wait_for_completion=false
{"indices": "*","ignore_unavailable": true,"include_global_state": true,// 恢复时临时优化提升速度"index_settings": {"index.number_of_replicas": 0,"index.refresh_interval": "-1"},// 可选:恢复时重命名索引,避免覆盖现有索引// "rename_pattern": "(.+)",// "rename_replacement": "restored_$1"
}#恢复完成后手动恢复索引配置:
PUT /*/_settings
{"index.number_of_replicas": 1,"index.refresh_interval": "1s"
}

集群备份之S3存储

ES 官方原生支持对象存储作为备份存储库,所有操作逻辑和本地NFS备份完全一致,仅存储库配置不同,备份/恢复API 100%复用,无需修改原有备份流程。

S3存储适用于亚马逊AWS S3、MinIO本地对象存储、腾讯云COS、华为云OBS、金山云KS3等所有支持S3协议的对象存储

方案优势

  • 无需搭建维护共享存储,容量无限弹性扩容
  • 天然多副本冗余,数据可靠性达99.9999%,适合容灾备份
  • 单位存储成本比本地磁盘低50%以上
  • 支持跨区域复制,实现异地容灾

S3存储配置步骤

插件安装

所有节点需要安装repository-s3插件

  • 在线安装
root@master:~# elasticsearch-plugin install repository-s3 --batch
# 查看
root@node01:~# elasticsearch-plugin list
repository-s3
  • 离线安装

先下载对应版本插件包:
官方地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-s3/repository-s3-<你的ES版本>.zip
MinIO兼容无修改,直接用官方包即可

elasticsearch-plugin install file:///本地路径/repository-s3-<版本>.zip --batch

所有节点滚动重启

一个一个节点重启,当一个节点重启完成之后查看集群状态,避免影响业务进行

AK和SK配置

优先选密钥存储到Keystore,避免明文泄露

所有节点执行,把AK/SK存入ES密钥库:

# 输入你的access key
root@node01:~# elasticsearch-keystore add s3.client.default.access_key
Enter value for s3.client.default.access_key: # 输入你的secret key
root@node01:~# elasticsearch-keystore add s3.client.default.secret_key
Enter value for s3.client.default.secret_key: # 修改用户组权限
root@node01:~# chown elasticsearch:elasticsearch -R /data00/software/elasticsearch-7.17.26
# 查看
root@node01:~# elasticsearch-keystore show s3.client.default.access_key
<your access key>
root@node01:~# elasticsearch-keystore show s3.client.default.secret_key
<your secret key>

ES中重载密钥库配置(无需重启ES)

POST _nodes/reload_secure_settings#响应
{"_nodes" : {"total" : 3,"successful" : 3,"failed" : 0},"cluster_name" : "elasticsearch-v7","nodes" : {"fx4zORHiRpKFIqdd1dUg3Q" : {"name" : "node01"},"5Hv3CL3zQpGD69QWlQs0Kg" : {"name" : "master"},"si-N5X65SCSxPafqWOFqoA" : {"name" : "node02"}}
}

备份恢复实战

创建存储库

  • minio创建存储库
PUT _snapshot/minio_backup_repo
{"type": "s3","settings": {"bucket": "es-backup","base_path": "es_backup", # 存储路径"endpoint": "http://你的MinIO地址:9000", # MinIO服务地址"access_key": "MinIO的AK", # 如果没用keystore存可以在这里传(不推荐)"secret_key": "MinIO的SK","path_style_access": true, # 必须开启!MinIO强制要求路径风格访问"compress": true,"chunk_size": "512mb"}
}
  • 亚马逊aws
PUT _snapshot/aws_backup_repo
{"type": "s3","settings": {"bucket": "你的S3桶名","region": "ap-beijing", # 桶所在区域"base_path": "es_prod_backup", # 桶内备份路径"compress": true, # 开启压缩节省空间"max_snapshot_bytes_per_sec": "50mb", # 备份限速"max_restore_bytes_per_sec": "100mb", # 恢复限速"chunk_size": "1gb", # 大文件分片"server_side_encryption": true # 开启服务端加密,满足合规要求}
}
  • 腾讯云COS/华为云OBS 等S3兼容存储

和S3配置完全一致,只需要修改endpoint为对应云厂商的S3兼容地址,开启path_style_access: true即可。

备份恢复

备份恢复参考上面NFS的即可,步骤完全一样

阿里云OSS存储配置

阿里云的和普通的S3配置有点区别。

插件安装(阿里云官方维护,必须和ES版本严格一致)

  • 在线安装
elasticsearch-plugin install https://github.com/aliyun/elasticsearch-repository-oss/releases/download/v<你的ES版本>/repository-oss-<你的ES版本>.zip
  • 离线安装
下载对应版本包:https://github.com/aliyun/elasticsearch-repository-oss/releases,所有节点执行:bin/elasticsearch-plugin install file:///本地路径/repository-oss-<版本>.zip --batch

所有节点滚动重启集群生效。

安全配置(推荐密钥存Keystore)
所有节点执行:

# 存储OSS AccessKeyId
elasticsearch-keystore add oss.client.default.access_key_id
# 存储OSS AccessKeySecret
elasticsearch-keystore add oss.client.default.secret_access_key

重载密钥库

POST _nodes/reload_secure_settings

创建存储库

PUT _snapshot/oss_backup_repo
{"type": "oss","settings": {"endpoint": "oss-cn-beijing-internal.aliyuncs.com", # 同区域推荐用内网地址,流量免费速度快"bucket": "你的OSS桶名","base_path": "es_prod_backup", # OSS内备份路径"compress": true,"max_snapshot_bytes_per_sec": "100mb", # 阿里云内网速度快可适当调大"max_restore_bytes_per_sec": "200mb","chunk_size": "1gb","server_side_encryption": true # 开启OSS服务端加密}
}

备份恢复和上文完全一致

ES备份之SLM自动备份策略(生产环境推荐)

SLM 是快照生命周期管理,作用是:

  • 定时自动创建快照(基于 cron)
  • 自动清理旧快照(按时间 / 数量保留)
  • 一次配置,长期生效,由 master 节点调度
  • 快照是增量的,只备份变化的数据,速度快、节省空间

SLM核心策略为:

  • Policy(策略):定义 “何时备、备什么、保留多久”。
  • Snapshot(快照):某时间点的索引 / 数据副本,存于仓库。
  • Repository(仓库):存储快照的介质(本地 FS / S3 / 火山 TOS / OSS 等)。
  • Retention(保留策略):自动删旧快照,避免存储爆满。

创建/更新SLM策略

# 创建/更新 SLM 策略:每天凌晨 2 点备份,保留 30 天,最少 5 份、最多 50 份
PUT _slm/policy/es_daily_backup
{"schedule": "0 0 2 * * ?",          # 定时:每天 02:00(UTC 时间,注意时区换算)"name": "<snapshot_{now/d}>",     # 快照名:snapshot_2026.04.17 自动带日期"repository": "nfs_es_backup",      # 你的 NFS 仓库名(必须已存在)"config": {"indices": "*",                    # 备份所有索引"ignore_unavailable": true,       # 忽略不可用索引(防失败)"include_global_state": true,     # 备份集群全局状态(模板/权限/ILM)"partial": false,                  # 不允许部分备份(保证完整)"slices": "auto"                   # 自动并行加速},"retention": {"expire_after": "30d",             # 快照 30 天后过期"min_count": 5,                     # 最少保留 5 份(防止删光)"max_count": 50                     # 最多保留 50 份(防止磁盘爆)}
}

参数完整解析

  • 定时调度 schedule(Cron 表达式)
    • 格式:秒 分 时 日 月 周(ES 用 UTC 时间)
      示例:
"0 0 2 * * ?" → 每天 UTC 02:00 执行(北京时间 10:00)
"0 0 0/12 * * ?" → 每 12 小时一次
"0 30 1 * * ?" → 每天凌晨 1:30(官方默认)
  • 快照命名 name
    • <snapshot_{now/d}> → 自动生成 snapshot_2026.04.17
    • 支持变量:{now/d}(日期)、{now/H}(小时)等
  • 仓库 repository
    • 必须和你已创建的仓库名一致:nfs_es_backup
  • 备份配置 config
    • indices: *:备份所有索引
    • ignore_unavailable: true:跳过已关闭 / 不存在的索引,避免整体失败
    • include_global_state: true:备份集群元数据(恢复时不用重配模板 / 权限)
    • partial: false:任一主分片异常则快照失败,保证备份完整性
    • slices: auto:自动并行,提升备份速度
  • 保留策略 retention(生产核心)
    • expire_after: "30d":30 天后自动删除旧快照
    • min_count: 5:至少保留 5 份,即使超过 30 天(防止删光无备份)
    • max_count: 50:最多保留 50 份,防止磁盘溢出

SLM常用运维命令

  • 查看所有 SLM 策略
GET _slm/policy# 响应结果
{"es_daily_backup" : {"version" : 1,"modified_date_millis" : 1776419066650,"policy" : {"name" : "<snapshot_{now/d}>","schedule" : "0 0 2 * * ?","repository" : "nfs_es_backup","config" : {"include_global_state" : true,"slices" : "auto","indices" : "*","ignore_unavailable" : true,"partial" : false},"retention" : {"expire_after" : "30d","min_count" : 5,"max_count" : 50}},"next_execution_millis" : 1776477600000,"stats" : {"policy" : "es_daily_backup","snapshots_taken" : 0,"snapshots_failed" : 0,"snapshots_deleted" : 0,"snapshot_deletion_failures" : 0}}
}
  • 立即手动执行一次策略(测试用)
POST _slm/policy/es_daily_backup/_execute#响应结果
{"snapshot_name" : "snapshot_2026.04.17-zo_rwr-ms-oymjzvhbpqiw"
}
  • 查看 SLM 执行历史
GET .slm-history-*/_search
{"sort": [{"@timestamp": "desc"}],"size": 10
}
  • 删除 SLM 策略
DELETE _slm/policy/es_daily_backup

注意事项:

时区注意(极易踩坑)

ES 的 Cron 是 UTC 时间,北京时间 = UTC+8
想北京时间 02:00 备份 → Cron 写 "0 0 18 * * ?"(UTC 18:00)

生产环境使用注意:

每日全量快照:保留 30 天,最少 5 份
恢复测试:每周至少恢复一次快照验证可用性

http://www.jsqmd.com/news/670687/

相关文章:

  • 终极指南:从零开始掌握Blender VRM插件完整创作流程
  • VMware比VirtualBox快多了
  • 不止是参数表:手把手带你用飞凌OK3588-C开发板,快速验证RK3588的AI与多媒体接口(附避坑指南)
  • 有实力的初高衔接培训机构怎么选,这些要点要知道 - myqiye
  • 如何在3分钟内为Word添加APA第7版引用模板:终极解决方案
  • 终极文本挖掘指南:无需编程技能,15分钟掌握KH Coder图形化分析
  • 平衡流量计哪个品牌好?分享一下不同厂家在气体/液体/蒸汽中的使用体验 - 品牌推荐大师
  • 如何免费突破网盘限速:2025年最实用的网盘直链下载助手教程
  • SAP SD实战:用BADI_SLS_HEAD_SCR_CUS给销售订单VA01/VA02加自定义字段(附完整函数组代码)
  • 梳理2026口碑好的低温氢液化品牌,莱登低温值得选吗 - 工业品牌热点
  • VibeVoice与LangChain集成:构建智能语音问答系统
  • Legacy-iOS-Kit:三阶掌握,让旧iOS设备重获新生的全能工具箱
  • RyzenAdj:5个关键场景教你如何精准控制AMD Ryzen处理器性能
  • 基于Simulink的整车VCU能量管理策略(EMS)开发​
  • 告别版本地狱:一张表搞定ComfyUI的PyTorch、CUDA与NVIDIA驱动匹配(RTX 30/40/50系显卡指南)
  • 一键部署Qwen3语义搜索:打造你的私人智能知识助手
  • 像素史诗智识终端效果展示:看AI如何写出逻辑严密的深度报告
  • 如何彻底告别城通网盘下载限速:免费开源工具完全指南
  • 从‘电闸开灯’到代码实战:一个类比彻底搞懂STM32 ADC同步采样的核心原理
  • 如何快速获取网盘直链下载地址:8大平台完整解析指南
  • 别再死磕手册了!手把手教你用Vivado配置JESD204B IP核(附AXI4-Stream数据流解析)
  • ESP32项目实战:用1.3寸ST7789屏做个桌面天气站,TFT_eSPI库图形化界面开发指南
  • 加油卡回收攻略:注意事项与常见问题解答,一文搞懂 - 团团收购物卡回收
  • 终极指南:如何用WaveTools解锁《鸣潮》120帧游戏体验
  • 一个‘放苹果’问题,我搞懂了动态规划的入门钥匙 | C++实战
  • Google 把 AI 搜索搬进 Windows Google app for desktop 完整上手
  • TBOX安全测试核心要点解析:如何验证通信加密、敏感信息与协议握手?
  • 别再为ESP8266连不上阿里云发愁了!手把手教你用安信可MQTT固件和‘神器’配置工具搞定
  • 别再只用串口助手了!用LabVIEW给STM32F103C8T6做个专属上位机(附完整源码)
  • 从零到一:Stegsolve在CTF图像隐写中的核心功能实战解析