摘要:由于网络故障不可避免,这就要求对网络出现的故障进行管理。但是网络故障信息通常表现出复杂和不确定性的特点,要准确的对故障进行检测和定位是相当困难的,特别是故障定位。重点分析了故障定位的原理基础上,介绍了利用专家系统、神经网络和贝叶斯网络等人工智能技术,对症状和故障之间的因果关系进行推理的故障定位技术。
关键词:故障诊断;故障定位;专家系统;神经网络;贝叶斯网络
中***分类号:TP393文献标识码:A文章编号:1009-3044(2009)31-pppp-0c
Summary on Network Fault Diagnosis Key Technologies
ZHANG Yan
(Suzhou Vocational University, Suzhou 215104, China)
Abstract: As the network failure is inevitable, which requires to manage the network. However, network fault information is usually shown by the complexity and uncertainty of the characteristics, it is necessary for accurate fault detection and location is very difficult, especially the fault location. Focus on the analysis of the fault location based on the principle, introduced artificial intelligence technology such as expert systems, neural networks and Bayesian networks, and the symptoms of failure to carry out the causal link between the reasoning of the fault location technology.
Key words: fault diagnosis; fault localization; expert system; neural network; bayesian network
随着计算机和网络应用的深入,计算机网络已经成为现代社会必不可少的基础设施。然而,计算机网络是一个复杂的综合系统,网络故障不可避免,这就需要行之有效的网络故障诊断技术,来实现对网络故障的检测、定位并排除,确保网络的稳定和畅通。
传统的网络故障诊断主要是依据发生故障时的网络故障信息,通过专门的网络分析仪和网络操作系统中的故障诊断工具以及网络的轮循与告警等方法获取故障信息,然后根据故障信息,网络专家分析和判断来找出产生故障的原因。网络的故障诊断是一个典型的多层多类分类问题,通常采用分层诊断的方法[1],沿着OSI七层模型从物理层开始向上进行逐层诊断,直到网络恢复正常工作为止。
然而,随着网络规模的急剧扩大和结构的日趋复杂,传统的依靠网络专家以人工方式进行的故障诊断已经不能满足需要了。研究开发出一套具备准确的诊断以及分析处理复杂、不确定问题能力的智能故障诊断技术已成为当务之急,这也是现在网络故障管理领域研究的热点[2]。
1 网络故障诊断概述
通常网络故障诊断过程包括三个阶段[3]:
1) 故障检测。故障检测是对网络系统的不正常信号进行处理的过程,这些不正常信号来源于网络组件的故障或功能失调。故障检测是用来确定故障源的一个重要手段。
2) 故障定位,也称为故障隔离,或事件/告警关联。根据观察到的故障症状推理出故障所在的精确位置的过程,故障定位的核心部件是事件关联,即把与同一个源故障相关的告警进行分组。
3) 故障测试,也称为故障确认。故障定位得到了系统失效的故障假设之后,需要进行进一步的测试来确认故障,然后进行恢复操作,如重启软件系统或更换失效的硬件组件等。
当前网络故障诊断的研究主要集中在故障诊断的第二阶段――故障定位,这是网络故障诊断的关键技术,也是网络故障诊断的难点所在[2-4]。
网络故障定位的核心技术是事件关联技术。其基本思想是通过关联多个事件为某单一概念事例来过滤不必要的或不相关的事件,为网络管理员提供事件信息更精简的视***,以准确、快速的识别故障源。
由于故障具有传播性,单个故障会产生大量的网络告警,在多个故障同时发生时,情况变得更加复杂。故障定位就是要在故障产生时,把告警事件进行关联,分离并推断出故障源的准确位置。但是网络故障定位的主要困难却是来自于得到的告警信息太多而不是信息的缺少。而且网络的不可靠性和不确定性,使故障定位变得更加复杂而困难。其主要表现在[4]:
1) 故障证据可能是模糊的、不一致的和不完整的;
2) 得到的系统知识可能包含不确定信息;
3) 多个不相关的故障可能同时发生产生重叠的告警消息;
4) 存在多个不同的故障假设能够解释观察到的故障症状;
5) 在大型系统中,利用单个管理应用程序对系统进行故障定位以及对可用知识库进行维护在计算上通常是不可行的;
6) 事件之间不仅存在因果关系,通常还存在时间相关性。
针对上述难点,主要的解决方法是引入人工智能技术,进行自动故障定位,以实现智能化的故障诊断。目前用于网络故障定位的人工智能技术主要有:专家系统、神经网络和贝叶斯网络等。
2 故障定位技术
2.1 基于专家系统的故障定位技术
故障诊断中应用最广泛的人工智能技术是专家系统,专家系统通过模仿人类专家在解决特定领域时的行为来解决问题。基于专家系统的故障定位技术根据故障诊断领域的专家知识和经验,通过模拟人类专家做出决策的过程,达到解决复杂系统故障诊断的目的。
专家系统由知识库、推理机、知识获取、解释界面等四部组成,其中知识库用来存放相关领域专家提供的专门知识。在故障检测诊断专家系统的知识库中,存储了某个对象的故障征兆、故障模式、故障成因、故障排除意见等内容,这些知识是诊断的基础。专家系统知识库的知识,可以是从经验中获得的表面知识,也可以是通过理解系统行为的工作原理而得到的深层知识。推理机的功能是根据一定的推理策略从知识库中选取有关的知识,对用户提供的证据进行推理,直到得出相应的结论为止。
根据专家系统所使用知识结构的不同,解决故障定位问题的技术可分为以下几种:
1) 基于规则的推理技术
基于规则的推理(Rule-based Reason,RBR)是最简单的关联技术,己被用于HP Open View Element Management构架。通常,基于规则的系统有三个组成部分:(1) 推理引擎,包含解决问题的策略;(2)知识库,包括与特定问题有关的规则,规则是指出在什么情况下采取什么措施;(3) 工作存储区,包含需要处理的问题数据。
在RBR的事件关联系统中,知识库的专家知识是网络中的问题定义。工作存储区包括被监控网络的拓扑和状态信息,工作存储区用来识别网络是否出现不完善的状态。推理引擎根据知识库的信息,将当前的状态与规则的左侧相比较,查找出最相似的匹配,然后输出规则的右侧。
2) 基于模型的推理技术
基于模型的推理(Model-based Reason,MBR)是现有网络故障管理系统中应用最广泛的一种技术。该方法充分利用现有的系统知识,为具体的现实系统建立对应的抽象系统模型,再根据系统模型对系统行为进行预测,并将预测的行为与观察到的系统实际行为进行比较,然后再对预测的行为和实际行为间的不一致进行诊断。在基于模型的推理系统中,系统模型一般都提供网络拓扑、部件故障和告警之间的条件关系等信息。
3) 基于范例的推理技术
范例是指一段带有上下文信息的知识,该知识表达了推理机在达到其目标的过程中能起到关键作用的经验。基于范例的推理(Case-based Reason,CBR)根据过去的实际经验或经历,对现有的问题做出相应的决策。基于范例的推理技术的推理过程可以分为4个部分,分别为检索(Retrieve)、复用(Reuse)、修正(Revise)、保存(Retain),简称4R过程。其中Retrieve过程从范例库中检索与问题匹配度最大的范例,Reuse过程使用历史范例来解决所提出的问题,Revise过程在必要时修正提出的解决方案,Retain过程将新的解决方案作为一个新范例保存到范例库中。
2.2 基于神经网络的故障定位技术
神经网络能够处理复杂模型,具有联想、记忆、推理和抑制噪声能力,而且信息处理很快,能存储大量的知识。神经网络能够高效地辨识给定模式,具有自学习能力;神经网络能够通过联想能力处理不确定、不完整数据,因此神经网络很适合于用于解决故障诊断问题。神经网络只要输入的模式接近于训练样本,系统就能进行推理。神经网络克服了专家系统中如果规则没有完全匹配,则会退出专家系统的缺点。神经网络还可以运用遗传算法进行优化,提高神经网络的性能。
目前神经网络有两种诊断模式:
1) 离线诊断:这种诊断模式将学习和系统运行分开。当系统出现故障时,把故障信息或现象输入神经网络,神经网络通过自组织和自学习,输出故障解决方案。
2) ***诊断:将神经网络和系统直接相连,让系统自动获得故障信息和现象,然后由神经网络内部进行自组织和自学习,把学习过程和运行过程合二为一。
文献[5]提出一种基于粗糙集神经网络的网络故障诊断算法,将知识系统技术应用于链路层故障诊断中,针对故障诊断问题的需要,构建一个故障诊断知识库;针对知识库中可能存在的知识规则冗余问题,提出基于粗糙集理论的知识库规则约简方案,降低知识规则的冗余度;由于诊断问题的实质是一种映射,将神经网络模型引入故障诊断系统,用一种前馈型网络来逼近这种映射关系,神经网络的学习样本来自于知识库中的知识规则,实现对网络故障的分类。
2.3 基于贝叶斯网络的故障定位技术
贝叶斯网络是处理不确定性问题的新方法,代替了人工智能和专家系统。利用贝叶斯网络进行告警关联是当前研究的一个热点[6],贝叶斯网络的一个很重要功能就是能根据概率理论在原因和结果之间进行不确定性推理。通过贝叶斯网络来分析通信网络中的告警相关性,可以克服告警时间的不确定性基于贝叶斯网络的故障诊断方法中,通过模拟被管理网络系统的主要组件间的因果关系使不确定性知识模型化。
贝叶斯网络可以定义为一个三元组(V,L,P),V是有向非循环***中的结点集,L是结点之间的因果链集,表示它们之间的因果关系,P是概率集,即P = {p(υ|π(υ)) |υ∈V},π(υ)是υ的父结点,表示一个变量对另一个变量的影响程度。 V由故障集F = {f1, f2, …, fm}和症状集S = {s1, s2, …, sn}组成。P= {p(si | fj) | si∈S, fj∈F, i=1, 2, …, n, j=1, 2, …, m}。这里,一个症状可能被多个故障引发,一个故障可能引发多个故障。假设模型是完备的,即,若用Fsi表示所有可能引起症状si的故障集合,如果Fsi中的故障都没发生,那么症状si一定不会出现,反之,如果出现症状si,那么Fsi中至少有一个故障发生。(下转第8677页)
(上接第8669页)
2.4 故障定位技术分析
基于专家系统的故障诊断方法,知识的获取和知识库的构建比较困难,开发成本比较高。每种相关性分析方法在实际中都有应用,单纯地使用某一种关联方法构建的告警相关性分析工具经常会顾此失彼,最终使系统不是缺乏学习能力,就是逻辑推理能力不足,难以适应网络发展的需要。
基于神经网络的故障诊断方法中,对神经网络进行训练的工作量非常大。神经网络的适应性也比较差,不能自动适应网络环境的变化。基于粗糙集神经网络的故障诊断方法,将模糊控制技术和神经网络技术相结合,虽然结合了两者的优势,但实现起来就比较困难。
基于贝叶斯网络的故障诊断方法可用来对不确定和不完整信息中的将来可能发生的故障作出推理以提供有效的预测。尽管此方法具有许多优点,但是在实际的环境中获取先验知识比较困难,限制了其应用。而且随着网络的复杂度增加,贝叶斯网络本身的复杂度呈指数级数增加,所以其计算量非常大。基于贝叶斯网络的不确定性推理技术己被证明为NP难题。因此,使用贝叶斯网络进行网络故障定位的技术还有待于改进。
此外,除了上述网络故障定位技术,还有基于数据挖掘的网络故障定位技术、基于Petri网的网络故障定位技术和基于有限状态机的网络故障定位技术等方法。
3 小结
网络故障智能诊断和精确定位相当复杂的问题,靠单一技术很难圆满解决,只有多种技术的融合集成处理故障信息,才能实现高效而精确的网络故障定位。本文在研究网络故障诊断技术的基础上,重点对网络故障智能诊断核心技术――故障定位进行了深入的研究,介绍了基于专家系统、神经网络和贝叶斯网络的故障定位技术,为进一步深入研究高效智能故障诊断技术,最终实现网络故障的主动预防打下基础。
参考文献:
[1] Greg Tomsho.网络维护和故障诊断指南站[M].晓苏,译.北京:清华大学出版社,2003.
[2] Breitbart Y,Garofalakis M, Jai B.Topology discovery in heterogeneous IP networks: the net inventory system[J].IEEE/ACM Transactions on Networking,2004,12 (3):465-476.
[3] ANSI T1.215 OAM&P-Fault Management Messages for Interface between Operations Systems and Network Elements,1994.
[4] 郑秋华.网络故障智能诊断关键技术研究[D].杭州:浙江大学,2007.
[5] 杨勇.基于粗集的知识获取方法研究[D].南京:东南大学机械工程系,2000.
[6] 丁建国.不确定性网络故障管理[D].上海:上海交通大学,2005.
转载请注明出处学文网 » 网络故障诊断关键技术