一种基于简单网络管理协议的trap处理方法转让专利

申请号 : CN200810217071.1

文献号 : CN101388808B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阚江涛

申请人 : 中兴通讯股份有限公司

摘要 :

一种基于简单网络管理协议的trap处理方法,包括:1.1网络设备以trap报文形式把通知或故障发给接收器;1.2告警处理模块控制报文的进出及判断,若符合要求,则进1.3,否则被差错处理模块处理后返回结果;1.3告警处理模块取出报文和查找网络设备信息,及判断网络设备是否被管,若是,则进1.4,否则报文被差错处理模块处理后返回结果;1.4告警处理模块获取trapOid,再由网络设备信息和trapOid判断是否获取到告警解释器,若获取到,告警解释器解析trap报文后返回结果,否则,缺省告警解释器解析trap报文后返回结果。本发明告警处理效率高、扩展性强、易维护及具有错误自我检测处理能力。

权利要求 :

1.一种基于简单网络管理协议的trap处理方法,其特征在于,包括以下步骤:

1.1网络设备先以trap报文形式把通知或故障发给网络管理系统的接收器,接收器再把trap报文放入缓存队列中;

1.2告警处理模块控制缓存队列中的trap报文的进出及对trap报文本身的属性进行判断,若符合判断要求,则进入步骤1.3,否则,trap报文进入差错处理模块,差错处理模块先对trap报文进行差错处理,再产生处理结果,所述处理结果返回;

1.3告警处理模块取出trap报文和查找相应的网络设备信息,以及判断该网络设备是否属于被管理的网络设备,若是,则进入步骤1.4,否则,该网络设备的trap报文进入差错处理模块,差错处理模块先对trap报文进行差错处理,再产生处理结果,所述处理结果返回;

1.4告警处理模块先获取trap报文的trapOid,再根据网络设备信息和trapOid来判断是否获取到告警解释器,若获取到告警解释器,则该告警解释器先解析trap报文,再产生处理结果,所述处理结果返回,否则,默认的缺省告警解释器先解析trap报文,再产生处理结果,所述处理结果返回。

2.根据权利要求1所述的方法,其特征在于,

对trap报文进行差错处理:先记录trap报文信息,再丢弃该trap报文。

3.根据权利要求1所述的方法,其特征在于:

告警处理模块采用先进先出的队列方式来控制缓存队列中的trap报文的进出,若缓存队列满,缓存队列将停止存入新的trap报文,直到缓存队列又有剩 余的缓冲空间时,缓存队列再存入新的trap报文。

4.根据权利要求1所述的方法,其特征在于:

在步骤1.2中,告警处理模块对trap报文是否完整以及是否包含正确的trap报文发送地址进行判断,若符合判断要求,则进入步骤1.3。

5.根据权利要求1所述的方法,其特征在于:

在步骤1.4中,告警处理模块根据网络设备信息和trapOid来查找处理类型的标识,在获得处理类型的标识后,告警处理模块先把标识与trapOid组成权值,再根据权值查找对应的告警解释器。

6.根据权利要求5所述的方法,其特征在于:

所述处理类型包括网络设备类型和网络设备版本,各网络设备的对应关系采用XML表格表示,相同的处理类型,位于同一个节点下面。

7.根据权利要求5所述的方法,其特征在于:

告警处理模块根据权值在“告警解释器表”中查找对应的告警解释器,在告警解释器表中,每一个权值对应一个告警解释器。

8.根据权利要求7所述的方法,其特征在于:

告警解释器表包括“处理类型-标识”对应表和“权值-告警解释器”对应表,每添加一种新网络设备时,以权值作为判断,若此网络设备的处理类型和“处理类型-标识”对应表中的网络设备的处理类型一致时,则修改“处理类型-标识”对应表,否则,修改“权值-告警解释器”对应表。

9.根据权利要求1所述的方法,其特征在于:

在步骤1.4,在告警解释器对trap报文解析时,告警解释器的告警检测工具先检查判断PDU数据包是否合格,若合格,则进入步骤1.41,否则,进入步骤1.43;

1.41告警解释器先生成trap对象,再检查判断trap对象是否为合格的对象,若是,则进入步骤1.42,否则,进入步骤1.43;

1.42告警解释器根据读取trap报文信息和网络设备信息,生成告警,以及告警检测工具检查判断所述告警是否合格,若合格,则产生处理结果,否则,进入步骤1.43;

1.43先进行差错处理,再产生处理结果。

10.根据权利要求9所述的方法,其特征在于,

告警检测工具在检查判断时,调度所述告警解释器的各接口,调度方式包括多线程方式和顺序方式,其调度处理包括以下步骤:告警检测工具先获取正确的检查数据,以及获取需要调用的任务,再分别对每一个任务进行处理,读取任务属性;

告警检测工具根据任务属性判断是否需要采用新的线程调用,若需要,则先采用多线程方式创建新线程处理数据,所产生的数据再返回给网络管理系统的相应模块,否则,采用顺序方式处理数据,所产生的数据再返回给网络管理系统的相应模块。

说明书 :

一种基于简单网络管理协议的trap处理方法

技术领域

[0001] 本发明涉及一种基于简单网络管理协议的处理方法,具体地说,涉及一种基于简单网络管理协议的trap处理方法。

背景技术

[0002] 在设备发生故障或网络状况异常时,网络管理系统提示用户,该提示称为告警。简单网络管理协议SNMP(Simple Network Management Protocol)为网络管理系统提供底层网络管理的框架。当设备发生一定事件时,设备会触发而发送消息到服务器,该消息称为trap,其中trap是一种陷阱信息,trap是SNMP数据包的一种类型。网络管理系统通过接收并分析设备发送过来的陷阱信息而产生告警。
[0003] 在互联网高速发展的今天,网络设备越来越多,网管软件越来越重要。目前,网络管理系统需要管理几千个、甚至几万个设备。这些设备上报的告警更是多不胜数。如何提高告警处理效率,而且便于开发和维护就是一个非常重要的问题。传统的做法是:在网管处理多设备、多类型、多版本的告警时,一般采用多个过滤器的方式,则如果“过滤器甲”不能处理,交给“过滤器乙”处理,如果“过滤器乙”不能处理则继续交给后面的过滤器处理,逐级处理,然而,逐级处理不仅速度慢,而且需要重复的解析数据包。另外,目前的网管告警处理过程大多只是做数据包的解析,并没有做到数据处理的全程检查跟踪。此外,trap处理过程一般和trap的实际内容紧密耦合,因此容易造成逻辑处理紧密耦合;每添加一种新类型的设备,需要增加许多的配置或编码才能解析此trap;同一设备增加新版本trap,需要重新开发或对原始流程做修改;在程序处理异常时,缺少自我检查机制。

发明内容

[0004] 本发明所要解决的技术问题是提供一种基于简单网络管理协议的trap处理方法,采用该方法,本发明告警处理效率高、扩展性强、易维护及具有错误自我检测处理能力,使得开发维护变得更加简便。
[0005] 一种基于简单网络管理协议的trap处理方法,其包括以下步骤:
[0006] 1.1网络设备先以trap报文形式把通知或故障发给网络管理系统的接收器,接收器再把trap报文放入缓存队列中;
[0007] 1.2告警处理模块控制缓存队列中的trap报文的进出及对trap报文进行判断,若符合判断要求,则进入步骤1.3,否则,trap报文进入差错处理模块,差错处理模块先对trap报文进行差错处理,再产生处理结果,所述处理结果返回;
[0008] 1.3告警处理模块取出trap报文和查找相应的网络设备信息,以及判断该网络设备是否属于被管理的网络设备,若是,则进入步骤1.4,否则,该网络设备的trap报文进入差错处理模块,差错处理模块先对trap报文进行差错处理,再产生处理结果,所述处理结果返回;
[0009] 1.4告警处理模块先获取trap报文的trapOid,再根据网络设备信息和trapOid来判断是否获取到告警解释器,若获取到告警解释器,则该告警解释器先解析trap报文,再产生处理结果,所述处理结果返回,否则,默认的缺省告警解释器先解析trap报文,再产生处理结果,所述处理结果返回。
[0010] 在本技术方案中,对trap报文进行差错处理:先记录trap报文信息,再丢弃该trap报文。
[0011] 在本技术方案中,告警处理模块采用先进先出的队列方式来控制缓存队列中的trap报文的进出,若缓存队列满,缓存队列将停止存入新的trap报文,直到缓存队列又有剩余的缓冲空间时,缓存队列再存入新的trap报文。
[0012] 在本技术方案的步骤1.2中,告警处理模块对trap报文是否完整以及是否包含正确的trap报文发送地址进行判断,若符合判断要求,则进入步骤1.3。
[0013] 在本技术方案中,在步骤1.4中,告警处理模块根据网络设备信息和trapOid来查找处理类型的标识,在获得处理类型的标识后,告警处理模块先把标识与trapOid组成权值,再根据权值查找对应的告警解释器。
[0014] 在本技术方案中,所述处理类型包括网络设备类型和网络设备版本,各网络设备的对应关系采用XML表格表示,相同的处理类型,位于同一个节点下面。
[0015] 在本技术方案中,告警处理模块根据权值在“告警解释器表”中查找对应的告警解释器,在告警解释器表中,每一个权值对应一个告警解释器。
[0016] 在本技术方案中,告警解释器表包括“处理类型-标识”对应表和“权值-告警解释器”对应表,每添加一种新网络设备时,以权值作为判断,若此网络设备的处理类型和“处理类型-标识”对应表中的网络设备的处理类型一致时,则修改“处理类型标识”对应表,否则,修改“权值-告警解释器”对应表。
[0017] 在本技术方案的步骤1.4,在告警解释器对trap报文解析时,告警解释器的告警检测工具先检查判断PDU数据包是否合格,若合格,则进入步骤1.41,否则,进入步骤1.43;1.41告警解释器先生成trap对象,再检查判断判断trap对象是否为合格的对象,若是,则进入步骤1.42,否则,进入步骤1.43;1.42告警解释器根据读取trap报文信息和网络设备信息,生成告警,以及告警检测工具检查判断所述告警是否合格,若合格,则产生处理结果,否则,进入步骤1.43;1.43先进行差错处理,再产生处理结果。
[0018] 在本技术方案中,告警检测工具在检查判断时,调度所述告警解释器的各接口,调度方式包括多线程方式和顺序方式,其调度处理包括以下步骤:告警检测工具先获取正确的检查数据,以及获取需要调用的任务,再分别对每一个任务进行处理,读取任务属性;告警检测工具根据任务属性判断是否需要采用新的线程调用,若需要,则先采用多线程方式创建新线程处理数据,所产生的数据再返回给网络管理系统的相应模块,否则,采用顺序方式处理数据,所产生的数据再返回给网络管理系统的相应模块。
[0019] 通过采用本发明的方法,本发明具有以下有益效果:本发明实现了操作流程和业务数据相分离,便于开发维护和定位故障;本发明支持功能模块化部署,并且处理流程不会因此变得繁冗;本发明扩展性强,可在数据处理的过程的多个位置加入扩展功能;本发明具有错误自我检测处理能力。
[0020] 在结合附图阅读本发明实施方式的详细描述后,本发明的特点和优点将变得更加清楚。

附图说明

[0021] 图1是本发明的实施方式的网络连接图;
[0022] 图2是本发明的实施方式的流程图;
[0023] 图3是本发明的实施方式的告警解释器的查找流程图;
[0024] 图4是本发明的实施方式的告警解释器的报文解析流程图;以及[0025] 图5是本发明的实施方式的告警检测时调用相关接口的流程图。

具体实施方式

[0026] 下面结合附图对本发明做进一步的详细描述。
[0027] 一种基于简单网络管理协议的trap处理方法,其包括以下步骤:第一步,网络设备先以trap报文形式把通知或故障发给网络管理系统的接收器,接收器再把trap报文放入缓存队列中;第二步,告警处理模块采用先进先出的队列方式来控制缓存队列中的trap报文的进出及对对trap报文是否完整以及是否包含正确的trap报文发送地址进行判断,若符合判断要求,则进入第三步,否则,trap报文进入差错处理模块,差错处理模块先对trap报文进行差错处理,再产生处理结果,然后,所述处理结果返回;第三步,告警处理模块取出trap报文和查找相应的网络设备信息,以及判断该网络设备是否属于被管理的网络设备,若是,则进入第四步,否则,该网络设备的trap报文进入差错处理模块,差错处理模块先对trap报文进行差错处理,再产生处理结果,然后,所述处理结果返回;第四步,告警处理模块先获取trap报文的trapOid,再根据网络设备信息和trapOid来查找处理类型的标识,在获得处理类型的标识后,告警处理模块先把标识与trapOid组成权值,再根据权值查找对应的告警解释器,若获取到告警解释器,则该告警解释器先解析trap报文,再产生处理结果,所述处理结果返回,否则,默认的缺省告警解释器先解析trap报文,再产生处理结果,所述处理结果返回。
[0028] 参阅图1。网络管理系统是网络管理的核心设备。网络管理系统用于接收trap报文,并且将接收到的trap报文按照实际的情况转化为告警、告警恢复或通知等,然后网络管理系统的其它相应的模块再对告警、告警恢复或通知等做其它处理。
[0029] 网络设备是整个网络运行的主体,其中网络管理系统对网络设备进行管理。当网络设备发生故障或事件变更时,网络设备会给网络管理系统发送trap报文,trap报文会按照用户预先配置的参数进行发送,发给网络管理系统。
[0030] 网络用于实现网络管理系统、网络设备之间的通讯。网络管理系统、网络设备之间的连接方式不受限制,但是,网络管理系统、网络设备之间通过网络进行连接。
[0031] 参阅图2。S201:网络设备将通知或故障通过trap报文形式发送给网络管理系统的接收器,其中接收器是网络管理系统的接收单元,网络设备支持trap功能,trap可以是v1、v2、v2c、v3中的任意SNMP版本;
[0032] S202:接收器将接收到的trap报文存入网络管理系统的缓存队列中;
[0033] S203:缓存队列接收所述接收器发来的trap报文,网络管理系统的告警处理模块采用先进先出的队列方式来控制缓存队列中的trap报文的进出,若trap报文过多,则缓存队列满,此时缓存队列将不再接收trap报文,直到缓存队列经过一段时间后,又有剩余的缓冲空间时,其才能继续存入trap报文,缓存队列能够有效地防止告警处理速度小于告警接收速度时造成的情况,其增加系统运行可靠性,并起到保护网络管理系统的作用;
[0034] S204-205:告警处理模块把缓存队列中的trap报文按照先进先出的规则逐条取出,其中,告警处理模块判断trap报文是否可被处理,告警处理模块主要检查trap报文本身的属性,如:trap报文是否是完整,是否包含真确的trap发送地址等,若trap报文符合要求,则进入S206,否则,进入差错处理模块进行差错处理;
[0035] S206:告警处理模块查找网络设备信息,告警处理模块可通过IP地址查找各网络设备的相关信息;
[0036] S207:告警处理模块判断网络设备是否是被管理的网络设备,若是,则进入S208;否则,进入差错处理模块进行差错处理;
[0037] S208:告警处理模块获取trapOid,则告警处理模块从trap报文中获取trapoid,其中V2、V2c、V3版本的trapOid定义在trap报文中,故可以直接获取,而V1版本的trapOid需要通过组合某些值的方式才能够获取;
[0038] S209:告警处理模块判断是否能获得告警解释器,若获得告警解释器,将采用获取到的专门的告警解释器解析trap报文,否则,默认的缺省告警解释器解析Trap报文,其中,专门的告警解释器的解释得更加准确,缺省告警解释器是在不能正常处理trap报文时,用于增强代码的健壮性;
[0039] S210:告警解释器对trap报文进行解析并产生告警后,进入S213,其中每个告警解释器与trap报文的trapoid、网络设备的版本、网络设备的类型等有关,并具有相同特称、且解析方法相同的报文归为一类trap报文,同一类trap报文的告警解释器相同;
[0040] S211:缺省解析,则采用缺省告警解释器解析trap报文,也就是采用trap报文原样呈现的缺省解释方法,缺省告警解释器只负责对需要解释的trap报文进行解释;
[0041] S212:差错处理,即对于错误的trap报文和不需要管理的网络设备的trap报文采用差错处理,如可对trap报文采用记录并丢弃的处理方法进行处理;
[0042] S213:返回处理结果213,则将处理结果交给网络管理系统的其他模块继续处理。
[0043] 在步骤S209中,对于告警处理模块通过已有的信息查找告警解释器的具体过程,下面结合图3做进一步详细的描述:
[0044] S2091-S2092:告警处理模块根据trapOid和网络设备信息,查找处理类型的标识,其中处理类型包括网络设备类型和网络设备版本等,对于处理类型相同的网络设备,它们的trap报文的解释方法相同,因此,以对其中一个网络设备的处理做为代表,若是针对该处理类型的网络设备,都进行同样的处理,各网络设备的对应关系可采用XML表格表示,所有相同的处理类型,都处在同一个节点下面,节点的第一个为它们的标识,XML采用哈希表的方式存储,能够快速的定位每个处理类型的标识,其中采用哈希表方式能缩短选择处理器的时间,提高处理效率;
[0045] S2093:告警处理模块将标识与trapOid组成权值,则将标识和trapOid合起来组成一个对象,以后只针对这个对象进行处理,此对象称为告警解释器的权值;
[0046] S2094-S2095:告警处理模块查找权值对应的告警解释器,则从“告警解释器表”中通过权值查找对应的告警解释器,其中,在告警解释器表中,每一个权值对应一个告警解释器,告警处理模块查找时,可通过权值快速找到对应的告警解释器。
[0047] 告警解释器表包括“处理类型-标识”对应表和“权值-告警解释器”对应表。每当添加一种新网络设备时,以权值作为判断,若此网络设备的处理和原来的网络设备的处理是一致时,只需要修改“处理类型-标识”对应表即可,则此时只是在某标识下增加新的处理类型,若新增了告警,则需要修改“权值-告警解释器”对应表,则增加新的权值。
[0048] 其中,告警解释器查找采用权值的方式,从而允许不同类型的网络设备复用,能够有效的减少同类型设备开发的工作量,每个告警解释器相对独立,便于维护,工作流程中的每一个处理步骤都用告警解释器的相关对象进行操作,在对trap报文解析的过程中对trap报文进行验证,有效的避免了错误,并提高了处理的效率。采用基于权值的处理,使得开发工作中增加新网络设备的支持变得非常容易,只需要在指定的权值下增加一个新的设计即可。通过告警、网络设备类型、日志信息等定位出错代码的位置来查找到不通的告警解释器。不同的告警解析器之间不存在影响,一个告警解析器的故障只影响相关的告警。告警解释器的告警检测工具在多个阶段对故障进行检查和定位,能够及早的发现故障。
[0049] 在步骤S210中,告警解释器对trap报文进行解析的具体过程,下面结合图4做进一步详细的描述:
[0050] 告警解释器可以分布式地部署到网络管理系统的不同的模块中,在具体使用时,可根据需要对告警解释器进行不同的部署。
[0051] 告警解释器对trap报文进行解析的具体过程为:
[0052] S2101:告警解释器的告警检测工具检查PDU数据包,其中告警解释器对PDU数据包进行检查,主要是判断PDU数据包是否支持trap格式,另外,可在告警检测工具中加入告警风暴抑制工具,若添加告警风暴抑制工具,则抑制处理效率最高,且可以定位到网络设备;
[0053] S2102:告警检测工具判断PDU数据包是否合格,则告警检测工具根据上一步的检查结果来对PDU数据包进行判断,若合格,则进入S2103,否则,进行差错处理;
[0054] S2103:告警解释器生成trap对象,其中每个告警解释器对应唯一一个trap报文类型,告警解释器通过使用PDU数据包中的信息,将生成trap对象;
[0055] S2104:告警解释器的告警检测工具检查trap对象,检查它是否为正确生成的trap对象,并可以在告警检测工具中加入告警风暴抑制工具,若添加告警风暴抑制工具,则抑制处理效率最高,且可以定位到网络设备和指定的trap报文;
[0056] S2105:告警解释器判断是否为合格的trap报文,则由上一步的检查结果来判断trap对象是否合格,若合格,则进行S2106,否则,进入S2109;
[0057] S2106:告警解释器生成告警,则告警解释器根据读取的trap报文的信息和网络设备的相关信息,生成告警;
[0058] S2107-2108:告警检测工具检查告警,判断是否为合格的告警,若是,进入S21010,否则,进入S2109,另外,可以在告警检测工具中增加告警风暴抑制工具,若添加告警风暴抑制工具,则抑制处理效率最好,且可以定位到网络设备的具体位置和告警原因;
[0059] S2109:进行差错处理,其中,在差错处理时,记录trap报文错误原因、发生位置的情况以及标识错误等,并丢弃此trap报文;
[0060] S21010:返回处理结果,则在正常时,返回生成的告警,在异常时,返回空值,标识此告警已经被丢弃。
[0061] 其中,不同trap报文的告警解释器不同。各告警解释器都有很多接口,这些接口为提供报文解析、数据检测、功能调用等功能的接口,其可允许接入二次开发流程,同时最大可能的保证trap报文处理的正确和高效。
[0062] 参阅图5。告警解释器有多个接口,其中,其留有多个用于扩展的接口,可在多个处理阶段采用多种方式进行扩展调度,调度方式包括多线程方式和顺序方式。在用告警检测工具检查中,可允许加入两种接口调用,并可以进行二次开发功能。
[0063] 调度处理包括以下步骤:
[0064] S501:告警检测工具获取调用属性,则在得到检查正确的数据后,获取需要调用的任务,分别对每一个任务进行处理,读取一个任务属性;
[0065] S502:是否需要采用新的线程调用,则告警检测工具根据任务属性判断是否需要采用新的线程调用,若需要,则进入S503,否则,则进入S504;
[0066] S503:告警检测工具复制数据及创建新线程处理数据,采用创建新线程方式处理数据,从而能够减小二次开发对告警处理速度的影响,此方式可用于处理对trap报文顺序要求较低的功能上,例如,收到网络设备版本试运行提示的告警,或提示用户需要确认网络设备版本为正式版本的告警等,若调用较频繁,二次开发时可加入队列处理,这样既保证高速处理,也能保证处理顺序,并且不会产生过多的线程。
[0067] S504:告警检测工具按照顺序方式来处理数据,采用顺序方式会降低告警处理速度,但采用此方式可以修改数据,并且还可以用于trap报文修正的处理工作等;
[0068] S505:数据返回给网络管理系统的相应模块,在处理一条任务结束后,若还需要处理其他的任务,则重复以上的操作。
[0069] 虽然结合附图描述了本发明的实施方式,但是本领域的技术人员可以在所附权利要求的范围之内作出各种变形或修改,只要不超过本发明的权利要求所描述的保护范围,都应当在本发明的保护范围之内。