面向电信行业网络告警系统的告警过滤算法

2018-11-22 09:37徐冰珂周宇喆杨茂林谢远航李晓瑜
计算机应用 2018年10期
关键词:瞬态离线持续时间

徐冰珂,周宇喆,杨茂林,谢远航,李晓瑜,雷 航

(1.电子科技大学 信息与软件工程学院,成都 610054; 2.北京思特奇信息技术股份有限公司,北京 100046)(*通信作者电子邮箱maolyang@126.com)

0 引言

电信网络中软硬件系统通过通信网络相互连接,当某些网络组件发生故障或存在故障隐患而发生告警时,与其相关联的其他组件可能随之发生告警,从而形成告警链。准确分析和定位告警根源成为智慧网络运营面临的重要课题[1]。然而,由于网络组件间的调用关系复杂且网络监控指标种类多样,网络监控中心可能持续接收大量告警信息。根据北京思特奇信息技术股份有限公司(http://www.si-tech.com.cn)所提供的数据,一个网络监控中心可能涉及数万个告警元(即:发生告警的最小单元),且每小时可能接收数百条告警信息。通过样例分析发现,少数网络组件频繁发生告警,且这些告警往往由网络负载变化所引发,并非严重的网络故障。这些发生频率高而重要程度低的告警信息对网络故障分析与诊断造成较大干扰。为此,本文提出一种告警过滤算法对网络告警进行预处理,以减少网络监控中心处理的告警量,同时提高网络告警根源定位的准确性。

网络故障定位与诊断已有近30年研究历史[1-2],相关研究主要包括:第一,基于网络系统中抽象出的专家经验,采用规则推理、神经网络、决策树、逻辑回归等人工智能技术进行故障判定[3-6];第二,基于网络拓扑结构信息,采用依赖图、贝叶斯网络等图论技术进行故障溯源[7-9];第三,基于网络组件间的调用关系,采用模型追溯技术进行网络故障根源分析[10-11]。然而,在大规模电信网络中,由于难以准确获取和维护网络拓扑、调用关系等专家信息,使得上述方法的应用受到不同程度的限制。不同于传统研究方法,本文基于告警历史数据采用规则过滤的方法研究告警过滤问题,本文算法不依赖于既有的物理网络拓扑结构和网络组件间的调用关系,因而具有更强的通用性。

在告警过滤相关研究方面,Wang等[12]根据各类告警的持续时间分布,提出一种动态阈值设定方法FTD(Flexible Transient flapping Determination)用于过滤持续时间相对短的告警。本文算法是对该方法的扩展,在分析告警持续时间分布的基础上对告警频率、影响力等进行综合分析。闫生超等[13]结合贝叶斯模型,提出一种基于组合规则的告警过滤器模型。王保义等[14]针对全局网络拓扑和告警特征构建依赖搜索树模型,利用聚类关联将一类告警节点用类中心代替,从而实现告警过滤。石永革等[15]与张现飞等[16]采用分层过滤机制构建告警过滤规则,通过逐层收敛确定需要过滤的告警。然而,文献[13-16]侧重于策略与框架研究,尚无数据实例支撑。本文在模型框架研究基础上进一步设计并分析了告警过滤算法。

1 告警数据特征

电信网络中,由于网络负载变化以及告警阈值设置等原因,使得网络中出现大量频繁发生且持续时间较短的告警。为了对网络告警进行合理的预处理,对我国某省电信运营监控中心2016年连续4个月的约70万条告警数据作量化分析(数据来源于北京思特奇信息技术股份有限公司)。分析发现告警数据具有如下特征:

首先,不同告警元所产生的告警量分布不均匀,大多数告警由少量告警元产生。由于告警阈值设置以及网络负载动态变化等原因,一部分告警元可能频繁发生告警。例如,为了监测CPU负载,设置CPU利用率高于95%时触发告警,则当计算密集型应用执行或系统短暂过载时均可能触发CPU利用率告警。与其他关键故障所触发的告警(如硬盘损坏、数据库故障等)相比,CPU利用率告警的数量明显更高。通过统计各告警元的告警量,计算告警量最大的前x个告警元所产生的告警占总告警量的比例,得到告警量分布如图1所示。统计分析发现,由约1.4万个告警元所产生的告警中,告警量最大的2 000个告警元(约占15%)所产生的告警量占总告警量的约90%。

图1 高频告警示意图Fig. 1 High-frequency alarm diagram

第二,对于告警量大的告警元所产生的告警,其持续时间(即:从告警入库到消除的时间)往往较短。通过分析样本集中所有告警的持续时间,算得告警平均持续时间约为302 min。取告警量最大的10个告警元,分别统计持续时间小于15 min、30 min、45 min的告警所占比例,如表1所示。以告警元A为例,在其发生的3 874次告警中,持续时间小于15 min的告警所占比例超过76%。从统计学的角度,该告警元所产生的告警在15 min内消除的概率超过76%,在45 min内消除的概率超过92%。由此可预测,告警元A未来发生告警时其持续时间小于平均持续时间302 min的可能性较大。

表1 告警量最大的10个告警元存活时间分布Tab. 1 Survival time distribution of 10 alarm element with maximum amount of alarms

进一步分析发现,这些高频且短暂的告警通常为CPU利用率告警、内存使用率告警、日志类告警等。这些告警往往受网络瞬时负载影响,当网络负载趋于平稳时相应的告警会自动消失,因而通常不是网络故障的根源。

第三,告警量大的告警元发生告警的时间密度较稳定。以表1中的告警元A为例,将告警元A的告警记录按时间先后排序,并计算各个告警记录离第一条告警记录的时间间隔(以小时为单位),结果如图2所示。可见,上述时间间隔呈现明显的线性分布,这表明告警元A发生告警的时间密度(或频率)比较稳定。

图2 高频告警时间分布Fig. 2 Time distribution of high-frequency alarms

第四,网络告警量随时间变化。系统运行期间动态的需求变化、业务增减、技术升级、系统更换等,使得网络结构与应用逻辑不断发生改变,因此,单位时间内的告警量也随之变化。以连续5天内整个网络系统发生的告警数量为一个统计单元,系统告警量随时间变化的情况如图3所示。可见,第一个月的告警量明显大于随后各个月的告警量。

图3 告警量分布Fig. 3 Distribution of amount of alarms

2 告警过滤算法

综合上述告警数据特征可知,少量告警元可能发生大量持续时间短的非关键告警,为此,设计告警过滤算法对这类告警进行合理筛除。为了更准确识别非关键告警,本章首先引入告警影响力和高频瞬态告警的定义。

2.1 告警影响力

网络系统中的软硬件依赖关系使得网络故障具有传递性,当一个网络组件发生告警后,与其相关联的其他软硬件组件可能随之发生告警。从时序角度,告警元A引发另一告警元B发生告警的必要条件是告警元A发生告警后告警元B发生告警。因此,通过分析一个告警发生后有多少告警随之发生,以衡量一个告警的重要程度。如果一个告警发生后随之发生的告警越多,则认为该告警越重要。为此,定义告警影响力如下。

定义1 若告警元A的一个告警实例A.a的持续时间为T,且在此期间有N个其他告警元发生告警,则A.a的影响力FA,a为:

FA.a=N/T

(1)

根据定义1,如果在一个告警存活期间发生告警的其他有效告警元越密集,则该告警的影响力越大。在一个样本集内,如果告警元A发生了多次告警(有多个告警实例),则将告警元A在该样本集内的影响力定义为其所有告警实例影响力的算术平均值。

定义2 若告警元A在一段时间内发生了m次告警,则告警元A在这段时间内的影响力FA为:

(2)

上述告警影响力定义是从数据统计的角度衡量告警的衍生性,因此不需要针对具体系统的专家知识。进行告警过滤时,应避免影响力大的告警元所产生的告警被过滤掉。

2.2 高频瞬态告警

告警过滤的直接目的是减少告警量。根据告警数据特征可知少量高频告警所产生的告警量较大,而持续时间短的瞬态告警往往重要程度偏低。因此,在告警过滤时优先考虑筛除发生频率高,持续时间短,告警影响力低的告警以减少告警量。为此,定义如下高频瞬态告警。

定义3 给定包含N个告警元的样本集和参数组(α,β,χ,δ),假设所有告警实例的平均存活时间为W,若任意告警元A的一个实例A.a满足以下条件,则称A.a为高频瞬态告警。

1)告警元A属于告警量最大的前α%告警元之一;

2)告警元A的平均存活时间小于βW;

3)告警元A属于影响力最小的前χ%告警元之一;

4)对于告警元A的所有告警实例,A.a属于持续时间最小的前δ%之一。

根据定义3,对于任意给定样本集,W可通过样本统计获得,参数组(α,β,χ,δ)可根据实际需要进行配置。

2.3 告警过滤

基于以上定义的高频瞬态告警设计告警过滤算法。实际应用中,告警过滤可分为离线过滤和在线过滤,分别应用于数据样本离线分析以及实时告警在线过滤。前者针对告警数据记录进行预处理,可用于数据训练等;后者针对实时告警信息,可用于告警屏蔽或延缓告警处理等。如图4所示,在智能告警根源分析系统中,历史告警数据通过数据清洗后进行离线过滤,将过滤后的数据样本用于后续告警关联、权重训练等离线分析;同时,相应的过滤参数被存储起来用于在线过滤——当一条实时告警信息传入监控中心时,在线过滤部分用于判断是否忽略或延迟处理该告警。

图4 告警过滤框架Fig. 4 Alarm filtering framework

离线分析处理的数据为历史告警记录,因此每条告警数据均有确切的持续时间,可通过数据统计获得告警平均持续时间W。通过逐条判断定义3的各项条件,可以确定每条告警记录是否属于高频瞬态告警。若属于高频瞬态告警,则将其从数据样本中删除,否则保留。离线分析算法伪代码如下:

输入 告警数据样本集S,参数组(α,β,χ,δ)。

输出 过滤后的告警数据集S′。

S′=S

W=ave_alive(S)

// 计算告警平均持续时间

FORA.ainS:

IF A_is_freq(A,α)==TURE:

// 符合定义3的条件1)

IF A_ave_alive(A) <βW:

// 符合定义3的条件2)

IF A_impact(A) <χ:

// 符合定义3的条件3)

IF alive(A.a,δ)==TURE:

// 符合定义3的条件4)

RemoveA.afromS′

// 过滤掉A.a

RETURNS′

以上离线分析算法中,统计各告警元的告警量、计算告警平均持续时间,以及计算所有告警元的影响力均需要遍历所有告警实例一次,令n为告警数据样本的告警记录数,则时间复杂度为O(n)。在此基础上,进行告警过滤需要重新遍历所有告警实例一次,因此算法整体时间复杂度为O(n)。

对于在线分析,告警平均持续时间W需要由离线分析部分提供。同时,由于实时告警的持续时间是变量,因此需要周期性判断当前告警的持续时间是否满足定义3中的条件4)。对于某个告警实例A.a,若定义3的前三个条件均满足而条件4)不满足,则延迟处理A.a直到条件4)满足;否则,触发告警处理程序。在线过滤流程如图5所示。

3 实验结果与分析

为了评估本文算法性能,设计单因素实验分析参数组(α,β,χ,δ)中各参数对告警过滤量的影响;同时,将本文算法与FTD算法[12]进行比较。

3.1 单因素实验

将我国某省电信运营监控中心2016年连续4个月的约70万条告警记录作为测试数据,通过单因素实验分别测试告警过滤量随参数α、β、χ、δ增大的变化趋势,将算法过滤掉的告警量占数据样本告警总量的比例作为评估标准。令压缩比Φ表示过滤掉的告警量与告警总量的比值,Φ值越大表示过滤掉的告警数量越多。为了统一参数量级,令α′=α/100,χ′=χ/100,δ′=δ/100。实验参数设置如表2所示。

表2 实验参数Tab. 2 Experimental parameters

图5 在线过滤流程Fig. 5 Online filtering flow chart

图6 参数变化对压缩比的影响Fig. 6 Effect of parameter changes on compression ratio

从图6所示的实验结果可看出,在单因素实验中压缩比Φ随各参数数值增大而增大。

1)参数α′。

Φ在α′∈[0.01,0.09]区间内迅速增长,在α′>0.11后趋于平缓。根据图1所示告警数据特征,告警量最大的1%告警元所产生的告警量与告警量最大的9%告警元所产生的告警量分别占总告警量的约26.7%和79.7%。在这一区间,符合定义3条件1)的告警数量随α′增长而迅速增加,因此可能被过滤的告警量也随之增加。当α′>0.11,随α′值增大而增加的总告警量明显变少,可能被过滤的告警量增速也相应趋缓。

2)参数β和χ′。

Φ随β和χ′的增长而持续增长,且增长幅度相似,这是因为提高告警平均持续时间阈值和提高告警影响力阈值都可能使得更多告警成为高频瞬态告警,因而增加了被过滤的概率。

3)参数δ′。

Φ在δ′<0.11时增长变化较快,在δ′ > 0.11后增长速度趋于平缓。根据表1所示告警数据特征可推知,高频告警元所产生的告警持续时间往往远小于告警平均持续时间。表1数据显示,告警量最大的前10个告警元所产生的告警中,持续时间小于平均告警时间10%(即:告警持续时间小于30 min)的告警超过70%。因此,在δ′<0.11时满足定义3条件4)的告警量随δ′增大而快速增加,被过滤掉的告警数量也相应快速增长。

3.2 对比实验

为了验证告警过滤算法的准确性,将本文算法与FTD算法[12]进行对比。首先,基于现有的行业应用数据,在实验样本数据所涉及的1.46万类告警中标记出0.49万个“重点关注类”告警(占比约为34%)。随后,在两种算法压缩比接近的情况下,分别统计两种算法过滤掉的告警中“重点关注类”告警所占比例。相对于其他告警,“重点关注类”告警更可能是潜在的告警根源,因此认为在过滤掉的告警中,该类告警所占的比例越低则算法的准确性越高。

表3为不同压缩比条件下,本文算法与FTD算法过滤的告警中“重点关注类”告警的占比。实验结果显示,本文算法过滤的告警中“重点关注类”告警的占比均低于FTD算法。例如实验三中,两种算法的压缩比均为0.17,FTD算法“重点关注类”告警占比为0.21,而本文算法占比为0.17。可见,本文算法在告警过滤的准确性上优于FTD算法。

表3 本文算法和FTD算法的对比实验结果Tab. 3 Experimental results comparison of proposed algorithm and FTD algorithm

4 结语

本文基于电信网络告警数据分析了网络告警的基本特点,并提出了告警影响力以及高频瞬态告警概念。在此基础上,提出了O(n)复杂度的告警过滤算法,该算法可应用于面向告警数据的离线分析和在线过滤。通过单因素实验分析了算法中各参数对算法性能的影响。实验结果显示,算法各参数与告警过滤量正相关。对比实验显示,本文算法在压缩比相同的条件下比FTD算法具有更高的准确性。后续工作将进一步研究过滤参数的优化配置与动态阈值调整等相关技术。

致谢 感谢北京思特奇信息技术股份有限公司徐庆洲,以及电子科技大学王自升、常煜、陈丹、李赵宁、杨开勇、张世俊、张子恒、张翔等同学对本文算法以及实验工作的帮助与支持。

猜你喜欢
瞬态离线持续时间
基于卷积神经网络的离线笔迹鉴别系统
异步电机离线参数辨识方法
新版Windows 10补丁离线安装更简单
激发态和瞬态中间体的光谱探测与调控
高压感应电动机断电重启时的瞬态仿真
基于改进HHT的非高斯噪声中瞬态通信信号检测
带旋转孔容腔瞬态演化与建模方法研究
近10年果洛地区冻土的气候特征分析
外部冲击、企业投资与产权性质
The 15—minute reading challenge