在数码工坊的日常运维中,ref="/tag/426/" style="color:#EB6E00;font-weight:bold;">数据备份的稳定性直接关系到业务的连续性。光有备份任务还不够,得知道它是不是按时跑、有没有失败、磁盘空间够不够。这时候,一套靠谱的监控系统就显得特别实在,而 Prometheus 正是那个能帮你盯住一切的“值班员”。
为什么选 Prometheus 监控备份环境?
它轻量、开源、支持多维度数据采集,尤其适合监控服务器状态、脚本执行情况和存储使用率。比如你每天凌晨跑的 rsync 备份脚本,加上 Prometheus 后,可以实时看到上次执行时间、是否成功、传输速度等指标,再也不用登录服务器一条条翻日志。
搭建 Prometheus 基础环境
假设你有一台用于备份的 Linux 服务器,IP 是 192.168.1.100。先在这台机器上安装 Prometheus Server。下载解压后,主要关注两个文件:prometheus.yml 和 prometheus 的二进制文件。
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar -xzf prometheus-2.47.0.linux-amd64.tar.gz
cd prometheus-2.47.0.linux-amd64
启动前先配置 prometheus.yml,加入你要监控的目标。比如你想监控备份服务器本身的资源使用情况,就得让它抓取 Node Exporter 的数据。
部署 Node Exporter 采集主机指标
Node Exporter 负责收集 CPU、内存、磁盘等基础信息。在备份服务器上运行:
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar -xzf node_exporter-1.6.1.linux-amd64.tar.gz
cd node_exporter-1.6.1.linux-amd64
nohup ./node_exporter > /var/log/node_exporter.log 2>&1 &
启动后,访问 http://192.168.1.100:9100/metrics 就能看到一堆暴露出来的指标。
配置 Prometheus 抓取节点数据
修改 prometheus.yml 中的 scrape_configs 部分:
scrape_configs:
- job_name: 'backup-server'
static_configs:
- targets: ['192.168.1.100:9100']
保存后重启 Prometheus,打开 Web 界面 http://your-prometheus-ip:9090,输入 node_filesystem_avail_bytes 就能看到可用磁盘空间,这对监控备份存储是否快满非常实用。
自定义监控备份脚本执行状态
除了系统指标,你还想知道备份脚本有没有成功运行。可以用一个简单的方式:脚本结束时写一个标记文件,并通过 Node Exporter 的 textfile collector 暴露为指标。
在备份脚本最后加上:
if [ $? -eq 0 ]; then
echo "backup_success 1" > /var/lib/node_exporter/textfile_collector/backup_status.prom
else
echo "backup_success 0" > /var/lib/node_exporter/textfile_collector/backup_status.prom
fi
确保 Node Exporter 启动时启用了 textfile collector(默认已支持),路径正确即可。Prometheus 抓取后,就能用 backup_success 这个指标来设置告警。
搭配 Alertmanager 发送异常通知
光看图表不够及时,出问题得马上知道。配置 Alertmanager,当 backup_success == 0 或磁盘使用率超过 90% 时,通过邮件或企业微信通知你。
在 Prometheus 的 rule 文件中添加告警规则:
groups:
- name: backup_alerts
rules:
- alert: BackupFailed
expr: backup_success == 0
for: 1m
labels:
severity: critical
annotations:
summary: "备份任务执行失败"
description: "请立即检查备份服务器 192.168.1.100 上的脚本运行情况。"
这套组合拳下来,你的数据备份不再是“黑盒”,每一次执行都清清楚楚,出了问题也能第一时间响应。与其等到数据丢了才着急,不如早点把监控搭起来,心里才踏实。