发明内容
鉴于此,本发明提供一种Trap报文的处理方法、管理端和系统,能够适用于对监测对象为复杂对象的Trap报文进行解析,具有解析通用性。
第一方面提供一种Trap报文的处理方法,包括:接收Trap报文;获取Trap报文的变量绑定字段的解析标识;根据解析标识,确定Trap报文的变量绑定字段的解析格式;根据解析格式对Trap报文的变量绑定字段进行解析。
结合第一方面的实现方式,在第一种可能的实施方式中,所述处理方法还包括:建立解析标识与解析格式的对应关系;则根据解析标识,确定Trap报文的变量绑定字段的解析格式包括:根据解析标识以及解析标识与所述解析的对应关系,确定Trap报文的变量绑定字段的解析格式。
结合第一方面的第一种可能的实现方式,在第二种可能的实施方式中,根据解析格式对Trap报文的变量绑定字段进行解析之前,还包括:根据解析格式,确定Trap报文的变量绑定字段的名-值对对应的事件对象的类型;若Trap报文的变量绑定字段的名-值对对应的事件对象为第一类型,则根据解析格式对Trap报文的变量绑定字段进行解析包括:确定变量绑定字段的名-值对的索引类型,并根据变量绑定字段的名-值对的索引类型对应的解析规则以及Trap报文的变量绑定字段的名-值对的解析格式,对变量绑定字段的名-值对进行解析。
结合第一方面的第二种可能的实现方式,在第三种可能的实施方式中,若Trap报文的变量绑定字段的名-值对对应的事件对象为第二类型,则根据解析格式对Trap报文的变量绑定字段进行解析还包括:根据变量绑定字段的名-值对的解析格式对变量绑定字段的名-值对进行解析。
结合第一方面的第三种可能的实现方式,在第四种可能的实施方式中,获取Trap报文的变量绑定字段的解析标识包括:获取Trap报文的版本信息;根据Trap报文的版本信息,从Trap报文中提取Trap报文的变量绑定字段的名-值对的解析标识。
结合第一方面的第四种可能的实现方式,在第五种可能的实施方式中,根据Trap报文的版本信息,从Trap报文中提取Trap报文的变量绑定字段的名-值对的解析标识包括:若Trap报文的版本信息为第二简单网络管理协议版本或第三简单网络管理协议版本,则从Trap报文的变量绑定字段的第二名-值对之后的每个名-值对中提取解析标识。
结合第一方面的第四种可能的实现方式,在第六种可能的实施方式中,根据Trap报文的版本信息,从Trap报文中提取Trap报文的变量绑定字段的名-值对的解析标识还包括:若Trap报文的版本信息为第一简单网络管理协议版本,则从Trap报文的变量绑定字段的每个名-值对中提取解析标识。
结合第一方面的第六种可能的实现方式,在第七种可能的实施方式中,根据解析格式对Trap报文的变量绑定字段进行解析之后,还包括:根据Trap报文的变量绑定字段的名-值对的索引,将解析结果转换成告警语义。
第二方面提供一种管理端,包括:接收模块,用于接收Trap报文;提取模块,用于获取Trap报文的变量绑定字段的解析标识;处理模块,用于根据解析标识,确定Trap报文的变量绑定字段的解析格式;解析模块,用于根据解析格式对Trap报文的变量绑定字段进行解析。
结合第二方面的实现方式,在第一种可能的实施方式中,处理模块还用于建立解析标识与解析格式的对应关系,以根据解析标识以及解析标识与解析格式的对应关系,确定Trap报文的变量绑定字段的解析格式。
结合第二方面的第一种可能的实现方式,在第二种可能的实施方式中,处理模块还用于根据解析格式确定Trap报文的变量绑定字段的名-值对对应的事件对象的类型;若处理模块确定Trap报文的变量绑定字段的名-值对对应的事件对象为第一类型,则解析模块具体用于确定变量绑定字段的名-值对的索引类型,根据变量绑定字段的名-值对的索引类型对应的解析规则以及Trap报文的变量绑定字段的名-值对的解析格式,对变量绑定字段的名-值对进行解析。
结合第二方面的第二种可能的实现方式,在第三种可能的实施方式中,若处理模块确定Trap报文的变量绑定字段的名-值对对应的事件对象为第二类型,则解析模块还用于根据变量绑定字段的名-值对的解析格式对变量绑定字段的名-值对进行解析。
结合第二方面的第三种可能的实现方式,在第四种可能的实施方式中,处理模块还用于获取Trap报文的版本信息;提取模块具体用于根据Trap报文的版本信息,从Trap报文中提取Trap报文的变量绑定字段的名-值对的解析标识。
结合第二方面的第四种可能的实现方式,在第五种可能的实施方式中,若处理模块获取Trap报文的版本信息为第二简单网络管理协议版本或第三简单网络管理协议版本,则提取模块从Trap报文的变量绑定字段的第二名-值对之后的每个名-值对中提取解析标识。
结合第二方面的第四种可能的实现方式,在第六种可能的实施方式中,若处理模块获取Trap报文的版本信息为第一简单网络管理协议版本,则提取模块从Trap报文的变量绑定字段的每个名-值对中提取解析标识。
结合第二方面的第四种可能的实现方式,在第七种可能的实施方式中,管理端还包括转换模块,用于根据Trap报文的变量绑定字段的名-值对的索引,将解析模块的解析结果转换成告警语义。
第三方面提供一种自陷Trap报文的处理系统,包括管理端和代理端,其中:代理端用于向管理端发送Trap报文;管理端用于接收Trap报文,以获取Trap报文的变量绑定字段的解析标识,并根据解析标识确定Trap报文的变量绑定字段的解析格式,进而根据解析格式对Trap报文的变量绑定字段进行解析。
本发明的有益效果是:区别于现有技术的情况,本发明能够从Trap报文的变量绑定字段的名-值对中提取解析标识,并根据所述解析标识,确定所述Trap报文的变量绑定字段的名-值对的解析格式,根据所述解析格式对所述Trap报文的变量绑定字段的名-值对进行解析,即使名-值对的监测对象为复杂对象,也能够获取该名-值对的解析格式进行解析,解决了现有技术无法对复杂对象的Trap报文进行解析的问题,具有解析通用性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,例如各实施例之间技术特征的相互结合,都属于本发明保护的范围。
本发明提供一种Trap报文的处理方法,请参见图3所示的本发明第一实施例的Trap报文的处理方法的流程图。在本实施例中,处理方法用于管理端(管理系统)与代理端之间的告警或通信传输,其中管理端与代理端之间建立有用于告警或通信的通道,该通道可以为管理端与代理端之间自定义的SNMP通道。
需要说明的是,本发明的执行主体为管理端,一个管理端可以只对应一个代理端,也可以对应多个代理端,当然一个代理端可以只对应一个管理端,也可以对应多个管理端。本发明全文以一个管理端对应一个代理端为例进行描述。
如图3所示,在本实施例中所揭示的Trap报文的处理方法包括:
步骤S31:代理端向管理端发送Trap报文。
首先,代理端与管理端之间配置有用于建立告警通道的Trap端口。本实施例优选Trap端口的配置过程如下:
每一个代理端为对应的管理端生成有一个Trap端口,同时该管理端预先存储有该Trap端口的信息,也就是说,每一代理端生成的对应于管理端的Trap端口与对应于其他管理端的Trap端口不同。基于此,对于管理端一侧来说,能够避免多个管理端对应一个Trap端口,从而避免大量的Trap报文拥塞于一个Trap端口。对于代理端一侧来说,可避免多个代理端向对应的管理端发送Trap报文时均通过同一个Trap端口传输,从而可提高Trap报文的传输速度,提升工作效率。
另外,本实施例优选每一管理端可以生成一个映射表,以记载该管理端(的IP地址)与多个Trap端口(的端口号)之间的映射关系。
然后,代理端在发生事件时会自动触发,以将事件信息封装成相应类型的Trap报文,并通过Trap端口将Trap报文上报(发送)至管理端。其中,该事件可以是IT管理员预先在代理端设置的针对性事件,例如代理端的系统崩溃和重新启动、链路失效、分组过载等,并可通过代理端的Mib(management information base,管理信息库)进行编写。
在本实施例中,为进一步加强安全性能,优选代理端将所要传输的携带有重要事件信息的Trap报文进行加密,也就是说,Trap报文以加密的形式进行上报。在具体实现时,对于重要事件信息的判断,本领域技术人员可根据实际需要而定,例如权限验证的信息。
步骤S32:管理端接收所述Trap报文,并获取所述Trap报文的变量绑定字段的解析标识。
管理端的Trap服务在Trap端口一直处于开启状态,以保证对来自代理端上报的Trap报文的第一时间接收。
需要说明的是,管理端在接收到Trap报文的同时(提取解析标识之前)即向IT管理员发出事件告警。另外,本实施例优选管理端预先设置有接收规则,以在接收到多个代理端上报的Trap报文时,根据接收规则按先后顺序从多个Trap报文中提取解析标识。具体而言,将重要性较高的代理端的Trap报文首先上报,而后上报其他非重要代理端的,甚至过滤掉非重要代理端的Trap报文,且不对其进行解析标识的提取,从而保证IT管理员在第一时间收到真正需要的事件信息。当然,本领域技术人员也可以对多条Trap报文而非代理端进行接收规则的设置。
鉴于Trap报文在实际场景中表现为一数字段,本实施例的解析标识实质上是从Trap报文的名-值对的变量名中提取的各个索引具有的相同的一段数字,即每一名-值对的变量名中,每一索引均具有该段数字。
因此,本实施例的解析标识可以是根据SNMPv2、SNMPv2C以及SNMPv3版本的Trap报文的每一名-值对的变量名中表示监测对象的标识的一段数字,在代理端的Mib中定义的字符代码段,也可以是IT管理员预先自定义的其他字符代码段,例如根据SNMPv1版本的Trap报文的每一名-值对的变量名中表示监测对象的标识的一段数字定义的字符代码段。鉴于Trap报文在实际场景中表现为一数字段,并且在每一名-值对的变量名中,监测对象的标识和索引分别对应的一段数字之间没有分界,因此提取解析标识(对应的一段数字)之后剩余的数字段即为索引(对应的一段数字)。
另外,由于Trap报文包括一个或多个名-值对,每一名-值对分别对应表示事件中各个监测对象的具体信息,这些监测对象可以相同或者不相同,因此Trap报文所表示事件的多个监测对象中相同的监测对象的标识,具有相同的解析标识。也就是说,该解析标识仅仅是Trap报文为事件的相同监测对象分配的一个表示符号,其作用类似于检索时使用的关键字,因此解析标识及其对应的一段数字无法用来表示监测对象的任何具体信息。
需要说明的是,本实施例的解析标识是Trap报文所要表示的事件中各个监测对象的标识,而图2所示SNMPv2版本的Trap报文的对象标识符(snmpTrapOID.0,OID)为Trap报文所要表示的事件的标识,两者不相同。
步骤S33:管理端根据Trap报文的变量绑定字段的解析标识,确定所述Trap报文的变量绑定字段的解析格式。
本实施例优选在确定Trap报文的变量绑定字段的解析格式之前,建立Trap报文的变量绑定字段的解析标识与解析格式的对应关系。
由于Trap报文的变量绑定字段的多个名-值对对应的表示多个监测对象,因此可将变量绑定字段描述为objects=obj1,obj2,obj3…,其中1、2、3、…表示每一监测对象。
对于某一监测对象objn,在提取解析标识之后即可将Trap报文中该监测对象对应的名-值对的解析格式确定为objn=oid[name].0或objn=oid[name].[indexName1,type].[indexName2,type].[indexName n,type],其中oid[name]表示该事件的每一监测对象,objn=oid[name].0表示事件的每一监测对象为不含有索引的简单对象,objn=oid[name].[indexName1,type].[indexName2,type].[indexName n,type]表示该事件的每一监测对象为含有n个索引的复杂对象。
在本实施例中,上述Trap报文的解析格式的具体定义可以通过代理端的Mib自动生成,也可以由IT管理员手动编写,例如基于SNMPv2版本的Trap报文做如下表1所示的解析格式的定义。在获取Trap报文的变量绑定字段的解析标识之后,查询Trap报文的变量绑定字段的解析标识与解析格式的如下表1所示的对应关系,即可确定Trap报文的变量绑定字段的解析格式。
需要说明的是,下表1的解析格式中oid、oidName以及objects的具体定义仅供说明举例,在其他实施例中,本领域技术人员可以根据实际需要进行其他具体定义。
表1
参阅表1,oid(.1.3.6.1.2.1.10.166.11.0.2)为Trap报文所表示事件的事件标识,对应于Trap报文的变量绑定字段的第二个名-值对的变量名。oidName(mplsL3VpnVrfUp)为事件的事件名称,对应于Trap报文的变量绑定字段的第二个名-值对的变量值。objects为事件的各个监测对象(对应索引为表1中mplsL3VpnIfConRowStatus、mplsL3VpnVrfName、mplsL3VpnIfConIndex、mplsL3VpnVrfOperStatus以及mplsL3VpnVrfName)的具体信息,其中,上表1所示的索引mplsL3VpnIfConRowStatus、索引mplsL3VpnVrfName和索引mplsL3VpnIfConIndex对应的解析标识为.1.3.6.1.2.1.10.166.11.1.2.1.1.5,表1所示索引mplsL3VpnVrfOperStatus和mplsL3VpnVrf Name对应的解析标识.1.3.6.1.2.1.10.166.11.1.2.1.1.6。也就是说,解析格式对应的解析标识oid为.1.3.6.1.2.1.10.166.11.1.2.1.1.5和.1.3.6.1.2.1.10.166.11.1.2.1.1.6。
本实施例还可将表1中objects部分监测对象的具体定义进行修改,以实现如下表2所示的基于中文(并不限于中文)的解析格式:
表2
参阅表2,管理端监控代理端的事件的事件名称为3层Vpn、Vrf启动,该事件的监测对象objects包括接口状态、VpnVrf的名称、接口索引以及VpnVrf操作状态。
步骤S34:管理端根据所述解析格式对所述Trap报文的变量绑定字段进行解析。
管理端对Trap报文的解析实质上是根据解析格式对其变量绑定字段的各个名-值对的解析。
通过上述,可知本实施例的处理方法是,通过从名-值对的变量名中提取索引(值)具有的相同的一段数字,并将该段数字作为该名-值对的解析标识,从而在解析时均能够从Trap报文的变量绑定字段的各个名-值对的变量名中提取固定的一段数字作为监测对象的标识,进而能够实现根据标识确定名-值对的解析格式,以适用于监测对象为复杂对象的Trap报文的解析,即本实施例的处理方法具有解析通用性。
本发明还提供有第二实施例的Trap报文的处理方法,其在第一实施例的处理方法的基础上进行描述。请参见图4所示,本实施例的Trap报文的处理方法与第一实施例的不同之处在于:
管理端在接收到代理端发送的Trap报文的步骤S41之后,需要进行步骤S42提取Trap报文的版本信息,以根据版本信息从Trap报文中变量绑定字段的相应位置提取所述解析标识。具体而言:
步骤S43:若提取Trap报文的版本信息为SNMPv2、SNMPv2C以及SNMPv3版本,则从Trap报文的变量绑定字段的第二名-值对之后的每一名-值对中提取所述解析标识。
请再次参阅图1,由于SNMPv2、SNMPv2C以及SNMPv3版本的Trap报文中变量绑定字段的第二名-值对包含表示事件的对象标识符snmpTrapOID.0以及第一名-值对包含表示事件的时间信息的产生时间sysUpTime.0,因此本实施例从第三名-值对开始对变量名字段的每一名-值对分别提取对应的解析标识。
步骤S44:根据解析标识确定Trap报文的变量绑定字段的解析格式,SNMPv2、SNMPv2C以及SNMPv3版本的Trap报文的解析格式可参阅上述表1或表2,此处不再赘述。
步骤S45:若提取Trap报文的版本信息为SNMPv1版本,则从Trap报文的变量绑定字段的每一名-值对中提取该名-值对对应的解析标识。
请再次参阅图1和图2,由于SNMPv1版本的Trap报文中变量绑定字段不包含表示事件的对象标识符snmpTrapOID.0以及表示事件的时间信息的产生时间sysUpTime.0,因此本实施例从每一名-值对的变量名中分别提取对应的解析标识。
步骤S46:根据每一名-值对的解析标识确定Trap报文的变量绑定字段的解析格式。
SNMPv1版本的Trap报文中每一名-值对的格式描述可根据表1或表2所示进行相类似的定义。
需要说明的是,本实施例的步骤S43与步骤S45之间没有顺序上的先后联系,可以先执行步骤S43,然后再执行步骤S45;或先执行S45,然后再执行步骤S43,本发明实施例对此并不进行限定。
步骤S47:根据解析格式,确定Trap报文的变量绑定字段对应的事件对象的类型。
本步骤进一步包括判断对Trap报文的变量绑定字段的解析是否结束,其适用于仅具有一个名-值对的SNMPv1版本的Trap报文,以及具有三个名-值对的SNMPv2、SNMPv2C和SNMPv3版本的Trap报文。
步骤S48:若为第二类型,即Trap报文的变量绑定字段对应的事件对象为简单对象,则根据解析格式对Trap报文的变量绑定字段的名-值对进行解析。
事件对象为简单对象,即上表1和表2中objn=oid[name].0,此时解析标识的值为oid[name],由于变量绑定字段的名-值对的变量名中不含有索引值,因此根据上述表1或表2的解析格式的具体定义,即可获取监测对象的具体信息。
步骤S49:若为第一类型,即Trap报文的变量绑定字段对应的事件对象为复杂对象,则确定变量绑定字段的名-值对的索引类型,并根据索引类型对应的解析规则以及Trap报文的变量绑定字段的解析格式,对变量绑定字段的名-值对进行解析。
事件对象为复杂对象,即上表1或表2中objn=oid[name].[indexName1,type].[indexName2,type].[indexName n,type],表示解析标识oid对应索引indexName1、indexName2和indexName n。
索引(上表1所示mplsL3VpnIfConRowStatus、mplsL3VpnVrfName、mplsL3VpnIfConIndex、mplsL3VpnVrfOperStatus以及mplsL3VpnVrfName)类型的判断及其对应的解析规则,可根据实际接收到的Trap报文而定,例如当管理端接收到如下Trap报文时:
.1.3.6.1.2.1.1.3.0:2days,5hours,44minutes,27seconds..
.1.3.6.1.6.3.1.1.4.1.0:.1.3.6.1.2.1.10.166.11.0.2,.1.3.6.1.2.1.10.1
66.11.1.2.1.1.5.5.104.101.108.108.111.118:2,.1.3.6.1.2.1.10.166
.11.1.2.2.1.6.5.104.101.108.108.108.111:2
请参阅表1,提取解析标识oid[name]=.1.3.6.1.2.1.10.166.11.1.2.1.1.5之后,即可获得索引为“.5.104.101.108.108.111”,则索引类型对应的解析规则为TLV(Type Length Value)解析规则,解析结果为hello,其为一种定位参数,在具体监测中可表示代理端上报故障的具体类型。
管理端根据TLV解析规则并结合表1的定义可得到如下解析结果:
oid=mplsL3VpnVrfUp
mplsL3VpnIfConRowStatus.hello.118=2
mplsL3VpnVrfOperStatus.hello=2
结合表1所示的解析格式的定义,可知该Trap报文中第一名-值对为.1.3.6.1.2.1.1.3.0-2days,5hours,44minutes,27seconds,即表示该Trap报文的产生时间,需要说明的是,此产生时间为距离当前时刻的时间段。第二名-值对为.1.3.6.1.6.3.1.1.4.1.0-.1.3.6.1.2.1.10.166.11.0.2,即表示该Trap报文的事件OID名称为.1.3.6.1.2.1.10.166.11.0.2,对应表1中的oid=mplsL3VpnVrfUp。.1.3.6.1.2.1.10.166.11.1.2.1.1.5.5.104.101.108.108.111.118-2为第三名-值对,其中.1.3.6.1.2.1.10.166.11.1.2.1.1.5表示监测对象为mplsL3VpnIfConRowStatus,索引为.5.104.101.108.108.111,.118也是一种定位参数,表示代理端上报故障的具体类型,取值2为附加参数,表示监测对象mplsL3VpnVrfOperStatus的故障情况。进一步地,可知第四名-值对为.1.3.6.1.2.1.10.166.11.1.2.2.1.6.5.104.101.108.108.108.111-2,即.1.3.6.1.2.1.10.166.11.1.2.2.1.6表示监测对象mplsL3VpnVrfOperStatus,索引为.5.104.101.108.108.111,取值2为附加参数,同样表示监测对象mplsL3VpnVrfOperStatus的故障情况。
步骤S50:根据Trap报文的变量绑定字段的名-值对的索引,将解析结果转换成告警语义。
步骤S49得到的解析结果仅仅是对一段数字的含义的描述,IT管理员根据该解析结果无法直观的获知代理端上报的故障的具体类型,例如解析结果mplsL3VpnIfConRowStatus.hello.118=2,仅仅表示监测对象mplsL3VpnIfConRowStatus的故障情况的当前参数为2,而没有说明此时故障是已经被修复还是未被修复。
因此,需要进一步提取定位参数hello、118,以将步骤S49的解析结果转换成如下告警语义:
告警ID=.1.3.6.1.2.1.1.3.0
告警名称=mplsL3VpnVrfUp
mplsL3VpnVrfName=hello(注:定位参数)
mplsL3VpnIfConIndex=118(注:定位参数)
mplsL3VpnIfConRowStatus=2
mplsL3VpnVrfOperStatus=2
IT管理员根据该告警语义就可直观的获知ID为.1.3.6.1.2.1.1.3.0的代理端发生了mplsL3VpnVrfUp事件,并且发生的该事件的监测对象mplsL3VpnIfConRowStatus上报的自陷名称为mplsL3VpnVrfName,该自陷当前的附加参数2表示该自陷对应的故障已被修复,该事件的监测对象mplsL3VpnVrfOperStatus上报的自陷名称为mplsL3VpnIfConIndex,该自陷当前的附加参数2表示该自陷对应的故障已被修复。其中两个附加参数“2”可看作是预先定义的故障情况的一种代号。
本实施例优选针对特定事件,可将告警语义通过邮件、短信、语言等方式发送至相关人员(不仅限于IT管理人员),以帮助相关人员快速收到故障信息。另外,还可以通过Excel汇总特定时间段内产生的事件,以便于相关人员对故障信息进行统计和分析。
基于上述,可知本实施例与上述第一实施例相比,不仅适用于监测对象为复杂对象的Trap报文的解析,具有解析通用性,而且提取定位参数将解析结果的代码对应转换为告警语义,便于IT管理员可以更加直观的获知代理端上报事件中自陷的具体类型。
本发明还提供一种Trap报文的处理系统,请参见图5的本发明第一实施例的Trap报文的处理系统的原理框图。如图5所示,本实施例的处理系统包括管理端300和代理端400,其中管理端300用于对代理端400发送(上报)的Trap报文进行解析,管理端300包括:接收模块310、提取模块320、处理模块330及解析模块340。
其中,接收模块310用于接收代理端400发送或上报的Trap报文。
提取模块320用于从接收模块310接收的Trap报文中提取变量绑定字段的解析标识。在本实施例中,解析标识可以是根据SNMPv2、SNMPv2C以及SNMPv3版本的Trap报文的每一名-值对的变量名中表示监测对象的标识的一段数字,在代理端的Mib中定义的字符代码段,也可以是IT管理员预先自定义的其他字符代码段,例如根据SNMPv1版本的Trap报文的每一名-值对的变量名中表示监测对象的标识的一段数字定义的字符代码段。
处理模块330用于根据提取模块320提取的解析标识确定Trap报文的变量绑定字段的解析格式。具体而言,处理模块330预先建立Trap报文的变量绑定字段的解析标识与解析格式的对应关系,在解析时根据提取模块320获取的Trap报文的变量绑定字段的解析标识,查询Trap报文的变量绑定字段的解析标识与解析格式的对应关系,即可确定Trap报文的变量绑定字段的解析格式。
解析模块340用于根据处理模块330确定的解析标识对Trap报文的变量绑定字段进行解析,具体为对变量绑定字段的名-值对的解析。
本发明还提供第二实施例的Trap报文的处理系统,其在第一实施例的Trap报文的处理系统的基础上进行描述,不同之处在于:
本实施例在接收模块310接收Trap报文后,处理模块330首先获取Trap报文的版本信息,而后提取模块320根据Trap报文的版本信息从Trap报文中提取其变量绑定字段的解析标识。对于解析标识的提取具体而言:
若处理模块330获取Trap报文的版本信息为SNMPv1版本,则提取模块320从Trap报文的变量绑定字段的每一名-值对中分别提取对应的解析标识。
请再次参阅图1和图2,由于SNMPv1版本的Trap报文中变量绑定字段不包含表示事件的对象标识符snmpTrapOID.0以及表示事件的时间信息的产生时间sysUpTime.0,因此提取模块320从每一名-值对的变量名中分别提取对应的解析标识。
若处理模块330获取Trap报文的版本信息为SNMPv2、SNMPv2C以及SNMPv3版本,则提取模块320从Trap报文的变量绑定字段的第二名-值对之后的每一名-值对中提取解析标识。
请再次参阅图1,由于SNMPv2、SNMPv2C以及SNMPv3版本的Trap报文中变量绑定字段的第二名-值对包含表示事件的对象标识符snmpTrapOID.0以及第一名-值对包含表示事件的时间信息的产生时间sysUpTime.0,因此本实施例提取模块320从第三名-值对开始对变量名字段的每一名-值对分别提取对应的解析标识。
相应地,处理模块330用于根据解析标识确定Trap报文的变量绑定字段的解析格式。
处理模块330还用于根据解析格式确定变量绑定字段对应的事件对象的类型,即确定名-值对的监测对象为简单对象或复杂对象。当然,处理模块330还用于判断对Trap报文的名-值对的解析是否结束,其适用于解析仅具有一个名-值对的SNMPv1版本的Trap报文,以及具有三个名-值对的SNMPv2、SNMPv2C和SNMPv3版本的Trap报文。
若处理模块330确定事件对象为第二类型,即该Trap报文的名-值对的监测对象为简单对象,则解析模块340根据处理模块330确定Trap报文的变量绑定字段的解析格式的具体定义对名-值对进行解析。
若处理模块330确定事件对象为第一类型,即该Trap报文的名-值对的监测对象判断为复杂对象,则解析模块340具体用于确定变量绑定字段的名-值对的索引类型,并根据索引类型对应的解析规则以及处理模块330确定Trap报文的变量绑定字段的解析格式,对名-值对进行解析。
转换模块360用于根据Trap报文的变量绑定字段的名-值对的索引,将解析模块340的解析结果转换成告警语义。
本发明的上述两个实施例的管理端300,对应的基于上述实施例的Trap报文的处理方法,各个模块的工作过程可参见上述方法,因此可具有相同的技术效果。
并且应该理解到,所揭露的管理端300描述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统中,或一些特征可以忽略,或不执行。另外,模块相互之间的耦合或通信连接可以是通过一些接口,也可以是电性或其它的形式。
上述各个功能模块作为管理端300的组成部分,可以是或者也可以不是物理框,既可以位于一个地方,也可以分布到多个网络模块上,既可以采用硬件的形式实现,也可以采用软件功能框的形式实现。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。
本发明还提供第三实施例的Trap报文的处理系统,包括如图6所示的管理端500和代理端400,其中管理端500包括接收器510、提取器520、处理器530及解析器540。
其中,接收器510用于接收代理端400发送或上报的Trap报文。
提取器520用于从接收器510接收的Trap报文中提取变量绑定字段的解析标识。在本实施例中,解析标识可以是根据SNMPv2、SNMPv2C以及SNMPv3版本的Trap报文的每一名-值对的变量名中表示监测对象的标识的一段数字,在代理端的Mib中定义的字符代码段,也可以是IT管理员预先自定义的其他字符代码段,例如根据SNMPv1版本的Trap报文的每一名-值对的变量名中表示监测对象的标识的一段数字定义的字符代码段。
处理器530用于根据提取器520提取的解析标识确定Trap报文的变量绑定字段的解析格式。
解析器540用于根据处理器530确定的解析标识对Trap报文的变量绑定字段进行解析,具体为对变量绑定字段的名-值对的解析。
综上所述,本发明的处理方法通过从接收到的Trap报文的名-值对的变量名中提取索引值具有的相同的一段数字,并将该段数字作为该名-值对的解析标识,从而在解析时均能够从Trap报文的变量绑定字段的各个名-值对的变量名中提取固定的一段数字作为监测对象的标识,进而能够实现根据标识确定名-值对的解析格式,以适用于监测对象为复杂对象的Trap报文的解析,具有解析通用性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。