基于cep的告警处理系统及方法

文档序号:9396781阅读:449来源:国知局
基于cep的告警处理系统及方法
【技术领域】
[0001 ] 本发明涉及互联网的告警领域,特别涉及一种基于CEP (Complex EventProcessing,复杂事件处理)的告警处理系统及方法。
【背景技术】
[0002]在互联网领域,监控是一个必不可少的环节,监控能做到先于用户发现网站的问题,为故障的恢复争取了时间。随着生产环境的发布越来越频繁,基础架构的变更也越来越密集,可能导致问题发生的地方也越来越多。所以,需要在多个层级来进行完备的监控,包括系统层、应用层和业务层等。当对这些都加上相应的监控,每天能收到海量的告警信息时,又会出现一些问题。
[0003]对于系统层面的监控,一般都是只能做到单一阈值和单一设备的告警,做不到告警按一定的维度做聚合。有时候当取值在阈值上下波动时,做不到自动检测,而且在系统中有时会出现适当的网络波动,或是短暂的资源(例如CPU、存储空间和连接数等)消耗,这时系统告警没有自动恢复的机制。当同时发生很多告警时,做不到告警事件的关联,有些告警发生的时间较长时,会有大量重复的告警等等。这样导致的后果就是系统告警的噪音太多,不利于运维人员发现问题。
[0004]—般来讲,业务层的告警是最后的结果,导致这个结果的原因往往发生在系统层或应用层。但是当业务层发生告警时,无法做到快速地定位问题。
[0005]有时候特定的告警发生时,处理的逻辑其实都是一样的,这样就会导致运维人员每天都做大量的重复劳动。

【发明内容】

[0006]本发明要解决的技术问题是为了克服现有技术中告警之间不关联、告警不能自动恢复以及存在重复告警等,从而导致告警噪音大、无法快速定位告警的缺陷,提供一种噪音小、并且能够快速定位的基于CEP的告警处理系统及方法。
[0007]本发明是通过下述技术方案来解决上述技术问题的:
[0008]—种基于CEP的告警处理方法,其特点在于,包括以下步骤:
[0009]补全每个告警事件中告警对象所属的维度;
[0010]将所述维度分别添加至相应告警事件的属性,以使每个告警事件均形成告警实体;
[0011]按照所述维度对第一时间段内的告警实体做聚合处理,以及在所述第一时间段内同一个维度中的告警对象的个数达到第一阈值时,输出维度报警,并抑制与所述维度报警对应的维度中各告警对象对应的告警事件。
[0012]本方案中,告警对象是指发出告警事件的对象,可以包括计算机或应用程序等。一般来说,告警事件的属性中只包含发出该告警事件的告警对象、该告警事件的发出时间以及该告警事件的类型等信息,本发明通过对告警事件进行告警对象所属维度的补全,并将告警对象所属的维度添加至相应告警事件的属性中以形成告警实体,使得告警事件的属性包含了更多的信息。其中,告警实体是指面向对象的告警事件。容易理解地,当告警对象为计算机时,所属的维度可以为同一个集群、交换机、虚拟机或物理机等,当告警对象为应用程序时,所属的维度可以为同一个计算机或相同的存储路径等。
[0013]本领域技术人员应当理解,告警实体即面向对象的告警事件中,包含多种多样的告警内容,例如当告警对象为计算机时,告警内容可以为CPU使用率为51 %、内存占用空间为1.93G等;当告警对象为应用程序时,告警内容可以为应用程序请求量为1663、缓存数据为80MB等。其中,上述告警内容中的数值即为本方案中的告警值。
[0014]本方案中,对一段时间内的告警实体进行基于维度的聚合处理,并在同一个维度中告警对象的个数达到第一阈值时,输出一个新的告警事件,即维度报警,同时,抑制单个告警对象发出的告警事件,即抑制与维度报警对应的维度中各告警对象对应的告警事件。
[0015]较佳地,所述告警处理方法还包括:实时监控第二时间段内与同一个告警对象对应的告警实体中相同告警内容的告警值,记录各告警值在第二阈值上下波动的次数,以及在波动的次数达到第三阈值时,输出颠簸报警,并抑制与所述各告警值对应的告警事件。
[0016]本方案中,通过在一段时间内对同一个告警对象中相同告警内容的监控,并记录告警值在第一阈值上下波动的次数,实现了告警事件的颠簸检测,具体地,当波动的次数达到第二阈值时,则认为是颠簸,输出颠簸报警,同时抑制发生颠簸的各告警事件,即与所述各告警值对应的告警事件。
[0017]其中,第一时间段、第二时间段、第一阈值、第二阈值以及第三阈值的值可以根据需要设置。
[0018]较佳地,所述告警处理方法还包括:根据所述第一时间段内与所述维度报警对应的维度中告警对象的个数或比例设置所述维度报警的优先级。
[0019]本方案中,可以通过告警对象的个数或比例来设置维度报警的优先级,例如当一个维度中告警对象的个数较多或所占比例较大时,可以将该维度对应的维度报警的优先级设置为较高优先级,当该维度中告警对象的个数较少或所占比例较小时,可以将该维度对应的维度报警的优先级设置为较低优先级。
[0020]较佳地,所述告警处理方法还包括:
[0021]补全每个告警事件中告警对象的下游告警对象;
[0022]将所述下游告警对象分别添加至相应告警事件的属性;
[0023]抑制每个告警事件中告警对象的下游告警对象发出的告警事件。
[0024]容易理解地,除去最上游和最下游告警对象之外,每个告警对象都有上游告警对象和下游告警对象,例如,应用层中告警对象的上游告警对象为业务层中的告警对象,下游告警对象为系统层中的告警对象。本方案中,通过将下游告警对象添加至告警事件的属性中,以及在上游告警对象发出告警事件时抑制下游告警对象发出的告警事件,实现了告警事件之间的关联抑制,从而有效降低了告警的噪音。其中,在补全某个告警对象的下游告警对象时也可以补全该某个对象的上游告警对象,并将其添加至相应告警事件的属性。
[0025]较佳地,所述告警处理方法还包括:对告警事件进行去重或关闭处理。
[0026]本领域技术人员应当理解,可以通过调用修复函数例如act1n函数来对告警事件中的告警内容进行修复处理。本方案中,关闭告警事件是指关闭已经恢复的告警事件,例如当告警内容的告警值已经低于需要告警的临界值时,关闭对应的告警事件;当调用修复函数对告警内容进行修复处理后,关闭已经修复的告警事件,从而减少了无效的告警事件,降低了告警的噪音。
[0027]较佳地,所述告警处理方法还包括:将所述告警事件、所述颠簸报警和所述维度报警输出至一可视化的看板。
[0028]本方案中,可以通过可视化的看板观察到经过处理后的告警事件,以及新出现的颠簸报警和维度报警,方便用户分析和管理。
[0029]本发明还提供一种基于CEP的告警处理系统,其特点在于,包括一信息补全引擎、一属性描述模块以及一第一规则引擎,
[0030]所述信息补全引擎用于补全每个告警事件中告警对象所属的维度,
[0031]所述属性描述模块用于将所述维度分别添加至相应告警事件的属性,以使每个告警事件均形成告警实体;
[0032]所述第一规则引擎用于按照所述维度对第一时间段内的告警实体做聚合处理,以及在所述第一时间段内同一个维度中的告警对象的个数达到第一阈值时,输出维度报警,并抑制与所述维度报警对应的维度中各告警对象对应的告警事件。
[0033]较佳地,所述告警处理系统还包括一第二规则引擎,用于实时监控第二时间段内与同一个告警对象对应的告警实体中相同告警内容的告警值,记录各告警值在第二阈值上下波动的次数,以及在波动的次数达到第三阈值时,输出颠簸报警,并抑制与所述各告警值对应的告警事件。
[0034]本方案中,规则引擎可以随时增加,即告警事件的处理方式可以随时扩充和动态注入,不会影响告警事件的处理框架。
[0035]较佳地,所述第一规则引擎还用于根据所述第一时间段内与所述维度报警对应的维度中告警对象的个数或比例设置所述维度告警的优先级。
[0036]较佳地,所述信息补全引擎还用于补全每个告警事件中告警对象的下游告警对象,所述属性描述模块还用于将所述下游告警对象分别添加至相应告警事件的属性,所述告警处理系统还包括一第三规则引擎,用于抑制每个告警事件中告警对象的下游告警对象发出的告警事件。
[0037]较佳地,所述告警处理系统还包括一告警处理引擎,用于对告警事件进行去重或关闭处理。
[0038]本领域技术人员应当理解,某些告警对象的某些告警事件的处理方式完全相同,因此,可以将处理人员对该些告警事件的处理方式添加至告警处理引擎中,实现告警事件的自动处理。
[0039]本发明中,通过POJO (Plain Ordinary Java Object,简单的Java对象)的方式将维度和下游告警对象添加至告警事件的属性,规则引擎使用espeH —种开源的事件流处理和复杂事件处理引擎)或者drools(—种开源业务规则引擎)实现,告警处理引擎通过DSL(Domain Specific Language,领域特定语言)实现,可视化的看板使用AngularJS ( —种JavaScript框架)实现。
[0040]较佳地,所述告警处理系统还包括一可视化的看板,用于显示所述告警事件、所述颠簸报警和所述维度报警。
[0041]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0042]本发明的积极进步效果在于:与现有技术相比,本发明通过对告警事件信息的补全,实现了告警事件的多维度聚合和关联抑制,同时还能够实现智能升降维度告警的优先级,另外,还实现了告警事件的颠簸检测,大大降低了告警的噪音,实现了告警事件的精确定位,而且处理人员只需要处理有效的告警即可,减少了工作量和排障时间。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1