如何实现自动每日导出Prometheus Dashboard并定时发送通知邮件
自动导出Prometheus Dashboard并发送每日运行状态通知实现方案
一、每日全服务正常运行通知配置(基于已有的Prometheus+Alertmanager环境)
你已经完成了故障告警规则配置,只需要新增一条定时巡检规则即可实现每日正常通知:
- 新增Prometheus告警规则,编辑你的规则配置文件添加如下内容:
groups: - name: daily_health_check rules: - alert: DailyAllServiceNormal expr: vector(1) == 1 for: 0m labels: severity: info notify_type: daily_report annotations: summary: "每日服务巡检通知" description: "当前所有服务运行状态正常,无故障告警触发"
- 修改Alertmanager配置,新增路由匹配规则:匹配
notify_type: daily_report标签的告警,设置接收邮箱,配置repeat_interval: 24h,同时通过time_intervals配置限定告警仅在每日早晨指定时段触发即可。
二、Prometheus Dashboard每日自动导出实现
可以根据你的现有部署场景选择对应方案:
方案1:搭配Grafana使用(最简便)
如果你的Prometheus Dashboard是在Grafana中搭建的,直接使用自带的报表功能即可:
- 打开目标Dashboard,点击顶部导航的「共享」按钮,切换到「报表」标签页
- 配置发送频率为每日,填写目标接收邮箱,勾选「附加Dashboard截图」选项后保存,Grafana会自动定时渲染截图随邮件发送。
方案2:独立定时脚本实现(无Grafana场景)
通过Python+无头浏览器实现页面截图+邮件发送:
- 编写Python脚本,使用
selenium的Chrome无头模式打开Prometheus Dashboard页面,等待组件渲染完成后截图保存 - 脚本中引入
smtplib模块,将保存的截图作为附件发送到指定邮箱 - 在服务器上通过
crontab配置每日定时执行脚本,示例定时规则:0 8 * * * /usr/bin/python3 /opt/prom_daily_export.py >> /var/log/prom_daily_export.log 2>&1
以上配置代表每日早8点执行一次导出脚本。
效果参考

内容的提问来源于stack exchange,提问作者redred1114
相关产品推荐
相关产品推荐

