跳到主要内容

Alertmanager 配置管理

alertmanager.yml 包含 global、route、receivers、inhibit_rules 和模板引用。配置与 Secret 应分离管理,发布前用 amtool check-config 校验并在测试环境验证路由命中。

1. 配置文件结构​

global:
resolve_timeout: 5m

route:
receiver: platform-default
group_by: [alertname, cluster, service]
group_wait: 30s
group_interval: 5m
repeat_interval: 12h

receivers:
- name: platform-default
webhook_configs: []

inhibit_rules: []

global 可定义 SMTP、HTTP 或外部系统的共享配置。密码、Token、客户端证书和 Webhook URL 中的密钥应使用 Secret,不写入 Git 或明文模板。

2. Route 配置​

根 Route 必须有兜底 Receiver,子 Route 使用当前推荐的 matchers 语法:

route:
receiver: platform-default
routes:
- matchers:
- environment="production"
- team="checkout"
receiver: checkout-warning
routes:
- matchers:
- severity="critical"
receiver: checkout-critical

旧式 match、match_re 字段不应再作为新配置的默认写法。路由详见 告警路由。

3. Receiver 配置​

Receiver 可组合邮件、Webhook 和其他原生集成。企业微信、钉钉、飞书通常通过受控通知网关或 Webhook 适配器接入,从而统一认证、模板、审计和重试。完整实践见 通知集成。

4. Inhibit Rules​

inhibit_rules:
- source_matchers:
- alertname="NodeDown"
- severity="critical"
target_matchers:
- alertname=~".*Down"
equal: [cluster, instance]

equal 限制根因与症状必须属于相同对象。过宽的抑制规则会隐藏独立故障,任何抑制规则都需要测试样例和负责人。