Alertmanager 配置骨架是什么
一份完整配置由几段构成:全局段定义默认超时与解析行为,路由段决定告警按标签走到哪个接收器,接收器段定义通知通道,抑制规则在风暴时压掉衍生告警,模板段加载通知文案。把它当成新环境的起点骨架,按需增删而不是从零拼装,能减少漏段与引用错误。上线前务必用校验工具确认。
基本信息
| 适用平台 | Alertmanager 0.2x 系列,配置格式为 YAML |
|---|---|
| 必填段落 | route 与 receivers |
| 常用可选项 | inhibit_rules、templates、global |
| 校验命令 | amtool check-config 配置文件 |
典型使用场景
- 新环境搭建:按骨架先跑通通知链路再逐步细化路由
- 分级通知:严重级别走电话,其它走群通知
- 风暴抑制:集群级故障出现时压掉其上的服务告警
- 文案统一:把通知模板集中管理,各团队复用
- 迁移参考:旧配置迁移时对照骨架检查缺项
配置骨架
配置骨架
global:
resolve_timeout: 5m # 告警自动恢复的判定窗口
route:
receiver: default-im # 兜底接收器
group_by: [alertname, cluster, service] # 分组维度
group_wait: 30s # 首次等待,合并同批告警
group_interval: 5m # 同组新增告警的等待
repeat_interval: 4h # 未恢复告警的重复通知间隔
routes:
- matchers: [ 'severity="critical"' ]
receiver: pager
repeat_interval: 1h
receivers:
- name: default-im # 名称需与路由引用一致
webhook_configs:
- url: http://127.0.0.1:8060/relay
- name: pager
pagerduty_configs:
- routing_key_file: /etc/alertmanager/pd.key
inhibit_rules:
- source_matchers: [ 'alertname="ClusterDown"' ]
target_matchers: [ 'severity=~"critical|warning"' ]
equal: [cluster] # 同集群才抑制
templates:
- /etc/alertmanager/templates/*.tmpl段落职责
| 段落 | 作用 | 常见错误 |
|---|---|---|
| global | 默认超时与全局行为 | 与单条规则设置冲突时优先级不清 |
| route | 路由树与分组时机 | 引用了未定义的接收器 |
| receivers | 通知通道定义 | 名称拼写与引用不一致 |
| inhibit_rules | 风暴抑制 | 缺少 equal 导致误抑制 |
| templates | 通知文案模板 | 模板路径错误导致启动失败 |
路由里引用的接收器名称必须已经定义:改名时两处要同步修改,改完用路由预演命令确认命中结果,避免通知静默丢失。
分组维度直接决定通知条数:按告警名、集群与服务分组能保留定位所需信息,同时把同一故障的大量实例合并成一条通知。