1 概述
随着通信网络近些年的快速发展,其规模已经相当庞大,在网络中每天都会产生告警信息,并且这些信息数据量庞大、突发故障多,当网络设备出现故障并引发告警时,与它关联的设备也会引发相应的故障,并在短时间内产生大量告警信息[1-2]。由于一个故障的产生往往会引发多个告警事件,与故障相关的设备以及业务过程都会发出相关的告警信息,同时多个故障引发的告警信息会叠加到一起,把真正的告警信息淹没在里面,导致故障识别十分困难。当前网络告警的监控和管理主要依靠人工完成,网络运营维护成本高昂,处理过程十分耗时,在发生大量故障告警时基本不能满足告警处理的实时性要求。
告警相关性分析是网络故障诊断的重要方法之一,告警相关性分析采用的方法有很多,例如基于规则的告警相关性分析、基于事例的告警相关性分析、基于因果模型的相关性分析、基于神经网络的相关性分析等。但是这些方法都存在一定的缺点,例如基于事例的方法对于网络变化处理反映不敏感,这是因为它由特定应用领域决定,而不存在一个各个领域通用的事例,基于规则的方法难以适应大规模和技术复杂的通信网络模型,这是因为它需要人工来维护大量告警规则。目前我国的综合网络管理市场上,大部分相关产品,都提出了告警相关性分析的支持功能,也有部分公司表明其产品实现了告警相关性的分析,但其实只是实现了一些比较基础的告警过滤、告警规避等功能,规则的生成有待进一步实验研究[3-7]。
本文提出一种使用规则挖掘及基于规则的关联方法[8],主要是将当前告警系统领域的告警知识包含在一组规则集合中,通过对检测到的告警进行判定,并使用相应的推理规则来分类一个或者多个告警的发生是否符合某一个规则,进而确定具体的故障类型[9]。其工作原理主要是依赖于规则库和推理引擎。在规则库中将很多实践中获取的知识通过适当编码形成IF-THEN式的规则,递归向下匹配规则,定位最终的故障源。当发生新的告警时,系统将启用推理引擎来对告警进行处理。这种方法表现形式单一、直观,所以不需要长时间的培训学习,也不需要了解网络的底层架构,就可以定位网络中发生的故障。
2 网络告警分析处理系统设计
告警分析处理分为2个阶段:告警规则挖掘阶段、告警分析处理阶段。告警规则挖掘阶段是为了实现基于历史告警数据的大数据分析,从历史数据中获得告警之间的关联规则,形成规则数据库;告警分析处理阶段目的是基于所获得的规则数据库中的关联规则,对网络中的当前告警进行分析和处理,获得当前告警中的根源告警及衍生告警。
告警规则挖掘阶段采用离线处理的方式,对历史数据进行分析和挖掘,不要求实时性。初次部署时,获取大量网络历史告警,进行规则挖掘初始化,形成规则数据库,在网络中部署后,采用定期挖掘规则的形式,对规则数据库进行增量更新和补充。
告警分析处理阶段采用在线处理的方式,对当前告警进行处理,要求实时性。在软件部署后,便通过网管后台接口与网管进行通信,实时对网络告警进行处理。

图1给出了告警分析处理系统总体架构。
2.1 告警数据统计分析
本文对网络告警类型出现频次做了初步统计,如图2所示。从分布图可以看出,告警信息集中在少数几种类型中,例如PK_LOS,RCONTEXT_PACKET_LOS,VP_RDI,RCONTEXT_PACKET_LOS,E1_AIS等告警类型占据了约90%以上的信息,而M_B