基于移动代理的网络故障管理的研究
2009-08-26
作者:周 伟1, 王汝传1, 徐小龙
摘 要:将移动代理和人工智能技术引入网络故障管理。介绍了人工智能中神经网络、贝叶斯信念网络对于处理故障管理中的告警相关、故障诊断以及故障定位等所具备的优越性,并提出了几种设计思想。
关键词:网络故障管理 移动代理 简单网络管理告警相关 神经网络 贝叶斯信念网络
1 网络故障管理的任务
随着现代网络技术和计算机技术的进步,网络在规模上和复杂程度上都迅猛地发展。如何管理庞大、复杂的计算机网络,使之持续、高效地运行,并满足不同用户的多种需求是网络管理面临的重大挑战。网络故障管理在网络管理中起着非常重要的作用。当网络出现故障时,网络故障管理要完成以下工作。
(1)精确确定故障发生的位置。
(2)隔离故障部分,使其余的网络不受干扰继续工作。
(3)不使用故障组件、重新配置或修改网络,以减少该故障对网络的影响。
(4)修复或替换故障组件,使网络恢复到初始状态。
当今网络系统庞大复杂,在网络运行过程中,出现的问题也是多种多样且不可预测的。网络故障的发生有可能使信息传输拥塞,甚至导致网络系统的崩溃。
网络故障状况可分为以下几类:系统反应迟钝、节点间连接丢失、文件系统不可存取、节点进程挂起和会话断开。
循环校验码CRC(Cycle Redundancy Checkout)校验错、帧长度出错、报文损毁或丢失等物理故障对网络影响较直接,使网络反应速度受到很大的影响。因为发送方将报文发出后,收到接收方发来的确认才认为通信成功。如果报文被破坏,则发送方将重发。但重发前有相当长的时延用于等待确认,而且重复发送多次仍失败,发送方才放弃发送。因而这些物理故障造成的时延,严重影响网络运行效率。
此外,诸如路由出错、IP地址冲突等逻辑网络故障也会使网络时延陡增。网络驱动适配器故障会使所有网络服务遭到破坏。主机网络驱动程序错、网络服务自身错误及计算机操作系统故障和操作系统配置错误都会导致网络故障。
由于移动代理(Mobile Agent,MA)自身具有智能性,因此网络管理移动代理(Network Management Mobile Agent,NMMA)可以检测网络故障,还可根据“经验”(自动更新数据库)进行自学习,并对网络故障进行判断和处理。其中经验的积累和自学习的过程不可避免地用到人工智能的技术,如概率方法中的神经网络(Neural Network,NN)和贝叶斯信念网络(Bayesian Belief Network,BBN)比较适用于处理相关告警,而基于案例推理(Case-Based Reasoning,CBR)和专家系统(Expert System,ES)的符号方法比较适用于故障定位。
2 网络故障的检测
2.1 基于SNMP的网络故障检测系统
简单网络管理协议(Simple Network Management Protocol,SNMP)功能模型包括网络管理站(Network Management Stations)、网络管理代理和网络元素(Network Elements,NE)。网络元素就是主机、网关、终端服务器等设备,SNMP是网络管理站和网络元素的管理代理用以通信的协议。
SNMP的体系结构如图1所示。该体系包括SNMP管理者(SNMP Manager)和SNMP代理(SNMP Agent)。每个支持SNMP的网络协议中都包含一个代理,此代理随时记录网络设备的情况,而网络设备通过SNMP通信协议查询或修改代理所记录的信息。
SNMP提供了一些通信原语,支持轮询和文件驱动2种访问方法,其中以轮询为主。SNMP管理器定期轮询被管设备,收集SNMP管理信息库(MIB)参数值,监测系统对网络数据进行采样、保存,以供网络管理员查看和分析。
2.2 基于移动代理的网络故障检测
移动代理是一段计算机程序,可以自主地在异构网络中按照一定的规程移动,寻找合适的信息资源和计算资源,并利用与这些资源同处一台主机的优势,处理或使用这些资源,代表用户完成特定的任务。当一个移动代理从某个位置迁移到另一个位置时,它的代码和执行状态也相应地迁移。当它到达新的位置时,移动代理将从原来中止执行的位置重新开始执行。重新执行的时间点由本代理的功能决定。一种MA应具有多种职能。例如决定如何达到目标以及下一步将要迁移到的位置。
移动代理具有封装性、可移动性、智能性和协作性。此外还具有下列优点。
(1)单端的程序设计。大多数传统的分布式计算模型是双端的程序设计,用户可以定义一个界面,设计服务器端的功能。更新和提高系统功能十分烦琐,而应用移动代理,用户只需对移动代理进行编程,极大地降低了编码的代价。
(2)不需要一致的互联传输。移动代理能用于一个简捷的互联传输中,然后可以被很快中断。移动代理在远端代理系统中执行,完成任务后,再次使用一个简捷的互联传输发送结果信息或返回自己的发源地。
(3)网络阻塞的减少。在基于传输的客户/服务器实例中,例如远程过程调用(Remote Processing Communication,RPC),即使是为完成一个简单的传输,在客户和服务器之间都需要几个典型的流程。而在NMMA中,这些流程可以被简化为移动代理。代理通过迁移到需要资源的位置,可以与未通过网络传输的任何中介数据的资源进行交互操作,从而明显减少了带宽浪费。
移动代理为传统的、固定的网络管理提供了一种新的理念。移动代理程序使用Java编写,在JVM下运行,可跨平台、安全地执行网络管理中心派发的任务,自主地在网络中各节点间迁移。由于其自身的智能性,网管移动代理不但可以检测到网络故障,还可根据“经验”处理一些故障,将结果保存,以备它回到管理工作站时将结果带回;如果检测到不能处理的故障,网管移动代理也会作记录,并报告给管理工作站。网管移动代理从管理工作站派出后,可在被任命的管辖区域(如某局域网)内依次轮询多个节点,当遍历过一遍之后,再将执行情况带回。通常一个管理站可同时派发多个网管MA来管理不同的区域。这样,网络管理员可以集中精力处理网管移动代理处理不了的那些故障,而不必处理那些简单、重复的故障。
为进行有效的故障处理,应为网管移动代理建立以下相关的数据库:采样系统、故障自学习系统数据库和故障处理策略数据库等。
用户总是希望基于MA的网络故障管理可以实现其完备的自主性和自学习性,实现其真正的智能化,即网络管理平台可以派发MA完成各种任务,如发现和定位故障,分析和测试故障的类型,针对故障的类型对其进行修复。对于那些曾经成功处理过的案例将被记录下来,在下次遇到此类故障时就可以直接从策略库中提取出来,进行处理。可见,要实现智能化的网络故障管理,自学习显得非常重要。基于移动代理技术的网络故障检测系统模型如图2所示。
告警过滤是用来把非故障性的告警滤除,而保留主要的、反映根本的原因的告警。告警过滤被分为4个过程。
(1)压缩(Compression):将相似的多个告警事件抽象为一个告警事件。
(2)清点(Count):将许多特定的、相似的告警或告警类型用一种新的告警来替换。
(3)抑制(Suppression):在高优先级的告警发生时,有效地抑制低优先级的告警。
(4)总结(Generalization):把一个告警归类于某个由域专家决定的父类。
告警关联自身有相当的模糊性,即使存在大量详细的数据,告警仍然存在极大的不确定性。例如:一个远程的、没发生的事件可能引起一个设备等待该事件的发生,但没有任何响应,直到超时。这可能是设备故障,或是由于拥塞而引起的响应延迟,或是本地设备的时钟故障等。针对告警关联过程可能出现的模糊性、不完整性和矛盾的数据,用基于概率的人工智能的方法(如NN和BBN)处理这些问题是非常有效的。
多层前馈式(Feedforward)神经网络有很多特性可用于处理告警与相关的难题:
(1)NN能够识别出跟先前已经被解决的问题相似的条件(模式匹配)。
(2)给定足够的神经元,NN能逼近任何一个函数,包括布尔函数和分类器。在为不同的告警类型训练方面,NN具有很大的灵活性。
(3)NN能够很好地总结和学习给定函数的近似值,而不需要深入理解知识域。这一点对ATM交换网等新技术领域特别重要。
(4)提供了一种快速高效的分析未来告警的方法。
(5)NN具有处理不完全的、模糊的和不完备数据的能力。
BBN是另外一种处理不确定的和表示节点间因果依赖关系的方法。该方法的一个重要优点是,可以避免在网络中形成包含所有节点排列的概率分配表,而只有节点的直接前驱节点的状态和结果对本节点有影响。根据贝叶斯信念模型的知识表示,大量相关的和任意连接的数据可以被表示出来。大体说来,有如下几点。
(1)BBN能表示通过元件和网络行为及故障之间的因果关系而建立的传输网络功能性模型的深层知识。
(2)BBN能提供故障诊断指导。计算同一贝叶斯信念网络能确定告警的优先级和需要进一步确认的故障区域。
(3)BBN能处理基于概率论背景的噪声、瞬变值和模糊数据。
(4)与其他概率方法比较,BBN具有标准组件和简洁的、易于理解的表示。
(5)由于BBN使用证据或故障组结合的解决方法,所以它能提供简洁的,且表述完备的问题空间。
3 故障诊断及定位
当网管移动代理检测节点运行情况时,若发现故障,则没有必要对其定位。网络中某处发生故障,告警系统将向其上一级管理者发出告警。在基于移动代理的网络管理系统中,管理者就是网管移动代理。
由于网络具有物理和逻辑上的相关性,因此单一的故障往往可能引发相关网元的多处告警,使故障定位变得困难。而多个故障并发告警时,情况更加复杂。网络管理员或网管移动代理无法很快弄清故障原因,因而不能迅速解决和修复故障。目前,告警过滤(Alarm Filter)往往只简单地将这些告警打印或存放到数据库中,等待管理员处理。这样使故障不能在短时间内排除,效率很低。于是有人提出了告警关联(Alarm Correlation)的处理方法。告警关联处理即对告警进行合并和转化,将多个告警合并成具有更多信息的告警,这样可用1条告警来代替多条告警,极大地提高了处理告警的效率。目前有关告警关联的研究有很多方法,有的方法通过简化优先状态自动机来简化告警;有的方法则使用人工智能,如基于事例的推理方法、基于规则的相关性方法、模糊逻辑、贝叶斯模型、人工神经网络和数据挖掘等。
在故障定位方面,CBR比专家系统更有优越性。总的来说,专家系统有以下缺点。
(1)不能处理新的和变化的数据。当遇到不能预见的情况(如基于变化的网络拓扑告警的新的结合体)时,规则会变得非常脆弱。
(2)不能根据经验进行学习。
(3)不能很好地描述大量动态变化的现实情况。操作者若不通过深入理解规则库的现状及规则库的运行机制,将很难添加新的规则。
(4)当域知识改变时ES需要进行大规模的维护,即添加新规则和修改旧规则。
(5)不擅长处理模糊逻辑。
(6)在分析大量不相关的、模糊的和不完备的数据时非常困难。
在故障定位方面,CBR也比ES更健壮。其优点如下。
(1)能通过使用相似性判断能力处理新的、可变的数据。
(2)能通过获取新案例学到经验。
(3)能很好地描述可相互分解或合并的、具有知识表示能力的、大的知识域。
(4)不需要经常、大规模地更新规则库。
(5)从仿真方法或从案例库中获取的先验事件可以被CBR作为解决方法来分析。
(6)能使用一种比专家系统的规则开发耗时更短的知识获取方法。
基于规则推理的方法可以使用存放在规则库中的先验经验。因此,问题的解决过程转变成回想旧的经验和解释旧经验的新条件。
CBR问题的解决过程可以被描述为5个步骤:①采取紧急措施补救。②解释和适应。③评估和修复。④实施修复策略。⑤评价和学习。基于案例推理的过程如图3所示。首先用最好的方法匹配当前的条件和案例。因此使用合适的索引方法(如决策树或最近匹配)非常重要。一旦某个案例被补救,它一定会被解释然后适用。解释的过程是被补救案例和当前案例的简单对比。适应是很复杂的、域间依赖的过程。接下来通过与相似性解决方案或仿真方法的案例做比较对提出的解决方法进行评测,并且该解决方法可以根据实际情况进行改变。在CBR系统找到最好的解决方法后,该方法就可以被实施和评估。评估结果、解决步骤和问题背景被输入到一个新的案例中,之后将被编入案例库的索引中,以便于系统的学习。
故障诊断专家系统接收由故障检测系统送来的故障信息,针对故障信息进行诊断、定位,然后由控制中心将推理所得的结果送往故障修复系统,或将处理不了的故障交给移动代理带回管理工作站。
基于SNMP的网络故障管理系统用于故障诊断分析的数据主要来自三个方面:MIB、远程网络监控MIB(RMON)和网络监控代理发出的Trap报文。基于移动代理的网络管理系统轮询MIB和RMON,获取相应的统计数据,作出相关的处理、修复或将结果带回等。
4 结束语
基于移动代理的网络故障管理系统是一种新型的故障处理方法,它摒弃了传统的网络管理中管理站在某一位置的固定处理方式,利用移动代理的智能性、可移动性和自主性等优点管理计算机网络,极大地减轻了网络管理员的工作量。而神经网络和贝叶斯信念网络等人工智能技术的引入,增加了网络管理系统的自学习性和主动性,能够存储过去的经验知识,并进行分析和总结。这二种人工智能方法的实现,将为网络故障管理开辟很大的发展空间。实现网络管理自主与移动代理进行交互,并完成网络故障管理将是下一个开发目标。
参考文献
1 Stallings W.SNMP网络管理.北京:中国电力出版社,2001
2 苏利敏.基于神经网络的告警关联.北京理工大学学报,2002;22(3)
3 郑庆国,吕卫锋.通信网络中的告警相关性研究.计算机工程与应用,2002;38(2)
4 王汝传,徐小龙.移动代理安全机制的研究.计算机学报,2002;25(12)
5 王汝传,赵新宁.基于网络的移动代理系统安全模型研究和分析.计算机学报,2002;26(4)
6 张云勇.移动Agent及应用.北京:清华大学出版社,2002