基于简单管理网络协议识别所有厂商Trap及处理的方法与流程

文档序号:11697465阅读:307来源:国知局
基于简单管理网络协议识别所有厂商Trap及处理的方法与流程
本发明属于网络通信技术领域,具体涉及一种基于简单网络管理协议(SimpleNetworkManagementProtocol,SNMP)识别所有厂商Trap及处理的方法。

背景技术:
随着计算机网络技术的不断发展,设备厂商越来越多。想要很好的兼容所有厂商的设备变得非常困难。如何有效的提高Trap告警的识别率一个非常大的难题。Trap报文的有效识别能够大大提高网络设备的可利用率、性能、服务质量、故障排查等,从而帮助网络管理人员减轻承重的负担。目前各个厂商开发的网络管理系统的Trap处理主要是针对自身厂商设备上报的Trap进行告警和通过管理信息库(ManagementInformationBase,MIB)导入Trap定义功能,对第三方厂商基本不能支持或不能有效的识别出Trap报文的真正含义。Trap识别功能主要用于在运营商网络、企业学校网络等不同型号设备上的快速识别告警。现有技术中,与Trap识别处理相关的技术主要集中在对已知Trap的处理逻辑。申请号为200810217071.1的中国专利《一种基于简单网络管理协议的trap处理方法》主要公开了网络管理软件收到Trap报文后对报文的解析、差错处理等方法。申请号为200610160737.5的中国专利《一种基于简单网络管理协议的Trap确认方法》公开的Trap确认方法中,SNMP代理在Trap消息的团体名中加入是否需要确认的Trap关键字,SNMP管理者收到消息检查Trap是否包含确认Trap关键字,如果是,则设置SNMP上管理信息变量值。申请号为201010591676.4的中国专利《一种基于SNMP的Trap处理的方法》公开的Trap处理方法中,检测到告警事件后向SNMP网管发送Trap消息,根据Trap中携带的告警事件发生位置,SNMP网管将内置的告警信息与Trap消息中携带的告警信息进行对比,如果一致则验证Trap消息有效,并进行告警。然而,现有的网管中Trap识别告警功能非常有限,无法识别第三方的网络设备,还可能无法识别哪个设备内部组件发出Trap告警,如无法识别交换机内部的端口关闭或停止的告警是从哪个端口发出的。对于导入的Mib库识别,识别起来非常不直观,用户不能直接看出设备哪里出了问题。如果针对每个厂商的产品都安装一个网络管理软件,则会浪费更多的资源,用户平时管理设备也需要在多个系统中查看,局限性很大。若各个厂商定制自己的私有Mib库,识别通用性是一个很大的难题。

技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于简单网络管理协议识别所有厂商Trap及处理的方法,根据自定义解析模版对Trap原始报文上报的每个参数值进行对比判断,从而进行告警、或者取消已上报的告警,并可以自定义告警内容。为实现上述目的及其他相关目的,本发明提供一种基于简单网络管理协议识别所有厂商Trap及处理的方法,其中,设定一个Trap原始报文的自定义解析模板,设定一个Trap原始报文存储队列和一个Trap告警入库存储队列,所述方法至少包括以下步骤:步骤S1、接收网络设备上报的Trap原始报文,并将所述Trap原始报文装入Trap原始报文存储队列中;步骤S2、从Trap原始报文存储队列中同步读取Trap原始报文,并将Trap原始报文的参数与自定义解析模板中的参数进行对比判断;如果Trap原始报文的参数与自定义解析模版中的参数匹配,则根据根据自定义解析模板将读取的Trap原始报文解析成用户定义的告警信息,并将解析好的告警信息加入Trap告警入库存储队列中;步骤S3、将Trap告警信息从Trap告警入库存储队列中取出,判断是清除告警还是产生告警;如果是清除告警则更新Trap告警入库存储队列,如果是产生告警则新产生一条告警插入Trap告警入库存储队列中。根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:Trap原始报文存储队列为先进先出队列形式。根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:所述自定义解析模板包括规则名、规则描述、属性类型、特定类型、企业Oid、告警等级、告警消息、唯一标识属性列、匹配告警条件、清除告警条件。根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:步骤S1和步骤S2具体包括以下步骤:步骤S101、网络设备以Trap报文形式将故障发给网络管理系统;步骤S102、把Trap报文装入Trap原始报文存储队列中;步骤S103、将Trap原始报文存储队列中的Trap原始报文取出;步骤S104、根据取出的Trap原始报文信息查找网络设备库中是否存在该网络设备,若存在则进入步骤S105、否则直接结束,Trap原始报文丢弃;步骤S105、获取自定义解析模板,将自定义解析模板与接收的Trap原始报文进行匹配,判断是否能解析Trap原始报文,若能解析则进入步骤S106;不能解析则进入步骤S107;步骤S106、Trap解析器将Trap原始报文解析成用户自定义的告警信息,将解析好的告警信息加入Trap告警入库存储队列中;步骤S107、将Trap原始报文存入Trap原始报文存储队列。进一步地,根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:步骤S101中,网络设备必须支持简单网络管理协议,且网络设备的Trap服务器地址为网络管理服务器地址。根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:步骤S2中解析Trap原始报文包括以下步骤:步骤S201,将获取的Trap原始报文的唯一标识属性列与自定义解析模板参数进行匹配,循环判断每个模板是否可用,若可用则进入步骤S202,若不可用则使用下一个自定义解析模板进行匹配步骤S201;步骤S202,将Trap原始报文信息与自定义解析模板的清除告警条件进行匹配,如果满足清除告警条件则进入步骤S203,否则进入步骤S204;步骤S203,将Trap原始报文解析成告警信息,并将其加入Trap告警入库存储队列中,进入步骤S205;步骤S204,如果Trap原始报文与清除告警条件不能够匹配,则判断是否匹配告警条件,如果匹配告警条件则进如步骤S203,如果不匹配告警条件,则直接进入步骤S205;步骤S205、将Trap原始报文存入Trap原始报文存储队列。进一步地,根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:步骤S202中,Trap报文包括版本1和版本2c/3,针对Trap版本1,清除告警条件包括企业Oid、属性类型、特定类型和多个绑定变量;针对Trap版本2c/3,清除告警条件只包括企业Oid和多个绑定变量。根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:步骤S3具体包括以下步骤:步骤S301、将告警信息从Trap告警入库存储队列中取出;步骤S302、对取出的告警信息进行判断,如果是非Trap告警,则不进行处理,如果是Trap告警,则进入步骤S303;步骤S303、查找未清除的告警信息,并判断未清除的告警信息是否在Trap告警入库存储队列中,如果存在Trap告警入库存储队列中,则进入步骤S304;如果不存在Trap告警入库存储队列中,则进入步骤S305;步骤S304、查看告警信息中的告警标识是否被自定义解析模板解析为清除告警,如果解析为清除告警则进入步骤S306;如果不是解析为清除告警,则进入步骤S307;步骤S305、查看告警信息中的告警标识是否被自定义解析模板解析为告警,如果是则进入步骤S308;如果不是解析为告警则流程结束;步骤S306、设置告警清除人和清除时间,并更新当前的Trap告警入库存储队列,流程结束;步骤S307、设置告警次数,更新最近一次告警时间,并更新当前的Trap告警入库存储队列,流程结束;步骤S308、在Trap告警入库存储队列中插入告警信息及Trap原始报文的唯一标识属性列,流程结束。进一步地,根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:步骤S301中,按IP地址、MAC地址、告警等级、告警类型、唯一标识属性列查找未清除的告警信息。更进一步地,根据上述的基于简单网络管理协议识别所有厂商Trap及处理的方法,其中:其中所述唯一标识属性列为用户自定义,用于区别同一个设备的不同组件可能存在的告警。如上所述,本发明的基于简单网络管理协议识别所有厂商Trap及处理的方法,具有以下有益效果:(1)本发明包括自定义解析模板,用户手动输入判断条件即可识别任何厂商的Trap报文,从而提高网络设备的可利用率、性能、服务质量、故障排查能力等,降低管理员管理设备告警的承重负担;(2)将Trap原始报文、Trap告警信息以队列形式缓存起来,通过多线程抢占执行,具有稳定、高效的优点;(3)能够识别第三方厂商的Trap消息,可识别设备内部(如端口)组件发出的Trap报文,有效降低了网络的维护难度和维护成本。附图说明图1显示为本发明的基于简单网络管理协议识别所有厂商Trap及处理的方法的核心流程图;图2显示为本发明中Trap解析的流程图;图3显示为本发明中Trap告警入库的流程图。具体实施方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本发明的基于简单网络管理协议识别所有厂商Trap及处理的方法主要通过Trap接收器、Trap解析器、Trap告警处理器等模块来实现,从而使得Trap原始报文的接收、对报文的解析、解析完后的Trap告警处理分工明确,在告警的实时性上有明显提升。其中,Trap接收器打开监听端口,接收设备发出的Trap原始报文信息。Trap解析器从缓冲队列中取出Trap原始报文,并将接收到的Trap原始报文根据自定义解析模板解析成用户定义的告警信息。Trap告警处理器对解析成功的告警信息进行告警入库操作。特别地,本发明提供了两个存储队列和一种自定义解析模板。其中,两个存储队列分别是Trap原始报文存储队列,另一个是Trap告警入库存储队列。参照表1,该自定义解析模板包括规则名、规则描述、属性类型、特定类型、企业Oid、告警等级、告警消息、唯一标识属性列、匹配告警条件、清除告警条件等。在进行Trap处理时,根据>、<、=、!=、包含、不包含等判断条件,将接收的Trap原始报文与自定义解析模板中的参数进行对比,若满足自定义解析模板的条件则产生告警或清除告警。自定义解析模板的条件都由用户根据设备实际情况填写。本发明中,Trap报文包括版本1和版本2c/3两种,自定义解析模板对两种版本的Trap报文分别进行处理。对于Trap版本1中,自定义解析模板包括特定类型、属性类型以及企业对象标识(Objectidentifier,Oid);对于Trap版本2c/3,自定义解析模版中不包括特定类型、属性类型,规定在匹配条件或清除条件的第二个绑定变量中设置TrapOid。其中,唯一标识属性列由属性类型、特定类型、绑定变量条件中的一个或多个组成,用于使用户唯一确定一个告警。将新接收的Trap原始报文与已入库的告警信息进行对比,根据IP地址、MAC地址以及自定义解析模板中定义的唯一标识属性,判断新接收的Trap原始报文是否存在于Trap告警入库存储队列中。其中,匹配告警条件由属性类型、特定类型、企业Oid和一个或多个绑定变量组成。匹配条件与原始Trap报文进行对比,若满足匹配条件则产生告警。清除告警条件由属性类型、特定类型、企业Oid和一个或多个绑定变量组成。清除条件与原始Trap报文进行对比,若满足清除条件则清除告警。表1自定义解析模版参数说明表本发明的基于简单网络管理协议识别所有厂商Trap及处理的方法的主要处理步骤如下:Trap接收器通过多线程方式接收网络设备上报的Trap原始报文,并将其装入Trap原始报文存储队列中;Trap解析器通过多线程方式从Trap原始报文存储队列中同步读取Trap原始报文,并将Trap原始报文的报文版本、绑定变量、特定类型、属性类型与自定义解析模板中的参数进行对比判断;如果与用户定义的自定义解析模版中的参数匹配,则根据自定义解析模板产生告警或产生清除已有告警,并将生成的告警加入Trap告警入库存储队列中。Trap告警处理器通过多线程方式将Trap告警信息从Trap告警入库存储队列中取出,然后在Trap告警入库存储队列中查看是否有相同告警和当前的告警标识,根据当前的告警标识判断是清除告警还是产生告警;如果是清除告警则更新告警信息库;如果是产生告警则新产生一条告警插入告警信息库中。具体地,参阅图1,本发明的基于简单网络管理协议识别所有厂商Trap及处理的方法的核心步骤如下:步骤S101、网络设备以Trap报文形式将故障发给网络管理系统的Trap接收器,网络设备必须支持SNMP,并且配置网络设备的Trap服务器地址为网络管理服务器地址;步骤S102、Trap接收器把Trap报文放入Trap原始报文存储队列中;步骤S103、Trap原始报文存储队列为先进先出队列形式,Trap解析器通过多线程方式将Trap原始报文存储队列中的Trap原始报文取出;步骤S104、根据取出的Trap原始报文信息查找网络设备库中是否存在该网络设备,符合条件则进入步骤S105、否则直接结束,Trap原始报文丢弃;步骤S105、获取自定义解析模板,将自定义解析模板与接收的Trap原始报文进行匹配,判断是否能解析Trap原始报文,若能解析则进入步骤S106;不能解析则将Trap原始报文存入Trap原始报文存储队列中,以方面查找分析等,进入步骤S107;步骤S106、Trap解析器将Trap原始报文解析成用户自定义的告警信息,将解析好的告警信息加入Trap告警入库存储队列中;步骤S107、将Trap原始报文存入Trap原始报文存储队列。其中,Trap原始报文接收利用SNMP4J开源包,默认打开162端口监听,网络设备发送到网络管理系统的Trap原始报文,可控制接收线程池大小。参照图2,解析Trap原始报文的具体步骤如下:步骤S201、将获取的Trap原始报文的唯一标识属性列与自定义解析模板列表进行匹配,循环判断每个模板是否可用,若可用则进入步骤S202,若不可用则使用下一个自定义解析模板进行匹配步骤S201;步骤S202、将Trap原始报文信息与自定义解析模板的清除告警条件进行匹配,针对TrapV1版本,清除告警条件包括企业Oid、属性类型、特定类型、多个绑定变量;企业Oid只能使用等于、包含等条件与自定义解析模板的自定义值进行匹配,其余的变量可用大于、小于、等于、包含等条件与自定义解析模板的自定义值进行匹配;针对TrapV2c/3版本,清除告警条件只包括企业Oid,多个绑定变量,判断条件与V1类似。如果满足清除告警条件则进入步骤S203,否则进入步骤S204;步骤S203、将Trap原始报文解析成告警信息,并将其加入Trap告警入库存储队列中,进入步骤S205,其中,可根据Trap告警入库存储队列中告警信息的数量,自动变换取出告警信息的处理线程的个数;步骤S204、如果Trap原始报文与清除告警条件不能够匹配,则判断是否匹配告警条件,如果匹配告警条件则进如步骤S203,如果不匹配告警条件,则直接进入步骤S205;步骤S205、将Trap原始报文存入Trap原始报文存储队列。参阅图3,Trap告警器将解析成功的Trap原始报文加入Trap告警入库存储队列,Trap告警入库的步骤如下:步骤S301、将告警信息从Trap告警入库存储队列中取出;步骤S302、对取出的告警信息进行判断,按告警信息的来源判断网络管理系统中可能存在的告警来源,如主动轮询、Syslog告警等,对于非Trap告警,Trap告警处理器不进行处理,如果是Trap告警,则进入步骤S303;步骤S303、按IP地址、MAC地址、告警等级、告警类型、唯一标识属性列查找未清除的告警信息,其中唯一标识属性列为用户自定义,可将属性类型、特殊类型、TrapOid、多个绑定变量作为唯一标识,目的在于区别同一个设备的不同组件可能存在的告警,如一个设备的端口告警,可能需要绑定变量作为唯一标识,假如选择第三个绑定变量作为端口的唯一标识,就将现在Trap的报文的第三个绑定变量值与已存入的Trap告警入库存储队列进行对比,查看是否存在未清除的告警信息。查看之后判断未清除的告警信息是否在Trap告警入库存储队列中,如果存在Trap告警入库存储队列中,则进入步骤S304;如果不存在Trap告警入库存储队列中,则进入步骤S305;步骤S304、查看告警标识是否被自定义解析模板解析为清除告警,如果解析为清除告警则进入步骤S306;如果不是解析为清除告警,则进入步骤S307;步骤S305、查看告警标识是否被自定义解析模板解析为告警,如果是则进入步骤S308;如果不是解析为告警则流程结束;步骤S306、设置告警清除人和清除时间,并更新当前的告警记录,其中,清除人为系统自动清除,流程结束;步骤S307、设置告警次数,更新最近一次告警时间,并更新当前的告警记录,流程结束;步骤S308、在Trap告警入库存储队列中插入告警信息及Trap原始报文的唯一标识属性列,以便其他告警用唯一标识属性列与Trap原始报文进行对比,流程结束。综上所述,本发明的基于简单网络管理协议识别所有厂商Trap及处理的方法提供了两个存储队列和一种自定义解析模板,通过对Trap原始报文的唯一标识属性列进行判断,实现对第三方厂商设备的Trap的解析,可高效地进行Trap原始报文的接收、解析、入库。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1