乐于分享
好东西不私藏

当告警风暴来临——AI在告警收敛与根因定位中的应用与边界

当告警风暴来临——AI在告警收敛与根因定位中的应用与边界

系列:《当AI遇上网络管理:一个运维团队的理性探索》第2篇


引子

我们曾经做过一个统计:某次核心交换机的板卡故障,在15分钟内触发了347条告警。

这些告警来自不同的监控维度:端口Down、OSPF邻居丢失、BGP会话Reset、上联链路带宽骤降、下游服务器ping不通……它们像瀑布一样涌入值班工程师的屏幕。但真正的"根因"只有一个——那块坏掉的板卡。

问题是:在这347条告警中,工程师怎么在最短时间内找到那个"一"?

靠经验。靠直觉。靠对网络拓扑的熟悉程度。而这些,恰恰是最难标准化、最难复制的能力。

当我们开始探索AI在网络管理中的应用时,告警管理是我们最先瞄准的场景——因为它是最痛的,也可能是最有希望的。


一、告警管理的本质困境

在深入AI方案之前,我们需要先理解告警管理的根本矛盾:

1."宁可多报,不可漏报"的悖论

监控系统的设计哲学是"宁可多报,不可漏报"。这个原则在理论上完全正确——漏掉一个关键告警可能导致严重后果。但在实践中,这导致了一个讽刺的结果:告警太多了,重要的信息反而被淹没了。

我们管理着千台级别的网络设备。按照保守估计,每天产生的原始告警数量在数千条到上万条之间。其中,真正需要人工介入处理的,可能不到10%。

这就是"告警疲劳"(Alert Fatigue)——当工程师每天面对海量告警时,他的注意力会自然下降,关键告警的响应速度也会变慢。从某种意义上说,过多的告警和没有告警一样危险。

2.告警 ≠ 故障

另一个常见的误解是把"告警"等同于"故障"。实际上:

- 一个故障可能触发几十甚至几百条告警

- 一条告警可能只是短暂的抖动,根本不需要处理

- 多个看似独立的告警,可能有共同的根因

- 同一条告警反复出现,可能是监控阈值设置不合理

告警是"症状",不是"诊断"。AI在告警管理中的价值,就是帮助工程师从"症状"中推导出"诊断"——或者至少,缩小排查范围。


二、三层收敛模型:让告警数量"可管理"

经过调研和实践,我们设计了一个三层渐进式的告警收敛模型。每一层解决一类问题,技术复杂度逐层递增:

第一层:去重与抑制(规则引擎即可)

这是最基础也最容易实现的一层:

-去重:同一设备的同一告警在恢复前只保留一条

-抑制:设备维护窗口期内的告警自动静默

-频率控制:短时间内重复触发的告警合并为一条

这一层甚至不需要AI——传统的规则引擎就能搞定。但别小看它,光是做好去重和抑制,就能过滤掉30-50%的噪声告警。

核心价值:把"一万条"变成"五千条"。

第二层:关联分析(需要拓扑和配置数据)

这一层开始需要"智能"了:

-时空关联:在时间窗口内(比如5分钟)、空间范围内(比如同一网段)的告警自动聚合

-拓扑关联:如果一个核心设备的告警和它下游所有设备的告警在同一时间出现,那么下游告警很可能是"被动影响"

-配置关联:如果在告警发生前30分钟有过配置变更,将告警与变更记录关联

这一层的关键依赖是拓扑数据的准确性。如果你的CMDB里的拓扑关系不准确,关联分析的结果也会大打折扣。

核心价值:把"五千条"聚合成"几十个告警组",每个组代表一个可能的故障事件。

第三层:智能聚类与优先级排序(AI发挥空间)

到了这一层,LLM和ML模型开始真正发挥作用:

-语义聚类:基于告警文本的语义相似度进行聚类(不仅仅是字面匹配)

-异常检测:基于历史基线判断当前告警模式是否异常

-优先级智能排序:综合考虑告警类型、影响设备、业务关联度、历史发生频率等多维度因素,给出处理优先级建议

我们发现,三层收敛后,工程师需要关注的告警数量可以从"每天数千条"降低到"每天数十条可操作事件"。

这不是消灭告警,而是让告警变得"可管理"。


三、根因定位:AI的"经验实习生"角色

告警收敛解决了"看什么"的问题,但更有价值的问题是"为什么"——也就是根因定位。

LLM辅助根因推理的实际模式

在我们的设想中,LLM辅助根因定位的工作流程是这样的:

1. 信息收集:Agent自动收集故障设备的告警历史、当前配置、近期变更记录、接口状态、邻居关系

2. 知识检索:通过RAG检索类似故障的历史案例和对应SOP

3. 推理分析:LLM综合以上信息,给出2-3个可能的根因假设,并说明推理依据

4. 人工验证:工程师根据AI的建议进行验证,确认或排除假设

注意这个流程的核心特点:AI给出"假设",人来做"验证"。

一个具体的例子

假设我们收到一组聚合后的告警:某台设备的多个OSPF邻居同时断开。

AI的推理过程可能是:

- 检索到该设备近期有过配置变更 → "可能是配置变更导致"

- 但配置变更内容是ACL调整,与OSPF无关 → 排除

- 检查接口状态,发现上联接口CRC错误率异常升高 → "可能是物理层问题"

- 检索历史案例,发现类似CRC错误模式通常与光模块衰减有关 → "建议检查光模块光功率"

最终AI给出建议:"建议检查设备X的GE0/0/1接口光模块,CRC错误率异常升高,历史案例显示该模式通常由光模块衰减引起"——并附上引用的历史案例链接。

这个建议准确吗?不一定。但它做到了两件事:

1. 缩小了排查范围——从"不知道哪里出了问题"到"先看看光模块"

2. 提供了推理依据——工程师可以判断这个建议是否合理

这就是我们说的"经验丰富的实习生"——它不能替你做决策,但能帮你整理信息、提出假设、节省排查时间。


四、那个被忽视的前提:拓扑数据的质量

在我们探索告警AI的过程中,有一个"不方便说"的真相:拓扑数据往往是网络运维中最不准确的数据。

根因定位严重依赖拓扑感知——AI需要知道"A设备和B设备之间是什么关系""这条链路断了会影响哪些下游设备"。但在实际环境中:

- CMDB里的拓扑信息经常过时(设备变更后没有及时更新)

- 自动发现的拓扑可能不完整(有些设备不响应LLDP/CDP)

- 逻辑拓扑和物理拓扑可能不一致

- 跨厂商环境下的拓扑发现更加困难

如果拓扑数据有20%的错误率,基于拓扑的根因分析结果可信度就要打个大折扣。

这给我们的启示是:在投入AI能力建设之前,先投入拓扑数据的治理和自动维护。这听起来不如"AI根因定位"那么酷炫,但它是真正的地基。


五、分阶段引入的建议

基于我们的实践思考,告警AI的引入应该遵循以下节奏:

第一步(1-2个月):做好第一层收敛(去重、抑制、频率控制)。这个不需要AI,用规则引擎就行,但效果立竿见影。

第二步(3-6个月):投入拓扑数据治理,同时实现第二层的时空关联和拓扑关联。这个阶段的价值是让告警从"一坨"变成"一组组"。

第三步(6-12个月):引入LLM辅助的智能聚类和根因推理。此时你已经有了相对干净的数据和准确的拓扑,AI才能真正发挥作用。

千万不要跳过前两步直接做第三步。 没有干净的数据和准确的拓扑,AI只会给你"自信的错误答案"。


🚫 「确实不行」的时候

1. 跨域级联故障的完整根因链推导

当一个故障从ISP侧的链路问题,级联到内部路由震荡,再传导到应用层超时,最终导致业务异常——这种跨越多个技术域的故障链推导,目前的AI能力还远远不够。因为它需要同时理解运营商网络、企业内部网络、服务器负载、应用架构……这些信息通常分散在不同团队和系统中。

2. 硬件间歇性故障

光模块在特定温度下性能劣化、线卡在高负载下偶发丢包、电源模块在切换时产生微秒级中断——这些"物理世界"的问题,AI看不到。告警系统记录的只是"结果"(端口flap、丢包率升高),而不是"原因"(光模块坏了)。

最终还是需要工程师拿着光功率计去机房测量,这是AI无法替代的。

3. 首次遇到的全新故障模式

AI的推理本质上是"模式匹配"——在历史案例中找到类似的模式。但对于全新的故障(比如一个新版本固件引入的未知Bug),历史库里没有任何参考,AI只能说"我不确定",或者更糟的是,给出一个看似有道理但完全错误的答案。

对于未知的未知,人类的创造性排障思维仍然是不可替代的。


💡 写在最后

告警管理是网络AI投入产出比最高的场景之一,但请注意两个关键词:"收敛"是确定性的,"根因"是概率性的。

- 告警收敛(尤其是前两层)的效果是确定性的,做了就会有显著改善

- 根因定位的效果是概率性的,AI能"缩小范围"但不能保证"一步到位"

给团队管理者的建议:

1.先做收敛,再谈根因。收敛的投入产出比更高,风险更低

2.投资拓扑数据质量。这是所有高级告警分析的地基

3.用"辅助"的心态引入AI。AI是给工程师的工具,不是替代工程师的武器


📖 系列导航

 ← 上一篇:《为什么网络管理是AI落地的理想土壤(且又不是)》

下一篇:《让AI帮你"翻译"配置——多厂商配置管理中的AI实践》 →

本文是《当AI遇上网络管理》系列的第2篇。本系列共9篇,从一个实际运维团队的视角,客观分享AI技术在网络管理各领域的探索、实践与反思。

相关学习资料