首页 › tech › 告警风暴:从十万条到一百条

概述

一条光缆中断,NOC大屏上为什么会冒出几万条告警?本文回答一个每位网管值班工程师都绕不开的问题:告警风暴是怎么发生的、为什么网管越先进告警反而越多、以及一线团队如何用「压缩—抑制—关联」三板斧把十万条原始告警收敛到一百条以内、把根因从半小时的翻屏劳动变成十分钟内的定位动作。文章结合 ITU-T X.733、RFC 3877、3GPP TS 32.111-2 三个标准对告警模型的定义,拆解四类风暴成因与治理方法,并给出省级NOC规模的治理目标参考值与一份可直接落地的核查清单。

目录

01 场景还原:凌晨三点,大屏从绿变红

先把场景摆出来。以下是一个典型化拼合的场景,素材来自多个省级网络光缆中断故障的共性还原,不指向任何具体运营商的具体事件。

凌晨3:17,省干一对10G波分通道被第三方施工挖断。这是再普通不过的故障,抢修队伍4小时内到场、6小时内熔接完毕,教科书级别。但对NOC值班工程师来说,接下来的一小时是彻夜的翻屏劳动:

这就是告警风暴(alarm storm / alarm flood)。它的残酷之处在于一个反直觉的事实:告警越多,有效信息越少。人耳在持续噪音下会暂时性失聪,NOC大屏在持续刷屏下也一样——真正的那条根因告警,混在两万条衍生告警里,和噪音毫无区别。业界对NOC告警的普遍经验值是:原始告警中需要人工介入的比例长期低于1%,其余都是衍生、重复与抖动。

02 告警风暴的四个发生机理

要治理,先要分清风暴是哪一种。一线实践里,告警风暴基本逃不出四类成因,特征和治理路径完全不同:

类型 典型触发 特征 治理要点
派生级联型 光缆中断、核心网节点宕机 告警沿拓扑扇出,量级与下挂网元数成正比,根因只有一条 拓扑依赖抑制,保根因、降衍生
重发抖动型 链路闪断、单板复位、光功率临界 同一告警反复raise/clear,条数虚高但对象单一 去重压缩+抖动抑制窗口
批量重连型 网管重启、网元批量上线、割接后恢复 心跳/注册/同步类告警集中涌入,自愈型居多 分组聚合、错峰接入、割接预屏蔽
叠加复合型 区域断电、双路光缆并坏、割接失误 多因并发,根因与衍生互相纠缠 关联分析打底,人工兜底决策

5G网络把这件事变得更复杂了一层。传统网络里告警层级是清晰的「网元→网元管理器→网管」三级;5G核心网是服务化架构,一个虚拟机故障会同时惊动三层系统:云平台报虚机异常,容器层报Pod重启,网元NF报服务不可用、注册失败——同一个故障,三套告警体系,互不引用对方ID。更麻烦的是服务化接口的级联效应:NRF(网络存储功能)一抖,一片NF会集体报注册/发现失败,看上去像一次多点故障,实际根因只有NRF那一条。虚拟化层的告警风暴叠加传统网元的告警风暴,这就是很多工程师抱怨「上了5G,告警不降反升」的直接原因。

用一张图还原风暴的传导路径:

flowchart TD
  A["省干光缆中断"] --> B["波分通道全断"]
  B --> C["下游网元失联"]
  B --> D["承载业务中断"]
  C --> E["网管心跳超时"]
  E --> F["失联告警批量产生"]
  E --> G["重发告警反复进出"]
  D --> H["基站退服"]
  D --> I["语音数据劣化"]
  H --> J["小区退服告警成批到达"]
  I --> K["用户投诉涌入"]
  F --> L["NOC大屏告警堆积过万"]
  G --> L
  J --> L
  K --> M["值班工程师翻屏找根因"]
  L --> M

注意图里的关键结构:根因只有A这一个节点,但到达值班工程师面前的告警来自F、G、J、K四条支路。治理告警风暴的本质,就是把这张扇出图折叠回一条线。

03 先回到标准:告警到底是什么

很多团队的告警治理做不好,根源是从来没人读过告警的标准定义。其实这一层国际标准早就把该有的字段和机制定清楚了,治理动作的合法性都建立在这些定义上。

ITU-T X.733《告警上报功能(Alarm Reporting Function)》(itu.int/rec/T-REC-X.733)定义了告警的经典结构:每条告警必须携带严重等级(indeterminate/critical/major/minor/warning/cleared六档)、可能原因(probableCause)、具体问题文本、发生时间等字段。它还定义了告警的成对机制——每条raise要有对应的clear,二者靠相同的关联属性配对。听起来是常识,但正是这个配对机制被大量工程实践忽视:raise和clear配不上对,活动告警列表里就会堆积幽灵告警,风暴因此被人为放大。

RFC 3877《Alarm MIB》(rfc-editor.org/rfc/rfc3877)在SNMP体系里把告警建模推得更进一步,明确提出了「告警模型(alarm model)」概念:告警不是一个孤立事件,而是一个有生命周期状态机的对象—— активactive(活动)、cleared(清除),并且要求把同一故障的多次上报挂到同一个告警实例下计数,而不是生成N条独立记录。这就是所有现代网管「去重压缩」功能的标准化原型:同一对象、同一告警码、同一可能原因,在活动列表里只占一行,用first/last time和count表达它发生了多少次。

3GPP TS 32.111-2《故障管理;告警IRP信息服务》(3gpp.org/dynareport/32111.htm)则把这套模型落到电信管理域:告警IRP定义了AlarmInformation的全部属性(alarmId、probableCause、perceivedSeverity、alarmType等),以及北向接口上告警上报、同步、订阅的标准行为。北向网管收到的每一条告警,理论上都应该能回答三个问题:你是谁(唯一ID)、你多严重(等级)、你和他什么关系(关联属性)。

把三个标准放在一起看,结论很清晰:标准从来没有要求网管把每条衍生告警都原样推给人工。告警治理不是对网管功能的 hack,而是把标准的告警模型真正用起来——而大量现网的现实是,网元与网管各自为政,依赖关系没有建模,关联属性没有维护,最后所有原始噪音都倾泻到值班工程师面前。

04 治理三板斧:压缩、抑制、关联

现网治理的落地路径,可以总结为三层递进的三板斧。三板斧的处理位置不同,原理不同,风险也不同:

手段 处理位置 原理 典型收敛贡献(经验值) 主要风险
去重压缩 采集侧 同指纹告警在时间窗内合并计数 压掉60%–80% 窗口过大掩盖二次故障
拓扑抑制 采集/网管侧 依赖关系成立时屏蔽衍生告警派单 再压20%–30% 拓扑不准导致误屏蔽漏报
关联与根因定位 平台侧 规则/图算法推荐根因,衍生自动归档 人工处理量降至1%–5% 推荐错误误导处置方向

第一斧:去重压缩。 这是最没有争议的一板斧,直接对应RFC 3877的告警实例模型。实现要点有三:指纹怎么定(通常是对象+告警码+可能原因三元组);时间窗多长(抖动型告警要按告警类型差异化设置,链路闪断类窗口要长于单板复位类);合并后信息不能丢(first time、last time、count、最严重等级必须保留)。压缩永远只是合并显示,原始告警流要完整落库——这一点是后面所有审计的前提。

第二斧:拓扑抑制。 根因成立时,衍生告警不再派单但仍保留显示。它的威力取决于一个常被低估的前提:拓扑数据的准确性。光缆段、光路、环网、网元挂载关系,任何一个环节的CMDB数据过期,抑制规则就会变成漏报的帮凶——根因没报出来,衍生告警又被屏蔽了,故障进入完全静默状态。所以成熟团队给每条抑制规则都强制挂两个东西:owner和到期时间。

第三斧:关联与根因定位。 从「一堆告警」到「一个根因+一串衍生」的判断。传统做法是规则引擎:光缆中断类告警优先级最高、发生时间最早者疑似根因。进阶做法是图算法:把告警挂到拓扑图上做因果链推理。再往上是时序因果:根因告警在时间上必然先于衍生告警,这一先验条件可以过滤掉大量伪关联。

flowchart TD
  S["原始告警流"] --> T["去重压缩"]
  T --> U["拓扑抑制"]
  U --> V["时序因果分析"]
  V --> W["根因推荐"]
  W --> X["根因告警生成工单"]
  W --> Y["衍生告警自动归档"]
  X --> Z["处置回填验证"]

05 从规则引擎到大模型:机器怎么学会抓根因

三板斧的第三斧,是近两年技术迭代最快的部分,大致走过三个阶段。

规则阶段。 运维专家把排障经验写成规则:某类告警出现时检查哪几条关联告警、按什么拓扑路径收敛。规则准确但脆弱——网络架构一变,规则库就需要人肉维护,规则数量膨胀后规则之间还会打架。多数现网今天仍主要停留在这一阶段,这并不丢人,规则的可解释性在故障定责场景里是刚需。

模型阶段。 机器学习开始介入:把告警流切成时间片,对告警做向量化得到「告警指纹」,用聚类找出总是结伴出现的告警组合,与历史故障案例库比对后输出根因候选。华为iMaster NCE的根因定位、诺基亚Event Federator这类告警关联产品的商用能力大体在这一层,业界公开案例普遍宣称的告警收敛比在95%以上——需要强调,这是厂商口径,实际落地效果高度依赖告警数据质量与拓扑完备度,省级网络的实践中,把人工需处理告警压到原来的十分之一已属优良成绩。

大模型阶段。 2024年以来,LLM开始切进告警治理的最后一公里,但切入点很务实——不是替你判断根因,而是替你读懂告警:把两万条风暴告警压缩成一段自然语言摘要(发生了什么、影响哪些区域、疑似根因、建议动作),自动填写故障工单的初稿,支持工程师用自然语言查询告警(「过去一小时B市哪些退服告警和光缆有关」)。这是TM Forum自智网络分级里从L3迈向L4的关键动作:L3解决单域场景的自动闭环,L4要求跨域协同下系统自己完成从发现到决策的闭环(TM Forum自智网络框架见 tmforum.org/autonomous-networks)。按TM Forum的分级定义,今天的告警治理真实水位普遍在L2.5到L3.5之间——压缩与抑制基本自动化,根因推荐人机协同,处置闭环仍靠人。

对大模型这一层,笔者的态度是明确的:让它写摘要,别让它拍板。告警摘要写错一段话,工程师看一眼告警列表就能纠正;根因结论拍错了,抢修方向就全错,损失以小时计。LLM适合做从数据到语言的转换器,不适合做从数据到责任判断的决策器。

06 治理目标参考值:省级NOC的账怎么算

告警治理需要指标化,否则就是一场永远开不完的会。下面这张表是以省级NOC规模(数万个网元)为参照的治理目标参考值,数值为工程经验值,供对齐基线用,不是任何官方统计:

指标 治理前典型水位 治理目标
原始告警量/天 50万–200万条 不设总量目标,重在收敛
需人工处理告警/天 上千条 ≤100条
根因识别平均时长 30–60分钟 ≤10分钟
重复/衍生告警占比 >90% 收敛后仍保留全量可查
抑制规则台账覆盖 无台账 100%有owner与到期日
漏报(误抑制导致的静默故障) 无度量 0起,季度审计

两个容易算错的账要特别提醒。第一,告警治理的目标不是把告警变少,而是把「需要人看的告警」变少——把原始告警全量落库、随时可查的可观测性保住,把推送给人的一层做干净。第二,根因识别时长是复利指标:从60分钟压到10分钟,对单次普通故障只是省了50分钟,但对每年上百次的故障处理累计,等于给抢修窗口续了命,更是把重大故障的升级概率显著压低。

07 假收敛的代价:别把告警治理做成消音器

必须泼一盆冷水:告警治理做得激进,比不做更危险。一线见过的三类翻车,都值得刻在值班室墙上。

翻车一:屏蔽规则过期不回收。 某地为配合割接把「光功率异常」类告警批量屏蔽,割接完成后没人恢复规则,两周后真断纤,告警被静默屏蔽,故障靠用户投诉才浮出水面,发现时已 silent运行超过48小时。这就是为什么抑制规则必须强制挂到期日,到期自动失效并回审——没有到期日的屏蔽规则,等于在告警系统里埋雷。

翻车二:压缩窗口一刀切。 为了报表好看把全局压缩窗口设得很大,链路抖动确实被压干净了,但同一时间窗内叠加的第二次独立故障也被并进了第一条告警的计数里,两起故障被当成一起处理,处置结论完全跑偏。窗口必须按告警类型差异化:抖动型告警窗口长,故障型告警窗口短。

翻车三:规则建在脏数据上。 拓扑抑制依赖的挂载关系数据半年没更新,新扩的环没录入,断纤时衍生告警没被抑制(还好),而另一处已退网的网元还挂在拓扑里,抑制规则持续屏蔽着一个早已不存在的告警源(更危险的是反过来:数据错位让本不该被抑制的告警被抑制)。告警治理的上游工程是数据治理,拓扑和资产数据不准,三板斧每一斧都可能砍到自己脚上。

一言以蔽之:告警治理的底线不是收敛比,而是零漏报。收敛比是效率指标,漏报是事故指标,两者冲突时永远以前者让路。

08 落地清单:值班室里能直接用的八条

最后给一份可以直接抄回去执行的清单,按落地优先级排序:

  1. 先建告警基线:连续采集30天告警量按小时分布,风暴的定义是偏离基线多少个标准差,没有基线谈收敛都是拍脑袋;
  2. 按告警类型设差异化压缩窗口,抖动型长、故障型短,原始流全量落库;
  3. 活动告警列表做配对审计:超24小时无clear配对、且对象已恢复正常的幽灵告警定期清理,raise/clear配不上的要查网管配置;
  4. 抑制规则强制台账化:每条规则有owner、有到期日、到期自动失效待复审;
  5. 告警分级响应矩阵:哪些告警5分钟响应、哪些30分钟、哪些只进日报不派单,白纸黑字,与考核挂钩;
  6. 割接预屏蔽清单进割接方案模板:割接窗口的预期告警提前申报,窗口结束自动回收;
  7. 根因推荐必须回填验证:每次故障处置后回填「真实根因是什么」,这是模型迭代和规则修正唯一可靠的养料;
  8. 季度告警健康度审计:随机抽取N起历史故障,回放当时告警流,检查有没有被误抑制、误压缩的真实告警。

09 结论

告警风暴不是玄学,它是拓扑扇出、重发抖动、批量重连、复合叠加四种物理机制的数学必然;告警治理也不是玄学,ITU-T X.733、RFC 3877 和 3GPP TS 32.111-2 早就把告警的模型、字段和生命周期定好了,绝大多数现网的问题只是「标准定义了,工程没用上」。压缩去重保干净、拓扑抑制保安静、关联定位保方向,三板斧之上再让大模型写摘要、让规则模型拿养料——从十万条到一百条,靠的不是某个神奇产品,而是标准模型的认真落地、数据质量的持续投入,以及一条不可动摇的底线:收敛比可以让步,零漏报不能让步。

参考来源

  1. ITU-T X.733 Alarm Reporting Function — 告警上报功能标准,定义告警严重等级、可能原因字段与raise/clear成对机制
  2. RFC 3877 Alarm MIB — 告警管理信息库,提出告警模型与告警实例生命周期,现代网管去重压缩的标准化原型
  3. 3GPP TS 32.111-2 Fault Management; Alarm IRP — 3GPP电信管理域故障管理告警IRP信息服务,定义AlarmInformation属性与北向告警行为
  4. TM Forum Autonomous Networks — 自智网络L0–L5分级框架,衡量告警治理自动化水位
  5. ITU-T M.3100 General Network Information Model — 通用网络信息模型,拓扑依赖建模与告警挂载的基础

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入