网络通信 频道

基于规则的网络故障管理系统的设计与实现

1. 引言
网络管理的主要任务是规划、监督、设计和控制网络资源的使用及网络的各种活动,使网络中的各种资源能得到正常、高效的运行,并且在网络出现故障时能及时做出报告和处理,协调、保持网络的运行等。
ISO建议网络管理应包含以下基本功能:故障管理、计费管理、配置管理、性能管理和安全管理。其中,故障管理是网络管理中最基本的功能之一。网络管理器必须具备快速和可靠的故障监测、诊断和恢复功能。
为了使现代网络管理系统能够更高效的对各种大型复杂的网络进行管理,许多研究者很早就尝试将人工智能的技术应用到网络管理领域,如人工神经元网络、专家系统、确定性理论、证据理论、主观Bayesian方法等。在这些技术中,专家系统技术在网络管理领域(尤其是网络故障管理领域)的应用是比较成功的,专家系统对解决网络管理中的一些问题有很好的效果,如实时性、协作管理等,因此专家系统特别适合用在网络的故障管理中。
网络管理系统对资源的管理控制要依赖于它对网络系统中的资源状态的了解,但由于网络系统是一个动态的大系统,网络管理系统收集的网络系统的状态常常是不完整的。专家在诊断网络故障时能够依靠不完整的信息,依赖以往积累的经验选择合适的诊断步骤,并且根据诊断的情况逐步调整方向和缩小范围。专家在这一过程中用到的就是不确定的推理方法。引起不确定的原因是很多的,处理问题的方法也不尽相同。因此必须要求网络管理系统也具有同样的处理不确定不完整信息的能力。模糊专家系统具有处理不确定性知识的能力,本文对模糊专家系统在网络故障管理系统中的应用作了初步研究。
2. 网络故障管理技术
网络故障管理的主要任务是及时发现并排除网络故障,它是网络管理的诸多任务中最重要的任务。一般来说,故障管理系统应该包括以下基本功能:故障监测、故障报警、故障信息过滤和关联分析、故障报表查询、故障管理配置等。
对网络故障信息的具体处理流程如图1所示。
 
图1 故障处理流程
2.1故障采集
显然,发现故障是网络故障管理系统必须具备的功能。要发现网络故障,就是要收集各种网络状态信息。收集网络状态信息一般有两种方法:一种是异步告警,即在发生故障时,由发生故障的设备或服务器主动向网络管理系统报告;另一种是主动轮询,即由网络管理系统定期查询各设备和服务器的状态。一般的网络管理系统都同时使用了这两种方法。
由发生故障的设备或服务器主动向网络管理系统报告网络故障是一种十分有效的故障发现机制。它能及时的发现端口故障、连接失败、设备重新启动、收不到某一主机应答、服务进程异常等网络故障和重要事件,但该方法并不可靠。这就需要依赖由网络管理系统轮询设备的方法。主动轮询方法可以帮助故障管理系统可靠的发现网络故障。
2.2告警过滤和根源故障分析
网络故障的分析和分离相对于网络故障发现来说要困难和复杂得多。其目的是迅速找到网络故障的确切原因,为排除故障指明方向。当然,依赖网络管理者的经验和智慧来分析、分离故障也是可能的,但这就大大降低了故障处理的自动化程度。事实上,网络中产生的很多相关故障都可能是由同一个原因引起的。如果能够在向管理者报告前对故障信息进行分析和过滤,就能更有效的帮助管理者处理网络故障,而不仅仅是不负责任的向管理者报告一大堆看起来没有关联的故障报警。这就需要对采集来的故障信息进行告警过滤和根源故障分析的处理。
告警过滤,是指将采集到的告警信息依据用户定义的规则进行过滤,去除无关的告警信息的动作。广义地,可以指从多个告警中过滤出少数告警的任何动作。根源故障分析,是指根据网络的连接关系、故障的上下文关系和网管人员的相关经验,制定出一定的规则,并由此查找出产生一系列故障的真正原因即根源故障的动作。
对根源故障的分析主要有两种方法。一是依赖网络的连接关系即网络的拓扑结构信息和故障的上下文关系(也就是在该故障之前和之后发生的其他网络故障)。二是依赖于系统保存的网络故障历史记录的分析。方法一是目前多数网络故障管理系统首先采用的办法,它可以有效的处理和分析大部分的网络故障,特别是网络连通性故障。方法二对于处理其他类型的网络故障有着很好的前景。通过合理的设计故障处理记录和故障分析策略,可以对更加复杂的网络故障进行分析和分离,为管理者提供十分有价值的参考信息。
3. 模糊专家系统在本故障管理系统中的应用
3.1不确定性理论
当某条信息不是绝对肯定的时候就会出现不确定性。不确定性的程度通常用一个0~1之间的一个数值来表示,称为可信度因子。当可信度因子等于1的时候表示专家系统对某事实为真非常肯定,当可信度因子为0时表示系统对该事实为真非常不肯定。
模糊专家系统可以对不确定性的知识进行很好的处理。它可以通过使用被应用的事实及规则的模糊因子和可信度因子计算出结果的真实程度。模糊专家系统能够处理不同专家意见下的不完全可靠的和不完整的知识。
3.2模糊专家系统在本系统中的具体应用
本文所介绍的故障管理系统是一个基于模糊知识的智能系统,它能把网管专家在故障诊断领域的知识以规则的形式存放在知识库中,当网络中的告警报上来以后,它能调用相应的规则进行启发式推理,找出告警源,并给出可能的故障原因供维护人员参考。下面就详细的说明本系统中所采用的模糊专家系统的设计。
3.2.1知识表示
知识的表示方法是设计专家系统的核心内容之一。不同的知识表示方法往往会对问题的求解产生很大的影响。在本故障管理系统所采用的模糊专家系统的设计中,是采用规则结构的方法来表示知识的。
规则结构也叫做产生式规则,它是知识表示中最简单、最常用的形式。产生式规则的一般形式是:if (前提),then (动作)或(结论)。采用规则结构进行知识表示有下列优点:
(1)模块化:在众多规则所组成的库中,每条规则可自由增删、修改,象一个独立的知识块。
  (2)一致性:规则库中的各规则都具有统一的结构。
  (3)自然性:用它可以很方便地表示专家的知识和经验,解释专家们是怎样做他们的工作的。
将网络告警信息之间存在的关系以规则的形式表示是很方便的。但同时,规则表示的形式也在一定程度上影响着专家系统的执行效率。比如当某一网络设备发生LINK_DOWN故障时,会导致该设备的PROTOCOL_DOWN故障的发生,即是说PROTOCOL_DOWN这条故障是由LINK_DOWN故障引起的,LINK_DOWN故障是PROTOCOL_DOWN故障的根源故障。
我们可以将这条规则直接表示为:
Rule-1 {
IF { ?Alarm1: Alarm(?ID1; ?IP1; ?FaultKey1 )
   ?Alarm2: Alarm(?ID2; ?IP2; ?FaultKey2 )
   ?FaultKey1 equals “LINK_DOWN”
   ?FaultKey2 equals “PROTOCOL_DOWN”
   ?IP1 equals IP2
} THEN {
   apply ?Alarm2 { Rootcause = ?ID1 }
}
 }
这条规则表示了将同一个IP地址上的FaultKey(故障描述的关键字)为LINK_DOWN的故障标识为PROTOCOL_DOWN故障的根源故障。但在实际的网络故障管理系统中,当网络故障信息很多的时候,该条规则的执行效率很低。这是由于在专家系统进行推理的时候,会对网络中的N条故障信息进行规则条件的匹配判断,由于此条规则是针对两条故障信息之间的关系而言的,所以会进行N*N次的判断,从而影响了推理的效率。
为了提高推理效率,可以将这种规则条件较多的规则分解为若干小规则进行处理,在进行两个以上故障关系(Rule-3)的匹配判断之前,先将参与匹配的故障信息通过Rule-1和Rule-2提取出来,这样只会进行2N+a*b次的判断,由于一般来说a和b都远小于N,从而提高了推理效率。更改后的三个小规则如下。
Rule-1 {
IF { ?Alarm: Alarm(?ID; ?IP; ?FaultKey )  
   ?FaultKey equals “LINK_DOWN”  
} THEN {
   retract ?Alarm
   insert RootAlarm(?ID; ?IP; ?FaultKey )
}
 }
Rule-2 {
IF { ?Alarm: Alarm(?ID; ?IP; ?FaultKey )
   ?FaultKey equals “PROTOCOL_DOWN”  
} THEN {
   retract ?Alarm
   insert SlaveAlarm(?ID; ?IP; ?FaultKey )
}
 }
Rule-3 {
IF {
?RootAlarm: RootAlarm(?ID1; ?IP1; ?FaultKey1 )
   ?SlaveAlarm: SlaveAlarm(?ID2; ?IP2; ?FaultKey2 )  
   ?IP1 equals IP2
} THEN {
   apply ?SlaveAlarm { Rootcause = ?ID1 }
}
 }
在系统中还提供了良好的图形用户界面,可方便地对规则库中的规则进行查看、添加、修改和删除等操作,这有利于使专家的经验到系统中得到不断的完善,以便更好地对系统进行维护和扩充,这也正体现了专家系统的核心思想。
3.2.2搜索策略
搜索的策略也在很大的程度上影响着系统的运行效率。本故障管理系统在执行根源故障查找时,是从众多的告警信息中识别出根源告警。如果采用盲目搜索的办法,搜索效率会很低。设计搜索策略的关键就是如何以最短的路径找到目标。
如果我们能利用问题域的特征信息来排列告警信息的顺序,即选择最有希望的告警信息加以处理,那么搜索效率将会大为提高。这种问题领域的特征信息称为启发式信息,利用启发式信息的搜索方法就叫做启发式搜索方法。
对本系统来说,就是首先将告警信息按照告警级别、告警类型、告警发生时间等因素进行排序,将告警级别高的排在前面,将告警发生时间早的排在前面。这样排序的结果是排在前面的告警总是比排在后面的告警更可能是根源告警,这样就大幅度提高了搜索效率。
3.2.3推理方法
就推理方法而言,由于本系统所用的规则结构并不复杂,采用正向推理的方法即可。正向推理是从已知的问题出发寻找合理的解答,一直到得出答案的一种方式,是从规则的IF部分向THEN部分推理的过程。正向推理系统一般包括三个部分:一个反映问题域当前状态的“事实库”,一个存放规则的“规则库”和一个进行推理的“推理机”。
其推理过程如下:
(1)根据事实库的当前状态在规则库中查找适用的规则。
  (2)执行选出的规则,规则作用于事实库,使之发生变化,推理机再根据事实库的新的状态选择一条规则作用于事实库,形成一个“识别一动作”循环,直至事实库的状态满足了结束条件或无可用规则为止。
在本故障管理系统中,事实库中存放的是网络中的故障信息,规则库中存放的是网管专家总结出来的相关规则,推理机按照上述的启发式搜索策略对这些故障信息进行排序并根据事实库中的故障信息,在知识库中选择适用的规则进行推理诊断,清除掉要过滤的故障信息,并从事实库中的众多故障信息中找出根源故障,最终将结论提交给用户。
4. 系统的具体实现
本系统是一种基于Web方式的三层结构的应用系统,采用基于页面的方式呈现。客户端采用HTML/Applets和C++应用方式;中间服务端采用WebServer/Servlets/J2EE/SOAP应用方式;底层采用Oracle数据库;客户端与服务端之间的通讯采用HTTP/XML/SOAP等协议。
本系统通过SNMP、SYSLOG、API、Telnet等多种途径发现故障;根据时间、相关性等多种逻辑进行故障过滤;根据网元和故障之间逻辑联系进行故障关联和根源故障查找;通过Web、Email、SMS、Pager等多种方式发出故障通知;通过工单和内置知识库帮助管理员处理系统故障。该故障管理系统应用模糊专家系统工具FuzzyClips来构建专家系统,实现对网络故障的自动过滤和诊断,包括告警过滤和根源故障分析。

根据系统要完成的功能,本系统分为以下4个模块:故障采集模块、故障配置管理模块、故障告警处理模块和故障统计分析模块。故障采集模块主要完成对故障告警的收集并把结果传送到中心,目前本系统主要完成对SNMP Trap、Syslog和ICMP Ping的告警信息的采集。故障配置管理模块是本系统的基础模块,其它模块的许多功能要依赖于该模块,其应用方式为Web界面,包括故障系统参数配置、故障过滤条件配置、故障前转条件配置、故障根源分析条件配置以及故障视图定义等功能。故障告警处理模块是本系统的核心模块,为后台程序,完成接收故障告警、根据过滤条件入库、根据前转条件前转告警、根据故障根源分析条件处理故障信息等操作。故障统计分析模块主要完成对故障的统计,以报表方式显示,主要功能包括报表定制、报表定时生成、报表数据导出和下载等。
5. 结论
网络故障管理系统是网络管理系统中的一个基本而重要的组成部分,它对于实现网络恢复,保证网络的畅通有着极为重大的意义。本文所述的基于规则的网络故障管理系统,相对于传统的应用系统而言,具有更灵活的知识表示方式,具有更高的运行效率。将专家系统的方法引入到网络故障管理,能够实现对网络故障的快速定位,提高网络管理的自动化和智能化水平。同时,将不确定性的理论引入到网络故障管理系统中,对不完全可靠或不完整的知识有了一定的处理能力。当然,知识表示的方法还有很多,在这方面的研究也将越来越深入。可以预见,人工智能技术在网络管理领域必将得到越来越广泛的应用。

 

转载地址:http://www.net130.com/CMS/Pub/network/network_manage/0144.htm

0
相关文章