数码工坊
白蓝主题五 · 清爽阅读
首页  > 数据备份

Prometheus监控环境配置实战:让数据备份更安心

在数码工坊的日常运维中,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 上的脚本运行情况。" 

这套组合拳下来,你的数据备份不再是“黑盒”,每一次执行都清清楚楚,出了问题也能第一时间响应。与其等到数据丢了才着急,不如早点把监控搭起来,心里才踏实。