Alertmanager API v2 是什么
Alertmanager API v2 提供查询告警与自动化静默的能力:/api/v2/alerts 支持按标签过滤查询当前告警,/api/v2/silences 允许以 JSON 创建、查询与撤销静默。发布流水线常靠它在变更窗口自动创建静默、发布完成后提前撤销,实现变更与告警的自动联动。接口默认没有鉴权,因此只应监听内网或前置带认证的代理。
基本信息
| 主要端点 | /api/v2/alerts、/api/v2/silences、/api/v2/status |
|---|---|
| 查询参数 | filter(标签过滤)、active、silenced |
| 静默字段 | matchers、startsAt、endsAt、createdBy、comment |
| 时间格式 | RFC3339 且必须带时区 |
| 适用版本 | Alertmanager 0.2x 及以上 |
典型使用场景
- 自动化静默:流水线创建静默,并在发布验证通过后撤销
- 状态核对:查询当前活跃告警,用于自定义看板或巡检脚本
- 批量操作:批量清理遗留静默,避免长期压制告警
- 集成联动:把静默与变更单系统打通,形成可追溯记录
- 巡检取证:定时快照当前告警列表,用于周报统计
使用要点
- 创建接口会返回静默标识,流水线要记录它才能精确撤销
- 时间字段必须带时区,写本地时间不加偏移会整体错位
- 接口无鉴权时仅监听内网,或前置带认证的代理
- 批量清理前先列出目标静默,确认范围再执行
- 静默到期会自动失效,流水线不必强行删除
API 调用示例
API 调用示例
# 查询指定告警(filter 为标签过滤表达式)
curl -s 'http://127.0.0.1:9093/api/v2/alerts?filter=alertname%3DHighErrorRate&active=true&silenced=false'
# 创建静默
curl -s -XPOST http://127.0.0.1:9093/api/v2/silences -H 'Content-Type: application/json' -d '{
"matchers": [{"name": "service", "value": "order-svc", "isRegex": false}],
"startsAt": "2026-10-12T09:00:00Z",
"endsAt": "2026-10-12T11:00:00Z",
"createdBy": "deploy-bot",
"comment": "order-svc 发布窗口"
}'
# 撤销静默
curl -s -XDELETE http://127.0.0.1:9093/api/v2/silence/<silence-id>字段与注意
| 字段 | 含义 | 注意 |
|---|---|---|
| filter | 标签过滤表达式 | 需做 URL 编码 |
| matchers | 静默匹配条件 | 等值与正则需显式声明 |
| startsAt / endsAt | 静默起止时间 | RFC3339 且带时区 |
| createdBy | 创建者 | 写流水线账号便于追溯 |
| comment | 说明 | 建议带上变更单号 |
创建接口会返回静默标识,流水线记录它即可在发布结束后精确撤销,比事后去「撤销最近一条」的模糊做法可靠得多。