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

如何高效配置Prometheus Alertmanager实现容器宕机告警?

高效配置容器宕机告警的Prometheus规则方案

不用给每个容器单独写规则,只要利用PromQL的指标匹配和标签变量,就能用一条规则覆盖所有容器的宕机告警需求,具体方案如下:

核心告警规则配置

首先确保你已经通过cadvisor或类似exporter采集到了container_up指标(1代表容器运行,0代表停止),然后添加以下告警规则:

groups:
- name: container_alerts
  rules:
  - alert: ContainerDown
    expr: container_up == 0
    for: 1m  # 可根据业务调整,避免容器短暂重启触发误告警
    labels:
      severity: critical
    annotations:
      summary: "容器 {{ $labels.name }} 已宕机"
      description: "主机 {{ $labels.instance }} 上的容器 {{ $labels.name }} (ID: {{ $labels.container_id }}) 停止运行已超过1分钟。"

规则原理说明

  • container_up == 0会自动匹配所有处于停止状态的容器,Prometheus会为每个符合条件的容器生成独立告警,无需逐个配置。
  • {{ $labels.xxx }}会自动提取指标附带的标签信息(比如容器名、主机实例、容器ID),让告警信息精准定位问题。

优化建议

  • 过滤非监控容器:如果有临时容器、sidecar等无需告警的容器,可通过标签过滤排除:
    expr: container_up == 0 and on(name) (container_name !~ "temp-.*|sidecar-.*")
    
  • 调整告警延迟:如果你的容器存在频繁短重启的场景,可延长for的时长(比如5m),减少误告警。
  • 完善指标标签:确保exporter采集的container_up指标带有name(容器名)、instance(主机地址)、container_id等关键标签,否则告警信息会缺乏定位依据。
  • 验证规则有效性:在Prometheus的Graph页面执行container_up == 0,检查是否能正确返回已停止的容器,确认规则逻辑无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:52:09