Prometheus 数据备份
Prometheus 数据备份有两种方式:
- 全量备份,data 目录全量数据复制;
- 快照备份,利用 Prometheus 提供的 API 接口。
如果要使用 Prometheus 提供的 API,需要在启动 prometheus 时,启用参数
--web.enable-admin-api
备份的 API 为 POST /api/v1/admin/tsdb/snapshot
自动备份脚本:
#!/bin/bash
# prometheus_install_dir:Prometheus 安装目录
# prometheus_backup_dir:Prometheus 备份数据存放目录
prometheus_data_dir=[prometheus_install_dir]/data/snapshots
prometheus_backup_dir=[prometheus_backup_dir]
prometheus_snapshot_url=http://localhost:9090/api/v1/admin/tsdb/snapshot
backup_file_name=`date '+%Y%m%d%H%M%S'`
response=$(curl -s -X POST ${prometheus_snapshot_url})
status=$( jq -r '.status' <<< "${response}" )
if [ $status == "success" ]; then
name=$( jq -r '.data.name' <<< "${response}" )
mv $prometheus_data_dir/$name $prometheus_backup_dir/$backup_file_name
else
echo "promtheus backup error"
fi
Prometheus 数据恢复
停止 Prometheus 服务,将备份文件放入 Prometheus 安装目录
数据恢复脚本:
#!/bin/bash
# prometheus_install_dir:Prometheus 安装目录
# prometheus_backup_dir:Prometheus 备份数据存放目录
# backup_file_name:需要恢复的数据文件
prometheus_data_dir=prometheus_data_dir=[prometheus_install_dir]/data
prometheus_backup_dir=[prometheus_backup_dir]
backup_file_name=[backup_file_name]
rm -rf $prometheus_data_dir
cp -R $prometheus_backup_dir/$backup_file_name $prometheus_data_dir