一种可配置的Trap告警解析处理方法

文档序号:9435888阅读:4240来源:国知局
一种可配置的Trap告警解析处理方法
【技术领域】
[0001]本发明涉及一种Trap告警处理方法。特别是涉及一种可配置的Trap告警解析处理方法。
【背景技术】
[0002]snmp Trap是网管产品采集告警的一种常用的方式。网管产品的告警数据需要包含告警名称,告警类型,告警级别,故障设备,告警定位信息,告警描述,告警时间等信息。Trap告警解析程序的功能就是将2进制的Trap报文解析成文本,然后从中提取各种数据,并对其进行翻译关联,最终形成告警报文。
[0003]Trap报文种类众多,格式多样,跟实际应用的告警报文之间的转化方式种类繁多,因此,开发一个统一的可配置的,普遍适用的解析器是必要的。

【发明内容】

[0004]本发明所要解决的技术问题是,提供一种通过以数据库配置和枚举映射为主体,动态库为补充方式的可配置的Trap告警解析处理方法。
[0005]本发明所采用的技术方案是:一种可配置的Trap告警解析处理方法,通过以数据库配置和枚举映射为主体,动态库为补充的方式,实现可配置的Trap数据包解析,所述数据库配置包含一张Trap定义表,解析程序启动的时候,加载所述的定义表,当收到Trap数据包的时候,首先将2进制的Trap数据包按照协议解析成文本格式,其中包含ip地址,Trap的OID和变量列表,然后,跟据报文的Trap的OID,找到Trap定义表的解析规则,解析变量列表,生成初级告警报文,最后,调用再解析策略,将初级告警报文转化为最终报文,发送到对应的数据处理模块。
[0006]本发明的一种可配置的Trap告警解析处理方法,包括如下步骤:
[0007]I)初始化,并接收Trap数据包,所述的初始化包括:将告警定义表的数据加载到内存,加载所有支持的特殊解析所用到的动态库和函数,形成包含动态库名、函数名和函数指针的动态库链表,加载映射策略到内存中,形成包含映射策略名和映射名值对列表的映射策略链表,以及启动Trap数据包的循环收取功能;
[0008]2)将2进制的Trap数据包解析成文本格式,并根据Trap数据中的Trap的OID查询告警定义表,查询到相应的数据;
[0009]3)根据步骤2)查询出的告警名称、设备标识、告警类型、Trap类型、告警级别、告警对象、告警描述和关键变量字段的配置,从Trap数据包的变量组中提取相应的数据,完成对字段的解析和处理,形成基本告警信息;
[0010]4)根据步骤2)查询出的映射策略字段,检查映射策略字段是否为空,为空,进入特殊解析策略流程,非空,则按照字段包含的策略名称,查找对应的映射策略组,遍历映射策略组,按照映射策略组中的映射关系,对步骤3)形成的基本告警信息进行处理,所有字段处理完成之后,进入特殊解析策略流程;
[0011]5)动态库实现特殊解析策略,特殊解析策略主要针对特殊功能需求,包括某一个变量包含多种信息,需要对字符串进行再解析,某些字段使用数字编码,需要对应的算法来解析这些数字编码,具体运行是:
[0012]根据步骤2)查询出的动态库配置字段,检查动态库配置字段是否为空,为空,这个Trap数据包的解析结束,非空,则根据动态库配置字段的存储的动态库名和函数名,在步骤I)中所述的动态库链表中查找相应的链表节点,调用链表节点中的函数指针指向的函数对上一个步骤的处理结果进行处理,完成特殊解析策略,这个Trap数据包的解析结束,将解析后的数据传到消息服务,返回步骤I)开始下一个Trap数据包的解析。
[0013]步骤I)所述的Trap数据包包含的信息有:数据包的源地址,收包时间,包长,Trap的0ID,变量键值对列表配置告警定义表。
[0014]步骤I)所述的告警定义表包括有:Trap编号、Trap的0ID、告警解析类型、Trap名称、告警名称、设备标识、告警类型、Trap类型、告警级别、告警对象、告警描述、关键变量、映射策略和动态库配置,其中,
[0015]Trap编号:定义Trap的一个流水号
[0016]Trap的OID:告警标识告警的OID
[0017]告警解析类型:0 —需要组合OID生成新的Trap ;1 一不需要组合Trap的OID
[0018]Trap名称:如果告警解析类型为0,此处配置的Trap的变量包含能够进一步区分告警的字段序号
[0019]告警名称:Trap数据包中包含告警名称的变量序号
[0020]设备标识:Trap数据包中包含设备标识的变量序号
[0021]告警类型:Trap数据包中包含告警的类型的变量序号,包括有链路告警,温度告警,端口告警
[0022]Trap类型:Trap数据包中包含Trap类型的变量序号,Trap类型包含:普通告警、恢复告警
[0023]告警级别:Trap数据包中包含告警级别的变量序号,告警级别包含:紧急、主要、次要、警告、不确定
[0024]告警对象:Trap数据包中包含告警对象的变量序号
[0025]告警描述:Trap数据包中包含告警描述的变量序号
[0026]关键变量:Trap数据包中包含关键变量的变量序号
[0027]映射策略:存储映射规则名称,一个映射关系包含若干个名值对,所述的名值对中:名指名称,内容是:字段名+ +原始值,值指数值,内容是:目标值。
[0028]动态库配置:此处填写动态库名和函数名。
[0029]步骤2)所述的查询包括:检查记录的告警解析类型,当告警解析类型为非0,进入变量解析流程;为0,则根据Trap名称字段存储的变量序号,在Trap数据包包含的变量组中找到相应序号的变量值,拼组出新的Trap的0ID,然后根据新的0ID,查找告警定义表,找到这个OID对应的定义表记录,包括:告警名称、设备标识、告警类型、Trap类型、告警级别、告警对象、告警描述、关键变量、映射策略和动态库配置。
[0030]步骤3)所述的对字段的解析和处理,是根据所述告警名称、设备标识、告警类型、Trap类型、告警级别、告警对象、告警描述和关键变量字段的内容来完成的,这些内容包含文字和若干数字#’组合,其中数字对应的是Trap数据包中相应的变量序号,采用替换的方式,将数字#’处的内容替换为Trap数据包中相应序号的变量的值,当所有变量都替换完成,变量解析流程结束,进入枚举替换策略流程。
[0031]步骤4)所述的映射关系,是映射策略字段存储的是映射策略的名字,根据映射策略的名字,查找出映射用的名值对列表,根据这名值对列表,对步骤3)的解析结果进行处理,跟名值对列表中名称的相匹配的字段内容替换成对应的名值对中的数值。
[0032]本发明的一种可配置的Trap告警解析处理方法,用一个主程序实现了对几乎所有厂家的各类型设备Trap的支持。程序开发完成后,只需要使用工程手段,增加Trap定义表的配置,就可以实现对于大部分新类型的Trap的支持。只有对于一些需要特殊方式解析的Trap报文,才需要通过再解析策略来处理,而这也需要很少的开发量。因此,这种设计大大缩减了开发和维护成本。
【附图说明】
[0033]图1是本发明中告警定义表跟Trap数据包之间的关系图;
[0034]图2是本发明可配置的Trap告警解析处理方法流程图。
【具体实施方式】
[0035]下面结合实施例和附图对本发明的一种可配置的Trap告警解析处理方法做出详细说明。
[0036]—种可配置的Trap告警解析处理方法,通过以数据库配置和枚举映射为主体,动态库为补充的方式,实现可配置的Trap数据包解析,所述数据库配置包含一张Trap定义表,它的作用是按照Trap oid来配置解析规则。解析程序启动的时候,加载所述的Trap定义表,当收到Trap数据包的时候,首先将2进制的Trap数据包按照协议,解析成文本格式,其中包含ip地址,Trap的OID和变量列表等几个部分。然后,跟据报文的Trap的OID,找到Trap定义表的解析规则,解析变量列表,生成初级告警报文,最后,调用再解析策略,将初级告警报文转化为最终报文,发送到其他对应的数据处理模块。
[0037]本发明的一种可配置的Trap告警解析处理方法,具体包括如下步骤:
[0038]I)初始化,并接收Trap数据包;
[0039]所述的初始化包括:将告警定义表的数据加载到内存,加载所有支持的特殊解析所用到的动态库和函数,形成包含动态库名、函数名和函数指针的动态库链表,加载映射策略到内存中,形成包含映射策略名和映射名值对列表的映射策略链表,以及启动Trap数据包的循环收取功能;
[0040]Trap编号、Trap的0ID、告警解析类型、Trap名称、告警名称、设备标识、告警类型、Trap类型、告警级别、告警对象、告警描述、关键变量、映射策略和动态库配置,其中,
[0041 ] Trap编号:定义Trap的一个流水号
[0042]Trap的OID:告警标识告警的OID
[0043]告警解析类型:0 —需要组合OID生成新的Trap ;1 一不需要组合Trap的OID
[0044]Trap名称:如果告警解析类型为0,此处配置的Trap的变量包含能够进一步区分告警的字段序号
[0045]告警名称:Trap数据包中包含告警名称的变量序号
[0046]设备标识:Trap数据包中包含设备标识的变量序号
[0047]告警类型:Trap数据包中包含告警的类型的变量序号,包括有链路告警,温度告警,端口告警
[0048]Trap类型:Trap数据包中包含Trap类型的变量序号,Trap类型包含:普通告警、恢复告警
[0049]告警级别:Trap数据包中包含告警级别的变量序号,告警级别包含:紧急、主要、次要、警告、不确定
[0050]告警对象:Trap数据包中包含告警对象的变量序号
[0051]告警描述:Trap数据包
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1