grafana 不处理复杂路由,警报路由由 alertmanager 承担;grafana 为告警打团队标签(如 team: web),alertmanager 通过 match/match_re 按标签分流至对应接收器,并为各团队配置专属通知渠道。

Grafana 本身不直接处理复杂路由逻辑,真正的警报路由由 Alertmanager 承担。Grafana 负责生成告警并发送给 Alertmanager,后者根据标签(labels)匹配规则,把不同告警分发到对应团队的接收器(如邮件、企业微信、Slack)。关键在于:在 Grafana 中为告警打上区分团队的标签,在 Alertmanager 中用 match 或 match_re 做路由判断。
在 Grafana 告警规则中添加团队标签
创建或编辑告警规则时,在 Labels 区域手动添加标识团队的键值对:
- 例如填入
team: web表示该告警归属 Web 团队 - 也可用
department: api、service: payment等语义清晰的标签 - 标签名需与 Alertmanager 配置中的
match字段完全一致(大小写敏感) - 多个标签可同时设置,如
team: mobile+severity: critical
在 Alertmanager.yml 中配置多团队子路由
Alertmanager 的 route 块支持嵌套 routes,按标签分流:
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
- 根路由(root route)设为默认接收器,比如发给值班群
- 子路由用
match精确匹配标签,如team: "web"→ 转给 web-receiver - 用
match_re支持正则匹配,例如service: "^(auth|user)$"匹配多个服务 - 每个接收器(receiver)可独立配置渠道,比如 web-receiver 对应企业微信「Web组」机器人
为不同团队配置专属通知渠道
每个团队应有自己独立的 Contact Point(Grafana)或 receiver(Alertmanager):
- 在 Grafana 的 Contact points 页面,为 Web 组新建一个企业微信 Contact Point,名称设为
cp-web - 在 Alertmanager.yml 中定义
wechat-web接收器,to_user指定 Web 组成员或标签 - 若团队使用不同工具(如 Dev 用邮件、Ops 用电话),各 receiver 类型可混用
- 建议在 receiver 中启用
send_resolved: true,便于团队及时获知告警恢复
验证路由是否生效
调试阶段可通过以下方式确认分发正确:
- 访问 Alertmanager Web UI(如
http://alertmanager:9093),查看 Alerts 列表中的 Labels 是否包含你设置的team - 点击某条告警,看 “Route to” 显示的接收器是否符合预期
- 触发测试告警后,检查目标渠道(如企业微信指定群)是否收到,而非默认渠道
- 临时在子路由中加
continue: true,可让匹配后的告警继续走后续路由(用于广播场景)










