基于数据挖掘的增值业务网管告警关联分析模型*

2011-06-09 07:38郭洪波李炜王晶
电信工程技术与标准化 2011年11期
关键词:项集事务数据挖掘

郭洪波,李炜,王晶

(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876;2 东信北邮信息技术有限公司,北京 100191)

引言

告警关联分析主要应用于故障定位的维护任务场景,它的基本思路是在网络产生的大量告警中通过对不同告警的关联来有效地识别对故障的产生具有主要影响作用的告警(称为根源告警),而由根源告警派生出的对故障影响较小的告警(称为结果告警)经过特定的告警操作(如:抑制、压缩或延迟等)不再实时地呈现给网络维护人员,使他们能集中处理故障的根源告警,尽快地定位故障[1]。

本文在分析比较目前流行的几种告警关联分析方法后,提出了一种基于数据挖掘的适用于增值业务网管系统的告警关联分析模型。研究如何有效地利用数据挖掘中的关联规则挖掘工具,分析历史告警信息,得到告警之间的关联规则,这些规则既可用于帮助维护人员定制关联规则,从而及时定位故障。

1 告警关联分析技术比较

1.1 告警关联分析介绍

告警关联分析指两个或多个告警之间的关联关系,其最终目的是从海量告警中找出根源告警,快速定位故障,对于派生的对故障影响较小的告警经过特定的告警操作不再实时呈现给维护人员,使维护人员能集中关注处理故障的根源告警。

1.2 关联关系种类

依赖:如果B告警发生的前提是A告警,则称B依赖于A。

派生:如果A告警发生后,将引发B告警,则称A派生B。

同源:如果A和B告警的发生,都是源于C(C可能为某故障),则称A和B为同源。

推测:其他关联关系,随着研究的深入,可对推测关系再进行细分。

1.3 告警关联关系分析技术比较

常见的告警关联分析技术有以下几种:基于因果关系的告警关联分析、基于代码簿的告警关联分析、基于模型推理的告警关联分析、基于事例推理的告警关联分析、基于规则的告警关联分析、基于数据挖掘的告警关联分析等。

除数据挖掘外上述其他关联关系分析技术或需要人工辅助优化推理方法、或需要领域专家定制关联规则、或无法适应不断变化的网络模型,需要大量日常维护工作量,因此数据挖掘技术在告警关联分析中的应用应运而生。数据挖掘是在海量数据中发现新模式的一种分析技术,它在解决告警关联分析问题时首先通过大量历史告警的一些统计规律来发现告警关联规则,然后根据规则分析和预测网络中可能出现的故障。和以上的几种技术相比,告警关联分析技术对网络的具体结构或组成不需要深层次的掌握,而主要从有效的历史告警数据集合中依靠挖掘工具确定告警关联规则。数据挖掘技术特别适用于没有具体的网络模型作为确定告警关联关系的依据的应用场合[2]。

2 数据挖掘中的关联规则

关联规则描述不同事物之间的相互依存性和关联性,关联规则的基本模型是:

给定一个事务集D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度(min_supp)和最小可信度(min_conf)的关联规则[4]。

3 增值业务网管告警关联规则分析流程

3.1 告警预处理

告警预处理所实施的对象为一段时间内的可信历史告警数据。告警预处理用于对历史告警信息进行整理、过滤、事务化等操作,形成可直接用于关联规则挖掘的数据。

3.1.1 告警信息整理

由于告警信息中包含许多无需关注的内容和冗余信息,故需要提取出关键信息,便于数据挖掘的实施。

增值业务网管系统的每条告警信息都由一个三元组来标识,即告警设备(agentdn)、告警码(alarmcode)、告警实例(instance)。其中告警设备包括触发告警的网元、主机、账户信息;每个告警码唯一标识一类问题,例如告警码“0403”代表主机磁盘空间不足;告警实例用于具体定位设备或软件出问题的具体细化位置。同一时间点,所有活动告警的三元组信息都唯一。

为了适应数据挖掘的需要,除了提取历史告警中每条告警的三元组信息外,还要提取产生时间(eventtime)信息、清除时间(cleartime)信息,以此作为下一步预处理的基础。

3.1.2 告警过滤

由于历史告警中包含有可能对分析结果产生影响的告警,故需要进行过滤操作。过滤的原则有如下几种:

过滤掉由于人为升级或割接引起的预知告警。一般根据告警时间和设备信息进行过滤,例如过滤掉由于某天晚上0点至2点对SCP1进行升级触发的告警信息。

过滤掉频繁的瞬断告警。瞬断告警一般由于网络或其它不稳定因素造成,且发送间隔较均匀、告警很快恢复。一般情况下若此类告警量比例较高,会降低其它有效告警在整个事务数据库中的支持度(support),从而影响到相关性分析结果的准确性。

3.1.3 告警事务化

告警事务化的目的是形成关联规则挖掘所需要的事务数据库。事务化方法包括如下几步:

(1)提取每条告警的三元组信息,按照告警产生时间进行排序。将经过告警过滤后的告警信息中的告警设备(agentdn)、告警码(alarmcode)和告警实例进行合并,与触发时间进行映射,并按照触发时间进行排序处理。形式如表1所示(使用某省份彩铃系统历史告警数据)。

表1 按时间排序的告警信息

(2)形成关联规则挖掘所需的项集。考虑到告警三元组信息中“告警实例”的取值比较广泛,不容易将其离散化;另外考虑到告警设备中的“集群名称”和“账户名称”都通过告警主机名和告警码推断出来;最后将主机名与告警码进行笛卡尔积后形成数据挖掘所需的项集。例如根据表1得到如下项集:

即在一个告警事务中,项集中的各个项可取true或false,挖掘出的规则为布尔关联规则。

(3)将在同一折叠时间窗口内的告警形成一个事务。设定的折叠时间窗口为Nmin,即认为告警产生时间在Nmin内的所有告警都属于一个告警事务。然后按照告警产生时间,将告警产生时间在同一时间折叠窗口内的告警组织成一个个告警事务。假设N为5,则根据表1可得到如表2所示的事务集(1代表true,2代表false)。

表2 经过事务化后的告警事务

(4)根据上述信息可以确定待生成的关联规则类型为单维布尔关联规则。

3.2 使用Apriori算法产生告警关联规则

3.2.1 Apriori算法简介

Apriori算法是挖掘产生布尔关联规则所需频繁项集的基本算法;它也是一个很有影响的关联规则挖掘算法。Apriori算法就是根据有关频繁项集特性的先验知识(prior knowledge)而命名的。该算法利用了一个层次顺序搜索的循环方法来完成频繁项集的挖掘工作。这一循环方法就是利用k-项集来产生(K+1)项集。具体做法就是:首先找出频繁1-项集,记为L1;然后利用L1来挖掘L2,即频繁2-项集;不断如此循环下去直到无法发现更多的频繁k-项集为止。每挖掘一层Lk就需要扫描整个数据库一遍[4,5]。

在从数据库中挖掘出所有的频繁项集后,就可以较为容易获得相应的关联规则。也就是要产生满足最小支持度和最小信任度的强关联规则。方法为:

(1)对于每个频繁项集l,产生l的所有非空子集;

(2)对于每个l的非空子集s,若support_count(l)/support_count(s)大于等于最小信任度阀值,则产生一个关联规则“s≥(s-l)”[4]。

3.2.2 使用挖掘工具产生关联规则介绍

选择挖掘工具:本实验选用了Orange version 2.0b进行告警关联规则的挖掘。将测试数据导入数据挖掘工具,设定最小支持度为5%,最小置信度为25%,生成的关联规则如图1所示。

其表示的含义为:当CN083主机产生0201“进程CPU占用过高”告警时,有80%情况下会触发该主机“CPU占用率过高”告警,告警码为0402。生成的关联规则合乎常理。

4 告警关联规则评估

一个数据挖掘系统在完成一个(组)挖掘算法之后,常常会获得成千上万的模式或规则。关联规则挖掘就是一个典型的例子,关联规则挖掘算法的执行结果,即使是对一个规模较小的数据库,也会得到数千条关联规则。显然这数千条关联规则中,只会有一小部分是实际应用价值的[6]。

评估一个模式(知识)是否有意义通常有依据以下四条标准:(1)易于用户理解;(2)对新数据或测试数据能够确定有效程度;(3)具有潜在价值;(4)新奇的。一个有价值的模式就是知识[7]。

针对本文涉及的增值业务网管告警关联规则的评估可根据如下方法进行:

(1)对比网络资源模型验证告警关联规则是否合理。

图1 关联规则挖掘示例

将挖掘出的关联规则应用于实际的网络资源模型,分析其是否合理。例如告警关联规则:1580“东信-I7Server与后台socket连接中断”≥1319“CN后台与东信-I7Server中断”,分析网络资源模型可以得知,这两条告警为同源关系,当东信-I7Server与CN之间网络异常时,I7Server和CN后台会分别上报这两条告警,可知此告警关联规则与资源模型相匹配[8]。

(2)在告警呈现上使用并验证生成的告警关联规则。

由于增值业务网管系统一般按照告警产生时间呈现收到的告警,当出现故障时,告警量瞬间暴增,从而不易找到根源告警,故可以将挖掘出的告警关联规则应用到告警呈现上,只呈现根源告警,隐藏派生告警,使维护人员集中精力处理根源告警。如通过关联规则得到同主机的“0201”号告警与“0402”号告警为蕴含关系,即“0201”≥“0402”,则在某一主机同时上报(上报时间在一定时间段内)此两种告警时,可以只呈现0201号告警。该方法即为在使用过程中验证评估告警关联规则的有效性。

5 小结

根据增值业务告警管理现状和需求,本文在研究告警信息特点的基础上,提出了一种基于关联规则挖掘的告警相关性分析模型,并使用C++开发了用于将原始告警数据进行事务化的程序,通过关联规则挖掘工具生成所需要的告警关联规则,最后提出了评估所挖掘出的告警关联规则的几种方法。

该模型表明通过将数据挖掘中的关联规则挖掘引入到历史告警数据分析中是可行的,这种告警关联分析技术对网络的具体结构或组成不需要深层次的掌握,而主要从有效的历史告警数据集合中依靠挖掘工具确定告警关联规则,具有较高的使用价值。

[1] 夏海涛, 高峰. 网络告警关联分析及标准化[R]. 普天信息技术研究院有限公司, 2007.

[2] Wallin S, Leijon V. Rethinking network management solutions[J].IT Professionals, November/December 2006. P19-23.

[3] (美)谭, (美)斯坦巴赫著, 范明等译. 数据挖掘导论[M]. 北京: 人民邮电出版社, 2006,132-152.

[4] 万里, 廖建新, 朱晓民. 一种时间序列频繁模式挖掘算法及其在WSAN行为预测中的应用[J]. 电子与信息学报, 2010, 32(3):682-686.

[5] 沈云斐, 李丹. 基于关联规则和情景规则的网络告警分析模型[J]. 小型微型计算机系统, 2007,(2):271-273.

[6] 马秀丽, 王红霞. 网络故障管理系统中告警相关性分析实现技术研究[J]. 沈阳理工大学学报.2009(6):9-14.

[7] 朱建文. 基于ACE并发编程模式的告警关联系统设计与实现[J].计算机系统应用,2007(11):6-11.

猜你喜欢
项集事务数据挖掘
基于分布式事务的门架数据处理系统设计与实现
探讨人工智能与数据挖掘发展趋势
河湖事务
不确定数据的约束频繁闭项集挖掘算法
基于并行计算的大数据挖掘在电网中的应用
一种基于Hadoop的大数据挖掘云服务及应用
基于GPGPU的离散数据挖掘研究
SQLServer自治事务实现方案探析
移动实时环境下的数据一致性研究
一种新的改进Apriori算法*