Prometheus Alertmanager 集成 - 服务器和基础设施监控通知
将 Prometheus Alertmanager 与 Echobell 集成以获取即时移动警报的完整指南。通过 Webhook 或电子邮件接收服务器监控、基础设施警报、CPU/内存使用率警告和关键系统事件的推送通知。
Prometheus 集成
Prometheus 配合 Alertmanager 是广泛使用的开源监控和告警栈。将 Alertmanager 与 Echobell 集成后,每当告警规则触发时,您可以收到即时移动通知(包括时效性通知或电话通知)。
前提条件
- 已创建至少一个频道的 Echobell 账户
- 运行中的 Prometheus + Alertmanager 环境
- 能够编辑 Alertmanager 配置文件(alertmanager.yml)
概述
- 创建 Echobell 频道
- 配置通知模板
- 选择集成方式(Webhook 或 Email)
- 创建或更新告警规则
- 测试和优化
分步指南
创建 Echobell 频道
- 打开 Echobell 应用
- 创建新频道(例如:"Prometheus 告警")
- 选择便于识别的颜色
配置通知模板
Alertmanager 的 Webhook 负载包含 status、commonLabels、commonAnnotations、externalURL 和 alerts 数组等结构化字段。
标题模板:
{{commonLabels.alertname}} - {{status}}正文模板:
🔔 告警:{{commonLabels.alertname}}
📊 严重级别:{{commonLabels.severity}}
🖥️ 实例:{{alerts[0].labels["instance"]}}
⏰ 开始时间:{{alerts[0].startsAt}}
ℹ️ 摘要:{{commonAnnotations.summary}}可选链接模板(高级设置):
{{alerts[0].generatorURL || externalURL}}方式 A — Webhook(推荐)
- 在 Echobell 频道中,从触发器复制 Webhook URL
- 在 Alertmanager 中配置 Webhook 接收器:
route:
receiver: echobell-webhook
receivers:
- name: echobell-webhook
webhook_configs:
- url: "https://hook.echobell.one/t/REPLACE_WITH_YOUR_TOKEN"
send_resolved: true
http_config:
follow_redirects: true注意:send_resolved: true 会在告警解除时也发送通知。
方式 B — Email(备选)
如果偏好使用 Email,使用 Alertmanager 的 Email 接收器:
- 在 Echobell 中,从触发器复制频道的 Email 地址
- 在 Alertmanager 中配置 Email 接收器:
receivers:
- name: echobell-email
email_configs:
- to: "PASTE_CHANNEL_EMAIL_ADDRESS"
send_resolved: true
subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
html: |
<p><strong>摘要:</strong> {{ .CommonAnnotations.summary }}</p>
<p>{{ .CommonAnnotations.description }}</p>创建示例告警规则
groups:
- name: example
rules:
- alert: HighCPU
expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
for: 2m
labels:
severity: critical
annotations:
summary: "CPU 使用率过高"
description: "CPU 已超过 80% 持续 2 分钟"当此告警触发时,Alertmanager 会将事件发送到 Echobell。
通知类型
- 时效性:关键生产故障、需要呼叫级别响应的事件
- 电话:必须中断专注模式的严重故障
- 普通:常规告警、警告或信息通知
最佳实践
- 保持模板简洁但信息完整
- 使用链接模板直接跳转到图表/仪表板
- 在 Alertmanager 中分组和路由告警
- 将 Webhook URL 作为机密信息保护
故障排除
如果告警没有出现在 Echobell 中:
- 验证 Webhook URL 或频道 Email
- 确保频道处于活动状态且有订阅者
- 检查 Alertmanager 日志中的投递错误
- 验证 alertmanager.yml 中的路由