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

配置Prometheus SSL证书到期前置告警失败,请求排查解决

问题分析

你当前的告警规则未触发的核心原因是使用了==进行精确匹配:probe_ssl_earliest_cert_expiry - time() == 86400 * 30。由于Prometheus的采样间隔(通常是数分钟到数十分钟)和时间计算精度限制,证书剩余有效期刚好等于30天整秒数的概率极低,因此规则几乎不可能命中。

解决方案

以下是满足你需求的完整告警规则配置,包含30天触发一次、15天触发一次、7天每日告警的逻辑,同时通过区间判断+Alertmanager抑制规则避免重复告警:

1. Prometheus告警规则配置

groups:
- name: ssl-cert-expiry
  rules:
  # 到期前30天触发一次告警(剩余有效期在15-30天区间)
  - alert: SSL-Cert-Expiring-In-30-Days
    expr: probe_ssl_earliest_cert_expiry - time() <= 86400 * 30 and probe_ssl_earliest_cert_expiry - time() > 86400 * 15
    for: 5m
    labels:
      severity: warning
      alert_type: one_time
    annotations:
      description: "TLS证书将于{{ $value | humanizeDuration }}后到期(实例: {{ $labels.instance }})"
      summary: "SSL证书即将在30天内到期"

  # 到期前15天触发一次告警(剩余有效期在7-15天区间)
  - alert: SSL-Cert-Expiring-In-15-Days
    expr: probe_ssl_earliest_cert_expiry - time() <= 86400 * 15 and probe_ssl_earliest_cert_expiry - time() > 86400 * 7
    for: 5m
    labels:
      severity: warning
      alert_type: one_time
    annotations:
      description: "TLS证书将于{{ $value | humanizeDuration }}后到期(实例: {{ $labels.instance }})"
      summary: "SSL证书即将在15天内到期"

  # 到期前7天每日触发告警(剩余有效期≤7天)
  - alert: SSL-Cert-Expiring-In-7-Days
    expr: probe_ssl_earliest_cert_expiry - time() <= 86400 * 7
    for: 5m
    labels:
      severity: critical
      alert_type: daily
    annotations:
      description: "TLS证书将于{{ $value | humanizeDuration }}后到期(实例: {{ $labels.instance }})"
      summary: "SSL证书即将在7天内到期,每日告警"

2. Alertmanager抑制规则配置(可选,避免重复告警)

在Alertmanager配置文件中添加以下规则,确保进入下一阶段告警时,自动抑制上一阶段的告警:

inhibit_rules:
- source_match:
    alertname: SSL-Cert-Expiring-In-15-Days
  target_match:
    alertname: SSL-Cert-Expiring-In-30-Days
  equal: ['instance']
- source_match:
    alertname: SSL-Cert-Expiring-In-7-Days
  target_match:
    alertname: SSL-Cert-Expiring-In-15-Days
  equal: ['instance']

关键说明

  • 区间判断:通过<=和>组合定义有效期区间,确保每个阶段的告警只会在对应时间窗口内触发,避免精确匹配的问题。
  • for参数:设置为5分钟,过滤临时网络波动或采样异常导致的误告警。
  • 每日告警实现:对于7天内的告警,可在Alertmanager路由配置中设置repeat_interval: 24h,确保每天只发送一次告警通知。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:44