Prometheus 与 Alertmanager 集成
将 Alertmanager 的告警通过 Webhook 或邮箱发送到 Echobell
Prometheus 集成
Prometheus + Alertmanager 是广泛使用的开源监控与告警体系。将 Alertmanager 集成到 Echobell 后,当告警规则触发时,你可以立即在手机上收到通知(支持“时间敏感”或“来电式”提醒)。
准备
- 一个 Echobell 账号,并已创建至少一个频道
- 已运行的 Prometheus 与 Alertmanager
- 可编辑 Alertmanager 配置(alertmanager.yml)的权限
步骤概览
- 创建 Echobell 频道
- 配置通知模板(可选配置链接模板)
- 选择集成方式:
- Webhook(推荐):Alertmanager webhook 接收器
- 邮箱(可选):Alertmanager 邮件接收器
- 创建/更新告警规则
- 测试与优化
详细步骤
1) 创建 Echobell 频道
- 打开 Echobell App
- 新建频道(例如「Prometheus Alerts」)
- 选择易识别的颜色
2) 配置通知模板
Alertmanager 的 Webhook 负载包含 status、commonLabels、commonAnnotations、externalURL 以及 alerts 数组等字段。可以在 Echobell 模板中直接引用。
建议模板:
标题模板:
正文模板:
可选链接模板(高级设置):
这会在记录中显示指向相关图表/看板的链接;若没有 generatorURL,则回退到 externalURL。
3) 方式 A — Webhook(推荐)
- 在 Echobell 频道的触发器里复制 Webhook URL
- 在 Alertmanager 中新增 webhook 接收器,指向该 URL
alertmanager.yml 最小示例:
说明:
- send_resolved: true 表示在告警恢复时也会发送通知
- Echobell 直接解析 JSON 体,上述模板可正确渲染
3 可选) 方式 B — 邮箱
如需使用邮箱,在 Alertmanager 中配置 email 接收器,并发送到频道绑定的邮箱地址。
- 在 Echobell 中复制频道邮箱地址(触发器处)
- 在 Alertmanager 中配置邮箱接收器并使用简洁模板
示例:
在基于邮箱触发的模板中,可使用 Echobell 自动提供的 subject、text、html 等变量。
4) 示例告警规则
告警触发后,Alertmanager 会将事件发送至配置的接收器,Echobell 将通知该频道的所有订阅者。
测试
- 暂时降低阈值或创建快速触发的测试告警
- 确认触发时能收到 Echobell 通知
- 使用链接模板时,从记录中打开链接
- 告警恢复后也能收到通知(若启用)
通知类型建议
- 时间敏感(Time Sensitive):生产级重大故障、紧急事件
- 来电(Calling):需要打断专注模式的严重故障
- 普通(Normal):日常警告、信息提示
最佳实践
- 模板简洁且包含关键信息(名称、级别、实例、摘要)
- 使用链接模板快速跳转到相关图表/看板
- 在 Alertmanager 中合理分组/路由,降低噪音
- 使用 severity 标签并在 Echobell 中匹配合适的通知类型
- 将 Webhook URL 视为密钥,泄露时及时更换
故障排查
- 检查 Webhook URL 或频道邮箱是否正确
- 确认频道有效且有订阅者
- 查看 Alertmanager 日志是否有投递错误
- 确认 alertmanager.yml 的路由指向正确接收器
- 使用简单测试规则进行验证
- 使用邮箱时,检查 SMTP 与投递情况
隐私与数据
- 通知内容仅保存在你的设备上
- 服务器只存储最少的配置数据
- Webhook URL 与频道邮箱需作为机密处理
- Echobell 不在服务器上保留你的告警负载