智能运维:实现云化核心网运维效率倍增
智能运维是传统电信系统提升运维效率、降低运维成本的重要手段。如何从具体的运维需求出发,运用智能的技术解决实际的现网问题是智能运维的目标。

文/华为NFV能力中心首席规划师 沈洁

运维体系在经过了脚本化、自动化等阶段后,正朝智能化的方向发展。智能运维是传统电信系统提升运维效率、降低运维成本的重要手段。如何从具体的运维需求出发,运用智能的技术解决实际的现网问题是智能运维的目标。
电信系统经过多年的研发、测试、部署及运行,积累了大量的运维经验。系统设计本身也是千锤百炼,一般常见的问题都被无数次的bug fix解决并集成到了后续的系统设计中。然而,问题少并不意味着现场维护的任务减轻了,相反,现场一旦出现问题往往猝不及防,定界定位难度高,常常令运维人员感觉无所适从。
运维中最常见的两类问题
云化核心网的产品范围包括从无线接入后的所有管道和话音交换等设备,网元种类多,相互之间的接口和信令交互复杂多样,监控KPI数量庞大,一个典型的VoLTE系统,KPI数量可高达30,000以上。从服务和维护的反馈来看,目前碰到的最多最棘手的两类问题,一是升级后的某些隐患不能及时发现而造成后来的事故;二是静默故障,事故的发生很突然,不能快速定界,贻误时机,酿成大事故。
第一类问题主要发生在升级或操作变更场景。电信系统的升级多安排在深夜用量较少的时段,升级后的业务量较低,即使升级时有错误操作,不论是配置错误或是升级软件自身的bug,引发的系统错误有时不一定能从系统的关键KPI监控中发现。最近有一个实例:在D运营商的一次HSS升级任务中,不慎引入一个鉴权问题。升级完成后,HSS上的关键KPI鉴权成功率指标正常;但从非关键的其他指标例如MSC上看,其鉴权成功率逐渐下降。只有通过全量指标综合分析才能识别异常。如何有效地发现这些隐患?经分析后发现,系统如果有以下两个能力就可以帮助发现异常:一是动态地监控记录系统所有指标的周期性动态阈值范围;二是对所有指标实时地与同一时间点的动态阈值作比较,找出偏差大的指标。
第二类问题主要发生在日常监控场景,主要表现是业务异常但无告警,关键KPI也无异常。比如A运营商因EOR设备软失效,导致全网VoLTE业务长时间中断,语音业务下落到CSFB,用户感知小,主要指标无异常。这类问题一般牵涉到众多网元内及网元间的指标监控,如何快速检测问题,避免错过解决问题的黄金时期,以及如何快速采集必要的数据来分析定位问题,是解决问题的关键。经分析后发现,系统如果有以下两个能力就可以帮助快速定界:一是通过算法对所有指标与同一时间点的动态阈值作比较,判断指标的波动情况是否超出学习的范围,以此来判断是否存在静默故障;二是检测出事故发生后,有完备的数据进行根因分析是问题解决的关键。
数据处理平台与机器学习算法,支撑系统能力构建
从以上分析可以看出,对以下系统能力具有共性需求:全指标的监控能力;动态阈值的学习获取能力;指标偏差计算的多样化及排序能力;指标偏差与系统故障之间的关联能力。这几种能力的构建需要数据处理平台及机器学习算法的支撑。为此,华为搭建了一个实际的验证系统,通过复盘现场事故,比对验证系统与现场的结果,来验证思路与分析结果。
该验证系统包含两大部分:全量数据处理框架和单指标异常检测机器学习算法。全量数据处理框架运用实时流数据处理技术,可同时采集和预处理大量的KPI及metric指标;单指标异常检测算法针对采集后的指标,根据其历史数据训练出对应模型,对当前单个指标进行异常检测,快速识别异常。
全量数据处理框架部分主要包括数据采集和数据处理。
对于数据采集,考虑到系统的可扩展性,数据采集框架支持多种采集方式,来对不同目标系统的数据进行采集,采集数据包括logging/Metrics/tracing。比如对于老系统采用传统的方式采集(SNMP、FTP等),支持老网元或EMS数据采集。对于新开发的微服务则尽量使用业界主流的开源采集方式,比如Prometheus等。兼容多样性采集方式,旨在减少对目标系统的改动,支持业务系统多样性。
数据处理部分,由于采集的数据种类繁多,而且数据提取方式不同,预处理方式也不尽相同。为了减少后期开发,这里把业务指标抽象出通用的数据模型,对采集、预处理等功能抽象化,形成一个个独立的可编排的原子功能,通过把各原子化功能编排起来,形成业务处理链,这样对业务功能的处理做到codeless。
通过前面几个步骤,已经做到对不同数据源、不同数据类型的数据归一化处理。有了归一的数据后,可在其上进行更高层次的分析,其中单指标异常检测算法就是最基本的全量异常检测方法,该方法重在全量数据处理,不依赖领域知识先行metric筛选,这样可以不放过任何一个可能异常的指标,再经过多次迭代,最终可以形成每个现场系统的单指标异常检测模型。异常检测是运维的重要一环,尤其是在白盒化运维的云服务业务中,异常检测是及早发现和预测故障的基础,在此基础上,后续还可以进一步挖掘其他类型的分析手段。
单指标异常检测算法主要思路是通过对历史指标的学习,学习出指标的动态阈值模型,并把该模型应用到实际环境中,实时对现网的数据进行检测,并判断业务数据是否异常。

图1中,红色的水平线为没有引入机器学习算法前的传统的静态阈值检测方式,绿色的条带化区域是学习出来的动态阈值范围,对于图中Anomaly异常的指标,传统的方式是无法检测出来的,而通过单指标检测算法能准确地检测到异常。

针对不同指标,算法首先识别出其周期性,并根据指标的波动性、趋势性等特点,进一步选择合适的算法。
算法模型已经部署在C运营商进行现网PoC测试,以下是异常检测的流程:
现网覆盖了IMS/EPC网元,涉及50个IMS网元,90个EPC网元,共采集1400个单指标。经过连续2个月的现网数据验证,由于现网环境比较稳定,共发现4个指标异常点。运营商比较满意当前的结果,并把该功能特性商业化应用提上了议程。
单指标异常检测是智能运维演进的第一站,后续将继续扩大检测范围,覆盖更多的场景,同时将探索多指标关联分析及根因定位算法、告警压缩智能算法等智能手段,涵盖故障检测、异常定位、根因分析等过程,再叠加上必要的自愈手段,最终朝着网络自动化、智能化的方向演进。
KPI具备全局性、周期性、实时性的特点,单指标异常检测算法是及时识别故障的有效方法。针对操作变更、重大事件保障以及日常监控场景,也可以通过KPI异常检测,快速识别静默类问题,减小影响范围,缩短恢复时长,变“事后运维”为“全程监控、事先预判、自动恢复”,是提升核心网可靠性以及MTTR的关键手段。