要让 Prometheus 正确将告警发给 Alertmanager,需打通 Prometheus→Alertmanager 链路并配置双方:Prometheus 端在 prometheus.yml 中指定 alertmanagers 地址,Alertmanager 端在 alertmanager.yml 中定义 receivers、route 规则及通知渠道,最后逐层验证连通性与配置生效情况。

要让 Prometheus 正确把告警发给 Alertmanager,关键不是只装上 Alertmanager,而是打通 Prometheus → Alertmanager 这条链路,并确保 Alertmanager 自身能按需分发通知。配置分两大部分:Prometheus 端指定 Alertmanager 地址,Alertmanager 端定义如何处理和发送告警。
在 Prometheus 中配置 Alertmanager 地址
Prometheus 本身不发通知,只负责“判断是否该告警”。它需要知道把产生的告警事件发给谁——这就是 Alertmanager 的地址。
- 编辑 Prometheus 主配置文件 prometheus.yml
- 在
global或顶层添加alerting块,写明 Alertmanager 实例地址(支持多个):
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093'] # 默认端口是 9093,按实际部署调整保存后重启 Prometheus,它就会周期性地将触发的告警推送到该地址。可通过 Prometheus UI 的 Status → Runtime & Build Information 查看是否已成功连接 Alertmanager。
配置 Alertmanager 接收器(通知渠道)
Alertmanager 收到告警后,得知道“怎么发、发给谁”。接收器(receivers)就是定义这些渠道的地方,比如邮件、Webhook、钉钉机器人等。
- 在 alertmanager.yml 的
receivers区块下添加具体配置 - 例如配置一个邮箱接收器:
receivers:
- name: 'email-notifier'
email_configs:
- to: 'admin@example.com'
from: 'alert@monitor.local'
smarthost: 'smtp.example.com:587'
auth_username: 'alert@monitor.local'
auth_password: 'your-app-password'如果是 Webhook(对接钉钉/飞书/自研服务),则用 webhook_configs,可配多个 URL,支持 send_resolved: true 来同步恢复通知。
设置路由规则,让告警去对的地方
默认所有告警都走同一个接收器,但生产环境通常要按服务、团队、严重等级分流。这就靠 route 规则实现。
-
receiver指定默认接收器 - 用
routes嵌套子规则,通过match或match_re匹配告警标签(如severity="critical"、service="api-gateway") - 支持分组(
group_by)、分组等待时间(group_wait)、重复通知间隔(repeat_interval)等降噪参数
示例:将 P1 级别告警单独路由给值班群 Webhook,其余走邮件:
route:
receiver: 'default-email'
group_by: ['alertname', 'cluster']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
routes:
- match:
severity: critical
receiver: 'dingtalk-p1'验证与调试要点
配置写完不等于生效,必须逐层确认:
- 检查 Alertmanager 是否运行:
systemctl status alertmanager或访问http://localhost:9093 - 查看 Prometheus 日志,确认有没有 “Failed to send alerts” 类错误
- 进入 Alertmanager UI(
/alerts页面),看是否有收到告警;/status页面可查配置加载状态和连接健康度 - 手动触发一条测试告警(如修改告警规则使条件恒为 true),观察是否进入 Alertmanager 并最终发出通知
只要 Prometheus 能连上 Alertmanager,且 Alertmanager 配置语法正确、接收器可达,告警通知就能跑通。中间任一环节断开,都会静默失败——这也是初次配置时最常见的卡点。


















