Prometheus 监控数据的备份与恢复
功能概述
Prometheus 监控数据以 TSDB(Time Series Database)格式存储,支持备份和恢复功能。监控数据存储在 Prometheus 容器内的指定路径中(由配置 storage.tsdb.path 指定,默认为 /prometheus)。
使用场景
- 在系统迁移期间保留历史监控数据
- 防止因意外事件导致的数据丢失
- 将监控数据迁移到新的 Prometheus 实例
前提条件
- 已安装 ACP Basic Monitoring(以前称为 ACP Monitoring for Prometheus)插件(计算组件名称为
prometheus-kube-prometheus-0,类型为StatefulSet) - 具有集群管理员权限
- 确保目标存储位置有足够的存储空间
操作步骤
备份数据
开始备份前请注意:Prometheus 存储监控数据时,会先将采集的数据放入缓存,然后定期将其写入存储目录。以下备份方法使用存储目录作为数据源,因此不包括备份时缓存中的数据。
方法 1:备份存储目录(推荐)
-
使用 kubectl cp 命令进行备份:
-
从存储后端进行备份(取决于安装时选择的存储类型):
- LocalVolume:从
/cpaas/monitoring/prometheus目录复制 - PV:从 PV 挂载目录复制(建议将 PV 的 persistentVolumeReclaimPolicy 设置为
Retain) - StorageClass:从 PV 挂载目录复制
方法 2:快照备份
-
启用 Admin API:
添加配置:
注意:更新并保存配置后,Prometheus Pod(Pod 名称:prometheus-kube-prometheus-0-0)将重启。请等待所有 Pod 均处于 Running 状态后,再继续执行后续操作。
-
创建快照:
恢复数据
-
将备份数据复制到 Prometheus 容器中:
-
将数据移入指定目录:
快捷方式:插件安装期间,如果存储类型为 LocalVolume,只需将备份数据直接复制到安装插件的节点的
/cpaas/monitoring/prometheus/prometheus-db/目录即可。
操作结果
- 备份完成后,可以在目标存储路径中看到完整的 TSDB 格式监控数据
- 恢复完成后,Prometheus 会自动加载历史监控数据
了解更多
TSDB 数据格式说明
TSDB 格式数据结构示例:
数据备份注意事项
- 备份数据不包含备份时的缓存数据
- 建议定期执行数据备份
- 使用 PV 存储时,建议将 persistentVolumeReclaimPolicy 设置为
Retain
后续步骤
- 验证监控数据是否已正确恢复
- 定期安排数据备份计划
- 如果使用快照备份方法,可以选择禁用 Admin API