一种告警风暴的处理方法及处理装置的制作方法

文档序号:7721421阅读:156来源:国知局
专利名称:一种告警风暴的处理方法及处理装置的制作方法
技术领域
本发明涉及网络通信领域,具体而言,本发明涉及一种告警风暴的处理方法及处
理装置。
背景技术
告警风暴对任何一个集中管理系统都是应该面对的问题,如果没有有效的处理方 法,告警风暴会给通信网络带来无可挽回的损失,如果处理不好,可能导致系统崩溃或者性 能快速下降,甚至导致系统不可用,因此,网管中的告警风暴一直是个备受关注的问题。目前,告警风暴的主要解决方法有如下几种(1)通过多线程并发来提高告警处理能力通过多线程并发,来进行告警处理,将从网元接收的告警分配给多个线程,每个线 程处理一条告警,多个线程并发操作,从而提高处理能力。(2)通过告警相关性来提高告警处理能力采用告警相关性方法对时间窗内的,或者全部的告警进行分析,告警相关性分析 的规则一般如下a)相同告警相关法相同告警指来自同一告警源,例如本系统中限定为同一 IP地 址的相同类型的告警,其相关性处理方法即是将相应事件窗口内的相同告警压缩为一条告 警,并累计告警次数;b)成对或相反告警相关法相反告警指来自同一告警源的两个告警信息,一个告 警说明该位置上有某种类型的故障,另一个告警说明该故障已经恢复,那么这两个告警即 为相反事件,其相关性处理方法即是在相应时间窗口内将互为相反事件的告警都屏蔽掉;c)同源告警法同源事件指来自同一告警设备,但不同告警类型的多个信息。这 种情况下往往有一条告警为根源告警,其它告警为衍生告警,其相关性处理方法是保留根 源告警,删除衍生告警;d)拓扑关系告警法拓扑关系事件指来自不同且具有拓扑连接关系的告警源,告 警类型相同或不同的多个信息,这种情况下同上面的同源事件处理方法一样,只是处理时 考虑了网络拓扑关系。通过相关性分析后就可以屏蔽或者抑制部分告警,从而提高告警的处理能力,提
高告警吞吐量。现有技术在一定程度上提高了告警的处理能力,但是有如下缺陷并发能显著改善告警处理能力,但是采用并发技术后,数据库操作就成为性能瓶 颈,并发过程中,各个线程彼此独立地将请求传递给数据库,从而在告警风暴过程中,数据 库不得不进行大量小事务的操作,每个告警处理过程是一个事务,每个事务只处理极少量 的数据,告警风暴产生的大量小事务使数据库成为整个应用的瓶颈。每条告警,Oracle系 统就不得不执行至少一个DML语句,瞬间的告警,使得瞬间需要执行大量的DML语句。经过 实际的测试表明,在这种并发情况下,在特定的硬件环境中,告警的处理能力也不过每秒钟几百条,显然不能适应告警风暴的处理要求。告警相关性处理,根据相关性,能够屏蔽、抛弃或者合并部分告警,从而减少了告 警数量,这样就增加了告警处理能力,减少了网络流量,从服务器发给客户端的告警数量减 少,导致网络流量减少,并且给用户以友好的体验,但非常复杂,技术难度大,此外,通常大 量的告警之间没有相关性,则系统在判断是否存在相关性方面又花费了不必要的时间,从 而导致系统更加变慢。因此,有必要提出相应的告警处理技术方案,提高数据库的处理效率,以及在告警 风暴过程中,能有效降低网络流量避免出现网络拥塞。

发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别通过批量告警以及合并告警 信息的方式,在告警风暴过程中,能有效提高数据库处理能力及有效降低网络中的流量。为了达到上述目的,本发明的实施例一方面提出了一种告警风暴的处理方法,包 括以下步骤接收并解析从网元上报的告警消息,解析成告警信息,并放入队列中;批量处理中心统计队列中等待处理的告警信息,当所述告警信息达到预定门限值 时,所述批量处理中心向数据库触发告警处理请求; 所述数据库批量处理达到预定门限值的所述告警信息。本发明实施例另一方面还提出了一种告警风暴的处理装置,包括接收模块以及批 量处理模块,所述接收模块,用于接收从网元上报的告警消息,解析成告警信息,并放入队列 中;所述批量处理模块,用于统计队列中的告警信息,当所述告警信息达到预定门限 值时,触发告警数据库批处理,处理所述告警信息。本发明公开的上述方案,在数据库层面,通过以批量方式代替传统的逐条处理,提 高效率以及信息处理量,根据时间、数量等将告警信息分割成批,交给数据库处理。并且在 告警风暴过程中,批量发送告警信息通知给客户端,即一个消息发送多条告警信息,尽可能 减少和客户端的交互次数,从而缓解网络流量。此外,还可以对消息进行必要的压缩或者该 消息所含多条告警信息的公共信息的提炼,减少数据包的大小,进一步减少网络流量。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中图1为本发明实施例一种告警风暴的处理方法的方法流程图;图2为批量处理中心单线程处理的示意图;图3为批量处理中心多线程处理的示意图;图4为本发明实施例一种告警风暴的处理装置的结构示意图。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。为了实现本发明之目的,本发明公开了一种告警风暴的处理方法,包括以下步骤 接收从网元上报的告警消息,解析成告警信息,并放入队列中;批量处理中心统计队列中等 待处理的告警信息,当所述告警信息达到预定门限值时,所述批量处理中心向数据库触发 告警处理请求;所述数据库批量处理达到预定门限值的所述告警信息。如图1所示,为本发明实施例一种告警风暴的处理方法的方法流程图,包括以下 步骤SlOl 接收从网元上报的告警消息,解析成告警信息,并放入队列中。在步骤SlOl中,首先接收并解析从网元上报的告警消息。在传统的方法中,因为告警消息是一条一条从网元间断地报上来的,受定向思维 影响,传统的解决方案中,数据库对其的处理也是针对每条告警消息作为一个小事务,一条 一条地处理的。但实际上,对于数据库,批量处理更能发挥出其优势,批量处理能够在单位 时间内处理更多的告警消息,具体的实现方案见步骤S102。S102 统计收到的告警信息,当告警信息达到预定门限值时,触发告警数据库批量 处理请求。在步骤S102中,批量处理中心统计队列中等待处理的告警信息,当告警信息达到 预定门限值时,批量处理中心向数据库触发告警处理请求。其中,预定门限值包括时间周期门限值N或队列中等待处理的告警信息总数门 限值M。具体而言,例如,当统计时间超过Nms时,批量处理中心向数据库触发告警处理请 求;或者当队列中等待处理的告警信息的总数超过M条,批量处理中心向数据库触发告警 处理请求。例如,在时间超过5ms或者队列中等待处理的告警信息超过1000个的情况下,批 量处理中心才触发告警的数据库操作,此时,在告警风暴到来时,各个告警接收并发线程能 够在瞬间接收并解析大量告警消息,批量处理中心则能够汇聚多条告警信息,触发数据库 批量执行,可以把这些批量执行的告警信息根据数量分割成若干事务,例如,每200条告警 信息作为一个事务,关键的是将请求以批量的方式提交给了数据库,以批量方式代替了传 统的单条方式,对数据库进行批量的操作,操作后,批量处理中心可将操作结果保存起来。具体而言,批量处理中心以单线程或多线程处理从网元上报的告警消息。例如,如 图2所示,为批量处理中心单线程的工作模式,多个告警信息接收并发线程将从网元接收 的告警消息进行解析,然后存入告警信息队列。在实际的告警系统中,因为有的告警是需要顺序执行的,因此需要保留多个队列, 每个队列中的多个请求是需要顺序执行的,然后批量执行中心的处理线程从某个队列中获 取全部告警的告警信息,以批量的方式进行执行。对不同队列中的告警可以多线程并发执 行,例如,如图3所示,为批量处理中心多线程的工作模式,图中,批量执行中心存在两个批 量执行线程。
根据系统的运行情况,可以改变预定门限值,即可以改变时间阀值和数量阀值,当 时间超过Nms或者队列中等待处理的告警信息超过M个的情况下,才触发告警的数据库操 作,显然N和M可以配置。在上述实施例中,对于其中每个告警信息队列,都可以在时间超过5ms或者队列 中等待处理的告警信息超过1000个的情况下,才触发告警的数据库操作。通过上述方式,当网元上报出现大量的告警消息时,被分割成多个批次的数据库 请求,按照是否需要顺序执行(告警信息队列)、时间、数量进行处理分割成批,从而可以进 行数据库的批量处理。S103 数据库批量处理达到预定门限值的告警信息。在步骤S103中,数据库系统批量处理达到预定门限值的所述告警信息。当告警信息达到预定门限值时,数据库批量处理达到预定门限值的所述告警信 肩、ο采用批量,可以大大提高速度,采用批量之后,以Oracle数据库为例,至少可以从 以下几方面节省时间从连接池获取连接的时间,对于1000条告警批量处理,只要获取一次,原来则要 获取1000次;硬解析或者软解析的时间,对于1000条告警批量处理,只要一次解析,并传入不 同参数,进行批量执行,原来则要解析1000次;引擎切换的时间,采用批量后,减少SQL引擎和其他引擎的切换次数,批量通常只 要一次切换,而原来则常常需要1000次切换,从而大大提高处理速度。以某系统为例数据库不采用批量,共5个数据库线程,在5个线程同时并发的情 况下,每个线程每秒钟能够处理200条,则每秒共可以处理1000条,如果数据库采用批量处 理,也用5个批量处理线程,每个线程每秒钟能够处理1个批次,每个批次为1000条,则每 秒钟共可以处理5 X 1 X 1000 = 5,000条告警,是原来的5倍,处理能力大幅提升。对数据库的操作,具体的实现上,可以有多种方式。例如,可以是一个标准的sql, 也可以是一个存储过程。批量处理的方式,可以有不同的选择,以JDBC处理为例,如果对数据库的操作为 sql,则可以使用ft·印arestatement的批量执行方法executeBatch,如果对数据库的操作 是个存储过程,则可以使用Callablestatement的批量执行方法executeBatch,并使用绑
定变量,将告警对象、定位信息等告警信息作为绑定变量传入。告警的数据库批量操作执行完成后,其处理结果有时包含很多信息,例如,如果业 务需要,处理结果中需要包含每条告警信息的分类(即该告警是告警级别变更、新告警还 是告警清除),此时,还需要将告警信息的分类保存起来,对于支持内存表的数据库系统,其 处理结果可以保存在内存表中,如果数据库支持其他内存结构,也可以保存在其他内存结 构中,否则,就可以保存在临时表中,以尽可能提高处理速度。对数据库批量操作的执行结果,可以由原来的线程取回,也可以由另外的线程再 处理。例如,图3中描述的是由另外的线程再处理。系统根据数据库批量操作的执行结果,将多条告警信息合并成一条告警消息,反 馈给客户端。此外,系统还可以将多条告警的公共信息进行提炼,然后对消息进行压缩,反馈给客户端。也就是,在消息层面,通过合并多条告警信息,发给OMT (客户端)的消息条数将大 量减少。告警风暴到来时,不仅给数据库造成压力,还给网络流量造成压力。在上面的实施 例中,执行了告警数据库批量处理后,其结果已经保存起来,例如保存在内存表中,此时,可 以拿出这个批次处理的多条告警的处理结果,合并成一条告警信息,合并过程中,系统还可 以将多条告警的公共信息进行提炼,例如,如果这些合并的告警都是同一个网元产生的,则 网元标识可以只在告警消息头中说明,不用每个告警的信息中都标注,合并后还可以进行 必要的压缩,进一步减少包的大小,发给客户端,这种方式大幅减少和OMT的交互次数,从 而缓解网络流量方面的压力。此外,当处于非告警风暴时,即系统还未处于告警风暴状态下时,批量处理中心仍 然以传统的方式逐条向数据库触发告警处理请求,这样在告警消息不多的情况下,不必要 等待一定时间或者等到告警信息数量达到阀值,而是告警消息从网元一发到网管服务器, 网管服务器就进行处理,这样可以减少告警消息的延迟,让客户端更快地看到新的告警消 肩、ο这种情况下,需要系统识别是否告警风暴,是否告警风暴可以通过在持续时间T 内从网元上报的单位时间告警消息数量是否大于告警风暴门限K1、K2来定义,例如如果单位时间告警消息数量的速度达到3000条/每秒以上,并且持续5秒钟都达 到这个速度,则认为是告警风暴,如果告警消息上报的速度低于2000条/每秒,并且持续5 秒钟都低于这个速度,则认为是非告警风暴,也就是通过如下方式实现如果当前状态是非告警风暴状态,并且连续5秒高于 3000条/每秒,则翻转为告警风暴状态,如果当前状态是告警风暴状态,并且连续5秒低于 2000条/每秒则翻转为非告警风暴状态。上述告警消息上报速度阀值的门限Κ1、Κ2可以设置,引入门限上限和门限下限的 原因是为了避免抖动。特殊地,可以设置Kl =Κ2,此时,则没有粘滞值。此外,加入5秒钟的连续时间检查,则可以进一步防止抖动,相当于忽略了瞬间高 告警速度或者瞬间的低告警速度,即持续时间低于5秒的瞬间告警速度巨变,这是合理的, 例如,没有必要因为有1秒钟的突发告警而进行状态翻转。在上述实施例中,T为5秒,Kl为3000条/每秒,Κ2为2000条/每秒。显然,单
位时间告警数量和持续时间这些阀值可以配置。本发明公开的上述方法,在数据库层面,通过以批量方式代替传统的逐条处理,提 高效率以及信息处理量,根据时间、数量将告警信息分割成批,交给数据库处理。并且在告 警风暴过程中,批量发送告警信息通知给客户端,即一个消息发送多条告警信息,尽可能减 少和客户端的交互次数,从而缓解网络流量。此外,还可以对消息该消息所含多条告警的公 共信息的提炼,并进行必要的压缩,以减少数据包的大小,进一步减少网络流量。如图4所示,本发明实施例还提出了一种告警风暴的处理装置100,包括接收模块 110、批量处理模块120。其中,接收模块110用于接收和解析从网元上报的告警消息,解析成告警信息,并 放入队列中。CN 102118275 A
说明书
6/7页 批量处理模块120用于统计队列中等待处理的告警信息,当告警信息达到预定门 限值时,批量处理模块120触发并完成告警数据库批处理。批量处理模块120中的预定门限值可以通过网管系统进行配置,预定门限值包 括时间周期门限值N或队列中等待处理的告警信息总数门限值M,当统计时间超过Nms时,批量处理模块120触发并完成告警数据库批处理;或者当 统计告警信息的总数超过M条,批量处理模块120触发并完成告警数据库批处理。批量处理模块120以单线程或多线程处理从网元上报的告警消息。此外,告警风暴处理装置100还包括消息发送模块130,消息发送模块130将多条 告警信息的处理结果,合并成一条告警消息,反馈给客户端,这样大大减少和客户端的交互 次数。此外,消息发送模块130还可以将合并得到的所述告警信息进行公共信息的提 炼,并进行压缩,以减少数据包的大小,反馈给客户端,进一步减少网络中的流量。此外,告警风暴处理装置100还包括判断模块140,在非告警风暴状态下,在持续 时间T内,单位时间从网元上报的告警消息速度大于阀值门限Kl时,判断模块140判断系 统已经进入告警风暴状态;在告警风暴状态下,在持续时间T内,单位时间从网元上报的告警消息速度小于 阀值门限K2时,判断模块140判断系统已经进入非告警风暴状态,其中,Kl大于等于K2 ;当 处于非告警风暴时,批量处理模块120以传统的方式逐条向数据库触发告警处理请求。本发明公开的上述装置,在数据库层面,通过以批量方式代替传统的逐条处理,提 高效率以及信息处理量,根据时间、数量等将告警分割成批,交给数据库处理。并且在告警 风暴过程中,批量发送告警信息通知给客户端,即一个消息发送多条告警信息,尽可能减少 和客户端的交互次数,从而缓解网络流量。此外,还可以对该消息所含多条告警的公共信息 进行提炼,并进行必要的压缩,减少数据包的大小,进一步减少网络流量。本发明公开的方案大大突破了在给定硬件环境下,数据库只能处理几百条告警的 限制,大幅地提高了告警的处理能力,但是,在没有告警风暴的情况下,因为时间超过5ms 或者告警信息的个数超过1000个的情况下,才触发告警的数据库操作,这样如果告警很 少,则也会至少延缓5ms,才能得到处理。因此,在告警很少的情况下,这种延缓是没有必要 的,还可以在此方案的基础上,进一步把系统做成可配置的如果是告警风暴,则采用批量方式,如果不是告警风暴,则采用传统的逐条处理方 式,从而使每条告警消息的处理没有延迟。这种情况下,需要系统识别是否告警风暴,是否告警风暴可以通过在持续时间T 内从网元上报的单位时间告警消息数量是否大于告警风暴门限K1、K2来定义,例如如果单位时间告警消息数量的速度达到3000条/每秒以上,并且持续5秒钟都达 到这个速度,则认为是告警风暴,如果告警消息上报的速度低于2000条/每秒,并且持续5 秒钟都低于这个速度,则认为是非告警风暴。也就是通过如下方式实现如果当前状态是非告警风暴状态,并且连续5秒高于 3000条/每秒,则翻转为告警风暴状态,如果当前状态是告警风暴状态,并且连续5秒低于 2000条/每秒则翻转为非告警风暴状态。上述告警消息上报速度阀值的门限Κ1、Κ2可以设置,引入门限上限和门限下限的
9原因是为了避免抖动。特殊地,可以设置Kl =K2,此时,则没有粘滞值。此外,加入5秒钟的连续时间检查,则可以进一步防止抖动,相当于忽略了瞬间高 告警速度或者瞬间的低告警速度,即持续时间低于5秒的瞬间告警速度巨变,这是合理的, 例如,没有必要因为有1秒钟的突发告警而进行状态翻转。在上述实施例中,T为5秒,Kl为3000条/每秒,Κ2为2000条/每秒。显然,单
位时间告警消息数量和持续时间这些阀值可以配置。本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可 以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中, 该程序在执行时,包括方法实施例的步骤之一或其组合。另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
1.一种告警风暴的处理方法,其特征在于,包括以下步骤接收并解析从网元上报的告警消息,解析成告警信息,并放入队列中;批量处理中心统计队列中等待处理的告警信息,当所述告警信息达到预定门限值时, 所述批量处理中心向数据库触发告警处理请求;所述数据库批量处理达到预定门限值的所述告警信息。
2.如权利要求1所述的告警风暴的处理方法,其特征在于,所述预定门限值包括时间 周期门限值N或队列中等待处理的告警信息总数门限值M,当统计时间超过Nms时,所述批量处理中心向数据库触发告警处理请求;或者当队列 中等待处理的告警信息的总数超过M条,所述批量处理中心向数据库触发告警处理请求。
3.如权利要求2所述的告警风暴的处理方法,其特征在于,所述批量处理中心以单线 程或多线程处理从网元上报的告警消息。
4.如权利要求3所述的告警风暴的处理方法,其特征在于,当处于非告警风暴时,所述 批量处理中心以传统的方式逐条向数据库触发告警处理请求。
5.如权利要求4所述的告警风暴的处理方法,其特征在于,由非告警风暴转变为告警风暴状态包括在非告警风暴状态下,在持续时间T内,单位 时间从网元上报的告警消息速度大于阀值门限Kl ;由告警风暴转变为非告警风暴状态包括在告警风暴状态下,在持续时间T内,单位时 间从网元上报的告警消息速度小于阀值门限K2 ;其中,Kl大于等于K2。
6.如权利要求1所述的告警风暴的处理方法,其特征在于,当所述队列中等待处理的 告警达到预定门限值时,所述数据库批量处理达到预定门限值的所述告警信息,数据库批 量处理完成后,系统根据处理结果,将多条告警信息合并成一条告警消息,反馈给客户端。
7.如权利要求6所述的告警风暴的处理方法,其特征在于,所述系统将多条告警信息 合并成一条告警消息后,对合并得到的消息进行压缩,以减少数据包的大小,并反馈给客户 端。
8.一种告警风暴的处理装置,其特征在于,包括接收模块以及批量处理模块,所述接收模块,用于接收从网元上报的告警消息,解析成告警信息,并放入队列中;所述批量处理模块,用于统计队列中的告警信息,当所述告警信息达到预定门限值时,触发告警数据库批处理,处理所述告警信息。
9.如权利要求8所述的告警风暴的处理装置,其特征在于,所述批量处理模块中的所 述预定门限值可以通过网管系统进行配置,所述预定门限值包括时间周期门限值N和队 列中等待处理的告警信息总数门限值M,当统计时间超过Nms时,所述批量处理模块触发告警数据库批处理所述告警信息;或 者当队列中等待处理的告警信息的总数超过M条,所述批量处理模块触发告警数据库批处 理所述告警信息。
10.如权利要求9所述的告警风暴的处理方法,其特征在于,所述批量处理模块以单线 程或多线程处理从网元上报的告警消息。
11.如权利要求8所述的告警风暴的处理装置,其特征在于,还包括消息发送模块,当 数据库批量操作执行完成之后,所述消息发送模块根据数据库处理结果,将多条告警信息 合并成一条告警消息,反馈给客户端。
12.如权利要求11所述的告警风暴的处理装置,其特征在于,还包括判断模块, 在非告警风暴状态下,在持续时间T内,单位时间从网元上报的告警消息速度大于阀 值门限Kl时,所述判断模块判断系统已经进入告警风暴状态;在告警风暴状态下,在持续时间T内,单位时间从网元上报的告警消息速度小于阀值 门限K2时,所述判断模块判断系统已经进入非告警风暴状态,其中,Kl大于等于K2 ;当处于非告警风暴时,所述批量处理模块以传统的方式逐条向数据库触发告警处理请
全文摘要
本发明的实施例提出了一种告警风暴的处理方法,包括以下步骤接收从网元上报的告警消息,解析成告警信息,并放入队列中;批量处理中心统计队列中等待处理的所述告警信息,当所述告警信息达到预定门限值时,所述批量处理中心向数据库触发告警处理请求;所述数据库批量处理达到预定门限值的所述告警信息。本发明还提出了一种告警风暴的处理装置。本发明公开的上述方案,通过数据库批量处理告警以及合并告警信息的方式,在告警风暴过程中,能有效提高数据库处理能力及有效降低网络中的流量。
文档编号H04L12/26GK102118275SQ20091024419
公开日2011年7月6日 申请日期2009年12月30日 优先权日2009年12月30日
发明者余再跃 申请人:上海大唐移动通信设备有限公司, 大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1