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

Prometheus抑制规则疑问:已触发的High告警为何未被Critical抑制?

Alertmanager抑制规则失效问题分析

配置信息

抑制规则

inhibit_rules:
- source_match:
    severity: 'critical'
  target_match:
    severity: 'high'
  equal: ['alertname']

CPU使用率告警规则

High级别告警(Alert 1)

- alert: ContainerCpuUsage
    expr: ContainerCpuUsage > 90
    for: 30m
    labels:
      severity: high
      topic: container
    annotations:
      summary: "Container CPU usage for pod '{{ $labels.pod }}' is above 90% for the last 30 minutes."
      description: "Container CPU usage (name {{ $labels.pod }})
MeasuredValue={{ printf "%.2f" $value }}%"

Critical级别告警(Alert 2)

- alert: ContainerCpuUsage
    expr: ContainerCpuUsage > 98
    for: 30m
    labels:
      severity: critical
      topic: container
    annotations:
      summary: "Container CPU usage for pod '{{ $labels.pod }}' is above 98% for the last 30 minutes."
      description: "Container CPU usage (name {{ $labels.pod }})
MeasuredValue={{ printf "%.2f" $value }}%"

问题场景

  • 场景1:CPU使用率从20%突升至99%,仅触发Critical告警,符合预期;
  • 场景2:CPU使用率先升至91%触发High告警,之后升至99%触发Critical告警,但High告警仍处于激活状态,未被抑制关闭。

问题解答

为何High告警未被抑制?

Alertmanager的抑制规则仅负责阻止目标告警发送通知,不会改变告警本身的激活状态。当CPU使用率达到99%时,High告警的表达式ContainerCpuUsage > 90依然成立,Prometheus会持续生成这条告警,Alertmanager只是不对外发送它的通知,但告警本身仍会保持激活状态。

另外当前抑制规则仅匹配alertname,如果要确保只抑制同一Pod的对应告警,需要把pod标签加入equal列表,但即使调整后,也只能控制通知,无法关闭告警。

抑制规则能否关闭已触发的告警?

不能。抑制规则的核心作用是管控通知流程,不干预告警的生命周期。告警的激活/关闭完全由Prometheus的告警规则表达式决定:只要表达式为真,告警就保持激活;只有当表达式为假且持续for配置的时长后,告警才会被标记为resolved(关闭)。

实现预期效果的方案

要让CPU>98%时仅保留Critical告警,需修改High级别告警的表达式,排除已触发Critical的场景:

- alert: ContainerCpuUsage
    expr: ContainerCpuUsage > 90 AND ContainerCpuUsage <= 98
    for: 30m
    labels:
      severity: high
      topic: container
    annotations:
      summary: "Container CPU usage for pod '{{ $labels.pod }}' is above 90% for the last 30 minutes."
      description: "Container CPU usage (name {{ $labels.pod }})
MeasuredValue={{ printf "%.2f" $value }}%"

当CPU超过98%时,High告警的表达式变为假,持续30分钟后就会自动关闭,此时仅Critical告警处于激活状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:25:22