第3章 监控与告警体系

SRE 面试中,监控与告警是高频专题,核心考察设计思维、分级逻辑与响应闭环。本章从告警设计原则、分级标准到响应流程,拆解面试必问三大问题,并附真实项目案例供迁移。

告警分级参考表

级别定义响应时间示例
P0核心服务不可用,影响大量用户即时响应(<10分钟)支付接口超时率>80%
P1重要功能受损,部分用户受影响15分钟内确认订单查询延迟>5秒
P2非关键功能异常,无直接用户影响1小时内响应灰度监控告警延迟
P3日常性能波动或低优先级事件下一个工作日磁盘空间使用率>80%

告警响应流程(标准闭环)

  1. 发现与通知:监控系统触发告警 → 按级别发送至对应渠道(如电话、钉钉、PagerDuty)。
  2. 确认与定级:值班人员确认告警,验证是否误报,确认实际等级。
  3. 应急处理:执行预案(降低影响、限流、重启等),同步更新状态页。
  4. 升级与协作:若超时未解决,自动或手动升级给更高级别团队。
  5. 复盘与改进:事后根因分析,补充/优化告警规则与预案。
监控告警回答框架 告警设计原则 指标选取(RED/四大黄金) 避免抖动与误报(去重/聚合) 告警分级标准 P0-P3 定义与时限 SLO 维度驱动分级 响应流程闭环 Oncall 机制与升级策略 复盘与规则优化

面试问答卡片

Q1:如何设计一个合理的告警体系?

考察点:体系化思维、指标理解、对误报/抖动的控制。

回答框架:
① 基于 SLO 选择核心指标(RED:Rate/Errors/Duration 或四大黄金指标)→ ② 设置阈值(静态+动态基线)→ ③ 设计分级规则(P0-P3)→ ④ 避免告警风暴(聚合、沉默、削峰)。

示例回答:
“我会从业务 SLO 出发,选取高延迟率、错误率作为 P0 指标。使用 Prometheus + 动态阈值算法减少误报。同时设置 5 分钟聚合窗口,避免抖动。最后按影响范围和响应时限分四个等级,确保重要告警不被淹没。”

可能追问:
动态阈值如何实现?误报率控制在多少?告警去重具体怎么做?

避坑提醒:不要只说“设置阈值”,要体现人工与自动结合;避免提太多工具名但无思路。

Q2:你们公司的告警分级标准是怎样的?

考察点:对分级依据的理解、是否能结合 SLO 定义、实际落地经验。

回答框架:
① 分级维度:用户影响面、服务 SLA 偏离程度、响应速度要求 → ② 具体数值对照(如 P0:核心功能完全不可用,10 分钟确认) → ③ 升级路径说明。

示例回答:
“我们按 P0-P3 分级。P0 指用户无法下单或支付,要求 5 分钟内响应并切入应急预案。P1 是核心功能延迟超过 SLI 阈值,15 分钟内确认。P2/P3 走工单流程。分级驱动告警通道不同,P0 直接电话+钉钉多次推送。”

可能追问:
如果两个不同业务的告警级别冲突怎么定?如何确保分级一致性?

避坑提醒:避免只说“按严重程度分”而不给具体数值;也不要宣称“所有告警都重要”,显得没有分级。

Q3:描述一次你处理告警的全流程。

考察点:实战应急能力、工具使用、升级机制、复盘改进。

回答框架:
① 收到告警(描述告警内容)→ ② 确认/定级(判断是否误报)→ ③ 应急执行(限流/降级/重启)→ ④ 同步与升级(通知相关方)→ ⑤ 根因分析与后置改进。

示例回答:
“某次支付 P0 告警,延迟 P99 从 200ms 升至 5s。我立即确认影响面,执行限流预案,同时通知商户端降级。10 分钟后定位为数据库连接池满,快速扩容恢复。事后增加连接池监控并优化告警阈值,改进后未再复发。”

可能追问:
如果限流后仍有问题怎么办?复盘报告里有哪些关键改进项?

避坑提醒:不要只说“我处理了”缺乏细节;确保提到“事后改进”体现闭环意识。

项目案例:电商核心交易链路告警治理

项目名称交易链路告警治理及 Oncall 流程优化
业务背景618 大促前夕,支付、订单、库存三条核心接口频繁误报,值班人员疲劳,真实故障延迟发现。
规模指标日订单量 800 万+,QPS 峰值 12 万,30+ 微服务实例,150+ 告警规则。
技术栈Prometheus + Alertmanager + Grafana, Kafka 事件流, 自建通知通道(钉钉/企微/电话),Elasticsearch 日志。
核心难点① 业务抖动导致瞬间误报 ② 高低等级告警混在一起 ③ Oncall 人员对规则不熟 ④ 无统一升级策略。
面试高频追问
  • 你怎么确定哪些告警可以聚合?
  • 动态阈值用了几种算法?
  • Oncall 升级策略如何设计?
  • 大促前后规则做了哪些调整?
可迁移回答话术 “我们采用两个层次的去抖:一是 Alertmanager 的 inhibit 规则抑制重复告警;二是在 promql 中使用 avg_over_time(5m) 平滑曲线并设置 hysteresis 阈值带。分级上,将 SLO 偏离度映射为分数,分数落入不同区间自动定级。Oncall 按服务域划分一级值班,15 分钟未确认自动升级到二级团队,并同步到 技术负责人群。”
加分提示:面试中提及告警体系时,尽量结合具体业务(如交易、支付、搜索)说明设计逻辑,而非空谈理论。能用“SLO → SLI → 告警规则”的推导链路展示系统思维,容易获得面试官认可。