一种网络管理系统中的告警信息入库的处理方法

文档序号:7776814阅读:333来源:国知局
一种网络管理系统中的告警信息入库的处理方法
【专利摘要】本发明公开了一种网络管理系统中的告警信息入库的处理方法,包括如下步骤:S1、将被管理对象的当前告警信息通过hash方式映射到Bloomfilter数据结构;S2、网络管理服务器收到一条Trap报文后,对报文进行解析,并对Bloomfilter进行存在性判定,如果判定该报文携带的告警信息为新告警,则将此告警信息通过hash算法映射到对应的Bloomfilter中进行记录,并将该告警信息存入当前告警数据库;如果判定该报文携带的告警信息已经存在,更新当前告警数据库中的对应记录。本发明对网管系统中告警信息入库流程做出优化,减少了对数据库的操作,提高了系统的运行速度。
【专利说明】一种网络管理系统中的告警信息入库的处理方法
【技术领域】
[0001]本发明涉及一种网络管理系统中的告警信息入库的处理方法,更具体涉及,一种基于Bloomfilter算法的网络管理系统中的告警信息入库的处理方法,属于计算机数据处理【技术领域】。
【背景技术】
[0002]随着社会信息化程度的增加,人们对于网络运行安全可靠的要求越来越高,网络管理系统作为保障网络高效正常运行的应用系统,越来越受到人们的重视。网络管理系统一般采用管理者-代理模型,如图1所示,该模型主要包括数据库1、管理者2、管理者代理3和被管理对象4,他们之间使用SNMP协议交换信息。
[0003]SNMP管理的实质是对管理信息进行相应的读写操作,SNMP协议定义了五种操作命令,分别是 GetRequest、GetNextRequest、SetRequest、GetResponse 和 Trap,而操作的对象是管理信息。为了实现统一管理,将管理信息的集合定义为管理信息库,比如IETF定义的管理信息库MIB-1I,以及各种私有MIB库。MIB库是一个树形结构的信息库,每个管理信息都是管理信息树的一个节点,用唯一的对象标识码(OID)来代表。
[0004]故障管理负责采集、分析和响应Trap报文中所携带的告警信息,是网络管理最重要的功能。被管理对象会周期地检查自身状态,如果发现故障或异常,就通过Trap报文向网管服务器上报告警信息。如果该故障或异常长时间未恢复,就会造成告警信息的重复上报,被称为重复告警。收到告警信息后,服务器会将告警信息存入当前告警数据库中;当故障或异常恢复后,被管理对象会上报告警清除信息,服务器会将之前的告警信息由当前告警数据库移动到历史告警数据库中,用于日后对告警历史数据的查看以及被管理对象历史性能的分析。在这个过程中,服务器收到告警信息后,需要查询当前告警数据库,判断告警信息是新生成的还是重复告警。对于新生成的告警信息,服务器会将其存入当前告警数据库;对于重复告警,服务器会对当前告警数据库中的对应告警信息记录进行更新,将其告警次数加1,并将其最近告警时间变更为最近一条告警信息的告警时间。
[0005]现有技术中,告警信息的入库流程图如图2所示,上述流程中,服务器每收到一条告警信息,都需要查询当前告警数据库,确认这条告警信息是不是重复告警,以此确定要对数据库进行插入操作还是更新操作。随着网管系统中被管理对象数量增多,以及每个被管理对象管理信息的增多,这种处理方式给系统数据库带来很大存取压力,成为系统响应时间的瓶颈,此问题亟待解决。

【发明内容】

[0006]本发明所要解决的技术问题是,克服现有技术的缺点,提供一种网络管理系统中的告警信息入库的处理方法,缓解系统数据库存取压力,加快响应时间。
[0007]为了解决以上技术问题,本发明提供一种网络管理系统中的告警信息入库的处理方法,包括网络管理服务器和与网络管理服务器双向通信连接的被管理对象和当前告警数据库,包括如下步骤:
[0008]S1、将被管理对象的当前告警信息通过hash方式映射到Bloomfilter数据结构,将被管理对象对应的标识ID和Bloomfilter配对后组成Map结构存储到网络管理服务器的内存中;
[0009]S2、网络管理服务器收到一条Trap报文后,对报文进行解析,提取报文中携带的被管理对象ID和告警信息,通过被管理对象ID在内存中提取对应的记录该被管理对象当前告警信息的Bloomfilter,对Bloomfilter进行存在性判定,如果判定该报文携带的告警信息为新告警,则将此告警信息通过hash算法映射到对应的Bloomfilter中进行记录,并将该告警信息存入当前告警数据库;如果判定该报文携带的告警信息已经存在,更新当前告警数据库中的对应记录。
[0010]本发明技术方案的进一步限定为,步骤SI中所述的Bloomfilter数据结构采用相同的长度和哈希函数的数量,确定长度和哈希函数数量的方法为:确定网络管理系统中具有最多告警信息种类的被管理对象A,其告警信息种类的数量为n,网络管理系统可容忍的判错率为ε ,则Bloomfilter数据结构的长度m≥nlog2 (I/ ε ), BloomfiIter数据结构的哈希函数数量k=ln2.(m/n)。
[0011]进一步地,步骤SI中将被管理对象的告警信息存储到内存中的方法为:系统启动时,从数据库中读取所有被管理对象的ID,根据被管理对象的ID在当前告警数据库中查询其所有当前告警信息,并通过hash算法将告警信息映射到此ID对应的Bloomfilter中;遍历所有读取出的被管理对象,得到每个被管理对象ID和其Bloomfilter的对应关系列表,将此列表存储到内存中。
[0012]进一步地,步骤S2中,对Bloomfilter进行存在性判定的方法为:通过hash方式对Trap报文中携带的告警信息进行处理,并将处理后的结果与此被管理对象对应的Bloomfilter中存储的信息进行对比,如果存在,则此告警信息为重复告警,如果不存在,则
此告警信息为新告警。
[0013]进一步地,所述网络管理系统还包括历史告警数据库,当网络管理服务器接收到告警清除报文或者接收到告警清除指令后,会将对应告警信息从当前告警数据库移动到历史告警数据库,同时,删除此被管理对象对应的Bloomfilter中的此条信息。
[0014]进一步地,步骤S2中,如果判定该报文携带的告警信息已经存在,更新当前告警数据库中的对应记录后,如果网络管理服务器接收到当前告警数据库返回结果显示“更新记录条数为0”,则网络管理服务器修正对Bloomfilter进行存在性判定的结果,判定该报文携带的告警信息为新告警,则将该告警信息存入当前告警数据库,并将此告警信息通过hash算法映射到对应的Bloomfilter中进行记录。
[0015]进一步地,步骤SI及S2中所述的Bloomfilter为计数型Bloomfilter。
[0016]本发明的有益效果是:本发明公开的一种网络管理系统中的告警信息入库的处理方法,对网管系统中告警信息入库流程做出优化,将系统中被管理对象ID和记录其当前告警数据的Bloomfilter数据结构存储到内存中,减少了对数据库的操作,提高了系统的运行速度;本发明方法告警信息入库处理流程所需时间基本呈线性增长趋势,模拟在当前告警数据库中查询50条记录,此时需要的时间是53ms,而在系统内存中通过Bloomfilter状态判定50条告警信息是否存在所需时间为8ms,因此,针对一条告警信息,改进的处理流程比原始处理流程用时少0.9ms O【专利附图】

【附图说明】
[0017]图1为现有技术中网络管理系统采用的管理者-代理模型;
[0018]图2为现有技术中告警信息的入库的流程图;
[0019]图3为本发明提供的网络管理系统中的告警信息入库的处理方法的流程图;
[0020]图4为实施例1提供的被管理对象的当前告警信息以Bloomfilter数据结构存储的结构图;
[0021]图5为实施例1模拟的告警信息每分钟到达I个?200个的情况两种处理流程所需处理时间的曲线图。
【具体实施方式】
[0022]实施例1
[0023]本实施例提供的一种网络管理系统中的告警信息入库的处理方法,其流程图如图3所示,包括网络管理服务器和与网络管理服务器双向通信连接的被管理对象和当前告警数据库,包括如下步骤:
[0024]S1、将被管理对象的当前告警信息通过hash方式映射到Bloomfilter数据结构,将被管理对象对应的标识ID和Bloomfilter配对后组成Map结构存储到网络管理服务器的内存中。
[0025]Bloomfilter是用于判定有限集合中某些元素是否存在的一种数据结构。对于网络管理系统中的某个被管理对象,其所能上报的告警信息种类是有限的,由所使用的MIB库决定。因此,可以设计Bloomfilter数据结构记录此被管理对象已经发生的告警信息。通过这种方式,可以将系统中所有被管理对象的当前告警信息以Bloomfilter数据结构存储。
[0026]在Bloomfilter类型选择上,由于网管系统当前告警数据库中的记录是动态增删的,为了保证Bloomfilter中所记录的当前告警信息与当前告警数据库中的信息一致,需要选择具有增删功能的Bloomfilter,本专利选取计数型Bloomfilter (CountingBloomfilter)记录系统中的当前告警信息。
[0027]Bloomfilter的最小长度以及所需哈希函数的最佳数量,依赖于有限集合的大小以及所能接收的判错率。在Bloomfilter长度和哈希函数数量的选择上,有两种可行方案:一种是对系统中所有被管理对象设定相同的Bloomfilter长度和相同数量的哈希函数,另一种是针对不同的被管理对象,根据其可能产生告警种类数量的不同,设定不同的Bloomfilter长度和不同数量的哈希函数。前一种方式实现简单,只需要找出系统中具有最多告警种类的被管理对象,并以其告警种类作为标准,决定Bloomfilter长度和哈希函数的数量,但是这种方式的信息冗余度较高;第二种方式针对每一个被管理对象告警信息种类数量不同,设定不同的Bloomfilter长度和不同数量的哈希函数,这种方式可以最大限度地压缩告警信息,但是需要对每一个被管理对象进行计算,过程繁琐,且不利于Bloomfilter的统一存储。基于以上考虑,本实施例采用第一种方式,对所有被管理对象的Bloomfilter采用相同长度及相同数量的哈希函数。[0028]所述的Bloomfilter数据结构采用相同的长度和哈希函数的数量,确定长度和哈希函数数量的方法为:确定网络管理系统中具有最多告警信息种类的被管理对象A,其告警信息种类的数量为n,网络管理系统可容忍的判错率为ε,则Bloomfilter数据结构的长度m≥nlog2 (I/ ε ),Bloomfilter数据结构的哈希函数数量k=ln2.(m/n)。
[0029]本实施例中的操作方法为:假设在一个网络管理系统中,被管理对象A具有最多的告警种类,其告警信息种类数量为n,系统可容忍的判错率为ε,则Bloomfilter长度m必须满足m≥nlog2 (I/ ε ),之后可以据此计算出最佳的哈希函数数量为k=ln2.(m/n),这样就确定了 Bloomfilter结构。将每个被管理对象的所有当前告警信息通过hash方式映射到Bloomfilter之后,将此被管理对象的(ID,Bloomfilter)对组成Map结构存储到内存中,示意图如图4所示。
[0030]S2、网络管理服务器收到一条Trap报文后,对报文进行解析,提取报文中携带的被管理对象ID和告警信息,通过被管理对象ID在内存中提取对应的记录该被管理对象当前告警信息的Bloomfilter,对Bloomfilter进行存在性判定,如果判定该报文携带的告警信息为新告警,则将此告警信息通过hash算法映射到对应的Bloomfilter中进行记录,并将该告警信息存入当前告警数据库;如果判定该报文携带的告警信息已经存在,更新当前告警数据库中的对应记录。
[0031]上述步骤的具体实现方式为:
[0032](I)网管系统初始化时同步当前告警信息到Bloomfilter中
[0033]系统启动时,从数据库中读取所有被管理对象的ID,根据被管理对象的ID在当前告警数据库中查询其所有当前告警信息0ID,并通过hash算法将告警信息映射到此ID对应的Bloomfilter中;遍历所有读取出的被管理对象,得到每个被管理对象ID和其Bloomfilter的对应关系列表,将此列表存储到内存中。
[0034]例如,本实施例中选取Bloomfilter长度为11,哈希函数数量为2,某个被管理对象A在数据库中的ID为’ 01’,其所对应的当前告警信息有三条,告警OID分别为.1.3? 6.1.2.1.1.5.1、.1.3.6.1.2.1.1.6.1、.1.3.6.1.2.1.1.7.1,经过 hash 算法,第一条告警信息映射为[10000010000],第二条告警信息映射为[10001010000],第三条告警信息映射为[10001010010],由于其中第I位、第5位、第7位被多次映射为1,因此三个hash结果叠加后,最后得到此被管理对象对应的计数型Bloomfilter结果为[10001010010][30002030010],其中前一个数组代表Bloomfilter映射之后的结果,后一个数组代表某个位被置I几次。这样就得到被管理对象A对应的Bloomfilter,如表1所示。
[0035]表1:被管理对象A对应的Bloomfilter
[0036]
【权利要求】
1.一种网络管理系统中的告警信息入库的处理方法,包括网络管理服务器和与网络管理服务器双向通信连接的被管理对象和当前告警数据库,其特征在于,包括如下步骤: S1、将被管理对象的当前告警信息通过hash方式映射到Bloomfilter数据结构,将被管理对象对应的标识ID和Bloomfilter配对后组成Map结构存储到网络管理服务器的内存中; S2、网络管理服务器收到一条Trap报文后,对报文进行解析,提取报文中携带的被管理对象ID和告警信息,通过被管理对象ID在内存中提取对应的记录该被管理对象当前告警信息的Bloomfilter,对Bloomfilter进行存在性判定,如果判定该报文携带的告警信息为新告警,则将此告警信息通过hash算法映射到对应的Bloomfilter中进行记录,并将该告警信息存入当前告警数据库;如果判定该报文携带的告警信息已经存在,更新当前告警数据库中的对应记录。
2.根据权利要求1所述的一种网络管理系统中的告警信息入库的处理方法,其特征在于,步骤SI中所述的Bloomfilter数据结构采用相同的长度和哈希函数的数量,确定长度和哈希函数数量的方法为:确定网络管理系统中具有最多告警信息种类的被管理对象A,其告警信息种类的数量为n,网络管理系统可容忍的判错率为ε,则Bloomfilter数据结构的长度m≥nlog2 (I/ ε ),Bloomfilter数据结构的哈希函数数量k=ln2.(m/n)。
3.根据权利要求1所述的一种网络管理系统中的告警信息入库的处理方法,其特征在于,步骤SI中将被管理对象的告警信息存储到内存中的方法为:系统启动时,从数据库中读取所有被管理对象的ID,根据被管理对象的ID在当前告警数据库中查询其所有当前告警信息,并通过hash算法将告警信息映射到此ID对应的Bloomfilter中;遍历所有读取出的被管理对象,得到每个被管理对象ID和其Bloomfilter的对应关系列表,将此列表存储到内存中。
4.根据权利要求1所述的一种网络管理系统中的告警信息入库的处理方法,其特征在于,步骤S2中,对Bloomfilter进行存在性判定的方法为:通过hash方式对Trap报文中携带的告警信息进行处理,并将处理后的结果与此被管理对象对应的Bloomfilter中存储的信息进行对比,如果存在,则此告警信息为重复告警,如果不存在,则此告警信息为新告警。
5.根据权利要求1所述的一种网络管理系统中的告警信息入库的处理方法,其特征在于,所述网络管理系统还包括历史告警数据库,当网络管理服务器接收到告警清除报文或者接收到告警清除指令后,会将对应告警信息从当前告警数据库移动到历史告警数据库,同时,删除此被管理对象对应的Bloomfilter中的此条信息。
6.根据权利要求1所述的一种网络管理系统中的告警信息入库的处理方法,其特征在于,步骤S2中,如果判定该报文携带的告警信息已经存在,更新当前告警数据库中的对应记录后,如果网络管理服务器接收到当前告警数据库返回结果显示“更新记录条数为0”,则网络管理服务器修正对Bloomfilter进行存在性判定的结果,判定该报文携带的告警信息为新告警,则将该告警信息存入当前告警数据库,并将此告警信息通过hash算法映射到对应的Bloomfilter中进行记录。
7.根据权利要求1所述的一种网络管理系统中的告警信息入库的处理方法,其特征在于,步骤SI及S2中所述的Bloomfilter为计数型Bloomfilter。
【文档编号】H04L12/24GK103595569SQ201310578377
【公开日】2014年2月19日 申请日期:2013年11月15日 优先权日:2013年11月15日
【发明者】班志远 申请人:南京云川信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1