4、告警路由与分派:基于规则的告警路由、告警分派策略(轮询、权重、智能分派)
告警来了,然后呢?
这是很多运维团队初期会忽略的问题。大家往往把精力花在「怎么把告警发出来」,却很少思考「发给谁、怎么发、发完谁处理」。结果就是:告警全堆在一个群里,值班的人手忙脚乱,非值班的人视而不见。
我个人习惯把告警路由和分派比作「快递分拣中心」。告警就是包裹,路由规则决定了它去哪个片区,分派策略决定了由哪个快递员送货。今天我们就来拆解这个流程。
4.1 告警路由:让告警找到正确的门
告警路由的核心,就是根据告警的元数据,把它送到对应的处理队列或团队。说白了,就是「谁家的孩子谁抱走」。
常见的路由规则维度:
- 按告警级别:P0 级告警直接路由到 SRE 核心群,P3 级告警走工单系统。
- 按业务线:支付相关的告警路由到支付团队,用户相关的路由到用户增长团队。
- 按告警来源:基础设施告警走基础设施组,应用层告警走应用运维组。
- 按时间窗口:非工作时间的高级别告警,直接升级到值班经理。
我在项目中遇到过一个问题:某次大促期间,所有告警都涌向了同一个群,因为路由规则只配了「按告警级别」,没有区分业务线。结果支付团队被大量非支付告警刷屏,真正重要的支付失败告警反而被淹没了。
核心原则:路由规则要尽量细化,但不要过度碎片化。建议先按「业务域」做一级路由,再按「告警级别」做二级路由。
4.2 告警分派策略:谁来解决这个问题
路由决定了告警去哪个团队,分派则决定了团队里谁来接这个活。这里我重点讲三种主流策略:轮询、权重、智能分派。
4.2.1 轮询分派
最简单粗暴的方式。把团队成员排个序,告警来了按顺序轮流分配。比如 A、B、C 三个人,第一个告警给 A,第二个给 B,第三个给 C,第四个又回到 A。
优点:公平,每个人处理数量差不多。
缺点:不考虑个人能力差异和当前负载。比如 A 正在处理一个复杂问题,又来一个告警,还是硬塞给他。
我的建议:轮询适合告警量不大、团队成员能力相近的场景。如果团队里有人是新手,有人是专家,轮询就不太合适了。
4.2.2 权重分派
给每个人分配一个权重值,权重越高,被分配到的概率越大。比如专家权重是 3,新手权重是 1,那么专家被分配的概率是新手的 3 倍。
权重设置参考:
| 角色 | 权重 | 说明 |
|---|---|---|
| 高级 SRE | 5 | 能处理复杂问题 |
| 中级 SRE | 3 | 能处理大部分问题 |
| 初级 SRE | 1 | 处理简单告警,需要指导 |
| 值班经理 | 2 | 负责协调和升级 |
我曾经在一个项目中用过权重分派,效果不错。但有个坑:权重是静态的,不会自动调整。如果某个人今天状态不好,或者正在休假,权重还是不变,就会导致告警分配不合理。
注意:权重分派一定要配合「在线状态」和「忙碌状态」检测。如果一个人已经标记为忙碌或离线,应该自动跳过,把告警分配给下一个人。
4.2.3 智能分派
这是目前比较高级的做法。基于历史数据、个人技能标签、当前负载等因素,动态决定谁最适合处理这个告警。
智能分派的常见因素:
- 历史处理记录:谁处理过类似告警?处理速度如何?解决率如何?
- 技能标签:比如张三擅长数据库,李四擅长网络,数据库告警优先给张三。
- 当前负载:正在处理 3 个告警的人,优先级低于正在处理 1 个告警的人。
- 时间因素:谁最近处理过这个系统的告警?上下文还在,接手成本低。
嗯,这里要注意:智能分派听起来很美好,但实现起来需要数据积累。我见过一个团队,刚上线智能分派时,因为历史数据太少,分派结果还不如轮询。所以我的建议是:先跑轮询或权重,等积累了足够的历史数据(至少 3 个月),再切换到智能分派。
4.3 路由与分派的联动设计
路由和分派不是孤立的,它们需要联动。我画了一张图来说明这个流程:
你看,整个流程其实很清晰。告警先经过路由引擎,匹配规则后进入对应的队列,然后分派引擎根据策略选择具体的人。我在实际落地时,通常会把路由和分派做成两个独立的微服务,方便各自扩展和调优。
4.4 避坑指南与最佳实践
做告警路由和分派,有几个坑我踩过,分享给你:
- 不要把所有告警都路由到同一个人:我曾经见过一个团队,因为某个人技术最好,所有告警都路由给他。结果他成了瓶颈,其他人越来越依赖他,团队能力严重失衡。
- 分派策略要支持手动干预:自动分派不是万能的。有时候某个告警需要特定的人处理,要支持手动指定或转派。
- 要有升级机制:如果告警在 15 分钟内无人认领,自动升级到上一级。如果 30 分钟还没处理,升级到值班经理。这个机制能避免告警「沉底」。
- 记录分派历史:谁处理了什么告警、处理了多久、结果如何,这些数据是优化分派策略的基础。
一句话总结:路由让告警找到对的团队,分派让团队找到对的人。两者配合好了,告警处理效率能提升 50% 以上。
好了,关于告警路由和分派,今天就聊到这里。下一章我们会深入告警的升级与降级策略,看看告警处理过程中还有哪些细节需要注意。