🔄 背景与目标承接上一篇(技术底稿 06),我们已经把 Prometheus + Alertmanager + 邮件告警 链路彻底跑通。今天清明假期,我们只需要做最后一步:把告警搬到大屏上。我的目标很明确:做一块纯告警总览大屏,一眼看全:

  1. 有没有告警?(数量统计)

  2. 什么告警?(服务器宕机 / CPU / 内存等)

  3. 谁挂了?(实例信息)

核心难点:由于 Grafana 使用的是外部 Alertmanager 模式(不是 Grafana 原生告警),原生的 Alert list 面板无法显示 Prometheus 的告警。咱们直接绕开所有坑,用 PromQL 直接查 Prometheus,做一个100% 适配、零冲突的告警大屏。


🛠️ 环境说明

  • 架构:Prometheus + Alertmanager(邮件已通) + Grafana
  • 现状:告警已能发邮件,只需在 Grafana 新建页面展示
  • 策略:复用已有 PromQL,不改动任何告警后端配置

一、核心思路:为什么不用 Alert list?

在你当前的环境(外部 Alertmanager 模式)下,Grafana 的 Alert list 面板有个致命坑

  • 它只显示 Grafana 自己管理的告警,完全不读取 Prometheus/Alertmanager 的外部告警。
  • 无论你怎么勾选过滤,都会显示 No alerts matching filters

最终方案:直接利用 Prometheus 内置的 ALERTS 指标,通过 Table 表格Stat 统计 面板取数。这是最稳、最直接、最准确的方案,数据 100% 来自你的告警源。


二、3 分钟落地步骤(慢动作,一步不落)

步骤 1:新建空白大屏

  1. 打开 Grafana → 左侧 Dashboards → 右上角 New → 选 New dashboard
  2. 命名为 「Prometheus 告警总览大屏」,先不着急保存。

步骤 2:添加「告警列表」面板(核心面板)

  1. 点中间的 Add visualization
  2. 右侧 Data sourceprometheus
  3. Query A 输入框,输入 PromQL:

    promql

    ALERTS{alertstate!="inactive"}
    
    (含义:查询所有非正常状态的告警,即正在告警 / 待处理的告警)
  4. 右侧 VisualizationTable (表格模式最直观)
  5. 右侧 Panel options -> Title服务器告警总览
  6. 点右上角 Apply

步骤 3:添加「当前告警数」大屏(醒目大数字)

  1. 点右上角 添加 -> Visualization
  2. 数据源选 prometheus
  3. Query 输入:

    promql

    count(ALERTS{alertstate="firing"})
    
    (含义:统计当前正在触发的告警总数)
  4. 右侧 VisualizationStat
  5. 配置 阈值与颜色(运维黄金法则):
    • Display -> Color modeBackground
    • Thresholds
      • Level 1 (绿色):填 0 (0 条告警时,显示绿色安心)
      • Level 2 (红色):填 1 (有 1 条及以上告警,立即变红警示)
  6. Title当前告警数
  7. Apply

三、最终效果验证(刚才的截图就是完美成果)

  1. 触发告警:在服务器执行 docker stop node_exporter,等待邮件送达。
  2. 大屏同步
    • 左表:清晰显示 alertname="服务器宕机"instance="node_exporter:9100"alertstate="firing"
    • 右数:显示醒目的 红色大数字 1,视觉冲击强,远看一眼就能看到。
  3. 恢复验证:执行 docker start node_exporter,大屏自动刷新,数字变为 绿色 0,列表清空。


四、监控体系全链路闭环(干货总结)

至此,你的个人监控体系已经完全搭建完成,形成了完美闭环:

  1. 采集:node_exporter 采集服务器 / MySQL 指标。
  2. 存储:Prometheus 存数据 + 存告警规则。
  3. 告警:Prometheus 检测规则,触发事件。
  4. 通知:Alertmanager 过滤聚合 -> 发送 QQ 邮件。
  5. 展示
    • 业务大屏(Linux/MySQL):纯监控,不看告警。
    • 告警大屏(本页):专门看告警,0 绿 1 红,运维最爱的样式。

⚠️ 避坑复盘(这篇文章最大的价值)

  1. 环境适配:在外部 Alertmanager 模式下,切勿使用 Grafana 自带的 Alert list,必坑。
  2. 数据源头:所有告警直接从 Prometheus ALERTS 表取数,数据最权威。
  3. 视觉设计:Stat 面板配置 0绿1红,符合运维大屏直觉,避免误读。

🚀 下一步计划

  • 监控体系已闭环,后续无需新增复杂配置。
  • 节后我们继续在 Prometheus 中新增 CPU / 内存 / 磁盘 告警规则,大屏会自动同步,不用再改 Grafana。

 关注我

持续更新《人生底稿》成长史 &《技术底稿》实战干货一起踏实成长,不焦虑、不内卷。

 📚 系列导航:

 【人生底稿 01】|农村少年(1995–2005)

 【技术底稿】01:37岁老码农,用4台机器搭了套个人DevOps平台

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐