最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Prometheus 告警路由分发:按不同应用模块配置
时间:2026-07-12 08:59:57 编辑:袖梨 来源:一聚教程网
实现Prometheus告警按应用模块分发的关键是Alertmanager路由配置与告警规则中统一打标module标签,通过match匹配该标签并路由至对应receiver,同时差异化设置group_by和通知渠道。
要实现 Prometheus 告警按不同应用模块分发,关键不在 Prometheus 本身,而在 Alertmanager 的路由配置和告警规则中对模块标签的统一打标。核心逻辑是:先让每条告警带上明确的模块标识(如 module: "user-service"),再在 Alertmanager 中用 match 或 match_re 匹配该标签,把告警导向对应 receiver。
在告警规则里打上模块标签
模块信息必须由你主动注入到告警的 labels 字段中,Prometheus 不会自动识别“应用模块”。常见做法有:
- 按服务名打标:
labels: {module: "order-service", env: "prod"} - 按业务域打标:
labels: {module: "payment", team: "finance"} - 结合命名空间与工作负载(K8s 环境):
labels: {module: "{{ $labels.pod }}"}(需配合 relabel_configs 或 recording rule 提前提取)
注意:所有标签值应保持简洁、规范、无空格,避免正则匹配失败或路由失效。
用 route 树按 module 标签做分发
Alertmanager 的 route 是树形结构,支持嵌套匹配。例如:
- 根 route 默认发给值班群(兜底)
- 子 route 匹配
module: "user-service"→ 发给 user-team 的钉钉机器人 - 另一子 route 匹配
module: "auth-service"→ 发给 security-team 的企业微信 - 还可叠加环境过滤:
match: {module: "payment", env: "prod"}单独路由生产支付告警
示例片段:
route: receiver: default-pager group_by: [alertname, module] routes: - match: module: user-service receiver: user-dingtalk - match: module: auth-service receiver: auth-wecom - match_re: module: ^(order|payment|refund)-service$ receiver: finance-webhook
分组与合并策略要贴合模块特性
不同模块的告警密度和响应节奏不同,group_by 和间隔参数需差异化设置:
- 用户服务告警多、变化快 →
group_by: [alertname, instance]+group_interval: 1m - 支付类告警少但关键 →
group_by: [alertname]+group_wait: 10s(更快触达) - 避免跨模块混组:确保
group_by包含module,否则 user-service 和 order-service 的 CPU 告警可能被合并成一条
对接模块专属通知渠道
每个 receiver 对应一个模块团队习惯的通讯方式:
- 钉钉/企微:用 Webhook 配置机器人地址,支持关键词@、消息卡片
- 邮件:按 module 设置不同收件人列表,可用 SMTP 模板插入模块负责人
- 电话/短信:对高危模块(如支付、风控)启用,通过第三方网关触发
- Slack/PagerDuty:适合已有 SRE 流程的团队,可绑定 on-call schedule
receiver 名称必须与 route 中引用的完全一致,且每个 receiver 至少配置一种通知方式(如 webhook_configs 或 email_configs)。
相关文章
- 崩坏因缘精灵海游龙召唤条件说明 07-22
- 尽管工作室已关闭:Wreckreation 2 仍正式公布:距离前作发布仅九个月 07-22
- 率土之滨武将强度排行 率土之滨武将开荒搭配攻略表 07-22
- 挖掘者米娜怎样召唤伙伴成就攻略分享 07-22
- 仙灵物语最强阵容搭配攻略:仙灵物语高战力阵容推荐与实战解析 07-22
- 天堂2盟约怎么升级快:天堂2盟约快速升级技巧与高效练级指南 07-22