You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Alertmanager中正确设置PagerDuty告警的Severity级别

PagerDuty告警Severity配置不生效的解决方法

你配置的硬编码severity: 'warning'最终在PD侧显示为critical,按以下优先级排查处理即可:

  • 先确认Alertmanager配置生效状态与路由匹配逻辑
    改完配置后必须执行curl -X POST http://<你的Alertmanager服务地址>/-/reload触发配置重载,重载前先执行amtool check-config <你的配置文件路径>校验语法,避免语法错误导致配置加载失败。
    配置重载后访问Alertmanager的/-/status页面,查看当前生效配置里对应的whatever_pd_service接收器是否真的存在severity: 'warning'配置;同时核对路由树规则,确认触发的告警确实匹配到了这个接收器,而不是走到了其他未配置severity的PD接收器——未显式配置severity的PD接收器默认会发送critical级别。
  • 检查PD侧的事件改写规则
    如果抓包确认Alertmanager往PD发送的事件payload里severity字段值确实是warning,直接登录PD控制台,进入对应服务的「事件规则」配置页,检查是否存在优先级更高的规则强制将所有事件的severity改写为critical,这类规则会覆盖集成传入的所有字段值。
  • 兼容旧版本Alertmanager的逻辑缺陷
    v0.21.0之前的Alertmanager版本存在已知bug:PDv2集成的severity字段不会读取静态配置值,会强制调用默认模板从告警的severity标签取值,标签不存在或值不合法时自动 fallback 为critical。这类场景要么直接升级Alertmanager到最新稳定版,要么把静态值改成模板常量形式强制传值,修正后的配置参考:
- name: 'whatever_pd_service'
  pagerduty_configs:
  - send_resolved: true
    service_key: SERVICE_KEY
    url: https://events.pagerduty.com/v2/enqueue
    client: '{{ template "pagerduty.default.client" . }}'
    client_url: '{{ template "pagerduty.default.clientURL" . }}'
    severity: '{{ "warning" }}'
    description: '{{ (index .Alerts 0).Annotations.summary }}'
    details:
      firing: '{{ template "pagerduty.default.instances" .Alerts.Firing }}'
      information: '{{ range .Alerts }}{{ .Annotations.information }}{{ end }}'
      num_firing: '{{ .Alerts.Firing | len }}'
      num_resolved: '{{ .Alerts.Resolved | len }}'
      resolved: '{{ template "pagerduty.default.instances" .Alerts.Resolved }}'
  • 校验severity取值合法性
    PagerDuty v2事件API仅认可critical、warning、error、info四个合法级别,如果传入值带前后空格、不可见字符,或是其他自定义字符串,PD会直接丢弃该值,默认回退为critical级别。

内容的提问来源于stack exchange,提问作者Ken Tsoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:12:30