跳到主要内容

Alertmanager 配置速查

正篇里出现过的配置项汇总成表,改配置时随手翻。完整字段定义以官方配置参考为准(见附录《参考资料》)。

route 路由字段​

字段类型作用备注
matchers字符串列表匹配条件,如 ["severity=\"critical\"", "team=~\"order|pay\""]0.27 起取代废弃的 match / match_re
receiver字符串匹配后交给哪个接收器缺省落到根路由的默认 receiver
continue布尔匹配后是否继续匹配后续兄弟路由默认 false,匹配即停
group_by标签名列表按哪些标签把告警聚成一组发一条通知同组共用同一条通知
group_wait时长新告警组首次发送前等待多久默认 30s,攒一波再发
group_interval时长已有组内新增告警后,多久再发一次默认 5m
repeat_interval时长内容无变化的告警多久重发一次默认 4h,防轰炸的关键
mute_time_intervals字符串列表引用 time_intervals,命中的时段不发通知维护窗口免打扰
active_time_intervals字符串列表引用 time_intervals,只在命中时段发通知与 mute 相反,0.24+ 支持
routes子路由列表嵌套的子路由,自上而下匹配子路由继承父路由未覆盖的参数

receiver 类型​

类型用途关键字段
email_configs邮件通知to、from、smarthost、require_tls
webhook_configs通用 webhook,对接钉钉/企微等转换层url、send_resolved、http_config
slack_configsSlack 消息api_url、channel、title、text
opsgenie_configsOpsgenie 值班与升级api_key、responders、priority
pagerduty_configsPagerDuty 值班routing_key 或 service_key、severity
wechat_configs企业微信应用消息api_secret、corp_id、to_user / to_party
victorops_configs、sns_configs、telegram_configs、discord_configs、msteams_configs 等其余内置集成各自鉴权和目标字段

所有类型的集成配置里都有 send_resolved,控制是否发送恢复通知,默认值因类型而异,建议显式写出。

inhibit_rules 抑制规则三要素​

字段作用
source_matchers源告警匹配条件——它触发时,压制目标告警
target_matchers目标告警匹配条件——被压制的告警
equal源和目标在这些标签上取值相同才生效(如同一 instance)

典型用途:critical 压制同实例的 warning;集群级告警压制该集群下所有单机告警。

silence 静默的 amtool 命令​

amtool 通过 --alertmanager.url 指定目标实例:

操作命令
创建静默amtool silence add alertname="NodeDown" instance="10.0.0.21:9100" --duration=2h --comment="维护升级" --author=liangyou
按正则匹配amtool silence add alertname=~"Node.*" --duration=1h
查看当前静默amtool silence query
过期指定静默amtool silence expire <silence-id>
全部过期amtool silence expire $(amtool silence query -o json | jq -r '.[].id')
查询告警amtool alert query severity="critical"
查看配置amtool config show
amtool 配置文件

把 --alertmanager.url 固化到 ~/.config/amtool/config.yml 里,就不用每次敲地址。

time_intervals 时间段字段​

字段写法示例含义
timesstart_time: 02:00 / end_time: 06:00每天的起止时刻
weekdays['monday:friday']星期范围,可枚举可区间
days_of_month['1', '15:20']每月几号,可枚举可区间
months['1:3']月份范围
years['2026']年份
location'Asia/Shanghai'时区,缺省 UTC

一个 time_interval 内多个字段是「与」关系,数组内多项是「或」关系。被 route 的 mute_time_intervals 或 active_time_intervals 按名字引用。