(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来构建专家系统,实现对网络故障的自动过滤和诊断,包括告警过滤和根源故障分析。
系统的结构图如图2所示。
图2 系统结构图
根据系统要完成的功能,本系统分为以下4个模块:故障采集模块、故障配置管理模块、故障告警处理模块和故障统计分析模块。故障采集模块主要完成对故障告警的收集并把结果传送到中心,目前本系统主要完成对SNMP Trap、Syslog和ICMP Ping的告警信息的采集。故障配置管理模块是本系统的基础模块,其它模块的许多功能要依赖于该模块,其应用方式为Web界面,包括故障系统参数配置、故障过滤条件配置、故障前转条件配置、故障根源分析条件配置以及故障视图定义等功能。故障告警处理模块是本系统的核心模块,为后台程序,完成接收故障告警、根据过滤条件入库、根据前转条件前转告警、根据故障根源分析条件处理故障信息等操作。故障统计分析模块主要完成对故障的统计,以报表方式显示,主要功能包括报表定制、报表定时生成、报表数据导出和下载等。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




