一种实时告警统计方法及系统
技术领域
本发明属于实时监控系统技术领域,特别涉及一种实时告警统计方法及系统。
背景技术
随着实时监控系统的规模不断扩大,所接入和处理的数据日益增多,从而导致系统产生的告警数量变得越来越大。如果按照传统的告警监视方式,容易造成告警信息频繁刷屏,重要告警信息被淹没,监控人员无法从大量的实时告警中发现重要信息。
发明内容
本发明的目的,在于提供一种实时告警统计方法及系统,其可实时统计满足统计规则的告警在日、周、月三个时间段发生的次数,根据告警发生次数的情况,监控人员可以直观地看到告警的严重程度和分布范围,掌握系统的整体状态。
为了达成上述目的,本发明的解决方案是:
一种实时告警统计方法,包括如下步骤:
步骤1,接收到告警后,首先在实时库中进行检索,检索是否存在满足统计规则的告警记录,如果存在,则记下统计次数并将该告警记录删除,然后插入最新的告警并将统计次数加1,否则转步骤2;
步骤2,在历史库中进行检索,分别检索出满足统计规则的告警在日、周、月三个时间段发生的次数,然后在实时库中插入该最新的告警,并将检索出的次数分别加1。
上述步骤1中,实时库对告警记录以循环表的方式进行存储,告警表记录总数固定,当告警表中的记录达到最大数目后,如果再插入新告警,则删除最早的记录,保证告警表中的记录始终是当前最新的。
上述统计规则采用同一告警模式确定统计范围,在统计时根据对象ID、告警组名称、告警项名称进行区分。
上述统计规则采用同一对象模式确定统计范围,在统计时根据对象ID进行区分。
上述步骤2中,历史库只存储告警的原始信息,不包括统计结果,检索告警时,通过SQL语句的count函数来得到统计结果。
一种实时告警统计系统,包括告警接收模块、统计规则配置模块、实时统计模块、历史统计模块、重统计模块和告警展示模块;
所述告警接收模块用于对告警报文的接收与解析;
所述统计规则配置模块用于对统计规则的配置,根据规则配置确定后续的统计范围;
所述实时统计模块用于检索实时库中满足统计规则的告警记录,如果检索到相应记录,则分别记下对应的日、周、月发生的告警次数,并删除该记录,然后插入最新的告警记录,同时将统计次数分别加1后更新到此记录上;如果未检索到相应记录则转到历史统计模块继续处理;
所述历史统计模块用于在历史库中分别检索满足统计规则的告警在日、周、月时间段发生的次数,然后在实时库中插入最新的告警记录,并将统计次数加1后更新到此记录上;
所述重统计模块用于在时间上出现跨日、跨周、跨月时进行统计结果的更新,并更新到实时库中对应的告警记录上;
所述告警展示模块用于展示实时库中的告警记录,包括日周月的统计结果。
上述重统计模块进行统计结果的更新,是指对日统计结果清零,对周和月分别判断是否已经跨周或者跨月,如果跨周或者跨月则将统计结果清零,否则仍保持当前结果。
上述告警展示模块展示实时库中的告警记录是采用倒序的方式,即将最新的告警记录展示在界面的最上端。
采用上述方案后,本发明的有益效果是:
(1)统计规则自定义,可以满足不同场景的使用需求;
(2)基于实时库进行告警统计,统计过程非常快速,监控人员可以根据告警发生的频度及其分布,可以快速定位问题并处理,掌握系统的整体状态;
(3)所述告警展示模块中同时显示告警记录日周月的统计结果,点击统计结果就会展开相应的告警记录详情,包含几条告警就会展开几条,因此告警详情查看方便,只需点击统计结果,便可查看对应时间段的满足统计规则的所有告警信息。
附图说明
图1是本发明统计方法的流程图;
图2是本发明统计系统的架构示意图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
由于传统的告警处理方法在处理告警时,无法实时展现告警发生的频度,监控人员不容易发现重要告警,从而导致对问题定位比较困难。因此,本发明提出了一种实时告警统计方法及系统,基于实时库对告警进行统计,统计规则可人工定义,从而确定统计范围。首先在实时库中进行检索,如果实时库中没有相关告警记录才需要到历史库中检索统计,从而极大提高了统计效率,达到实时的目的。
如图1所示,本发明提供的一种实时告警统计方法,包括以下步骤:
步骤101,接收发送端发送的所有告警,并进行报文解析;
步骤102,读取统计规则,统计规则可人工定义,根据需要确定统计范围,如同一告警模式,即统计同样的告警发生的次数,同一对象模式,即同一对象发生的告警的次数,等等;
其中,所述的同一告警模式,在统计时可根据对象ID、告警组名称、告警项名称来区分;所述的同一对象模式,在统计时可根据对象ID来区分。
步骤103,在实时库中按照统计规则进行检索,查看是否存在满足统计规则的告警记录。
其中,所述的实时库存放告警的统计结果,对告警记录是以循环表的方式进行存储的,告警表记录总数是固定的,当告警表中的记录达到最大数目后,如果再插入新告警,则会将最早的记录删除,保证告警表中的记录始终是当前最新的。
步骤104,如果在实时库中找到满足统计规则的告警记录,则记下统计结果,并删除该记录,然后插入最新的告警记录,同时将统计结果加1后更新到此记录上。
步骤105,如果在实时库中检索不到满足统计规则的告警记录,则需到历史库中进行检索,对日周月三个时间段分别进行检索并统计次数,然后将最新告警记录插入到实时库中,同时将统计次数加1更新到此记录上。
所述的历史库只存储告警的原始信息,不包括统计结果,检索告警时,可通过SQL语句的count函数来得到统计结果。
上述方案中,统计规则可根据需要人工定义,以满足不同场景的使用需求。告警统计是基于实时库的,对于发生频次高的告警在实时库中存在的概率越大,从而提高了统计效率,达到实时统计的目的。
如图2所示的一种实时告警统计系统,包括告警接收模块、统计规则配置模块、实时统计模块、历史统计模块、重统计模块和告警展示模块,下面分别介绍。
所述告警接收模块用于对告警报文的接收与解析;
所述统计规则配置模块用于对统计规则的配置,根据规则配置,确定后续的统计范围;
所述实时统计模块用于检索实时库中满足统计规则的告警记录,如果检索到了相应记录,则分别记下对应的日、周、月发生的告警次数,并删除该记录,然后插入最新的告警记录,同时将统计次数分别加1后更新到此记录上;如果未检索到相应记录则转到历史统计模块继续处理。
所述历史统计模块用于在历史库中分别检索满足统计规则的告警在日、周、月时间段发生的次数,然后在实时库中插入最新的告警记录,并将统计次数加1后更新到此记录上。
所述重统计模块用于在系统时间超过当天的24点时,对统计结果重新计数,并更新到实时库中对应的告警记录上;其中,对统计结果重新计数,是指对日统计结果清零,对周和月分别判断是否已经跨周或者跨月,如果跨周或者跨月则将统计结果清零,否则仍保持当前结果。
所述告警展示模块用于展示实时库中的告警记录,包括日周月的统计结果。
在本实施例中,告警接收模块接收告警报文并进行解析,然后传给实时统计模块处理,实时统计模块在实时库中检索满足统计规则的告警记录,如果存在则删除该告警记录,并插入最新的告警记录同时更新统计结果,如果不存在则传给历史统计模块处理,历史统计模块在历史库中检索满足统计规则的告警记录并进行统计,然后在实时库中插入最新的告警记录,同时将统计结果更新到该记录上。告警展示模块用于对实时库中的告警记录进行展示,重统计模块用于在时间上出现跨日、跨周、跨月时进行统计结果的更新;
所述统计规则配置模块支持自定义配置,监控人员可以根据实际需要设置需要统计的范围,实时统计模块和历史统计模块都是基于此配置进行检索的;
所述实时库中存储告警信息及统计信息,如动作时间、告警内容、告警组名、告警项名、对象ID、日统计次数、周统计次数、月统计次数等;对告警记录是以循环表的方式进行存储的,最大存储数量为1万条,当告警记录达到1万条时,如果再插入新的记录就会将最早插入的记录删除;
所述历史库中存储告警的原始信息不包括统计信息,对历史库进行告警统计时,采用SQL语句的count函数进行,可分别得到日周月的统计结果;
由上可知,告警展示模块展示实时库中的告警记录是采用倒序的方式,即将最新的告警记录展示在界面的最上端;
所述告警展示模块同时显示告警记录日周月的统计结果,支持告警详情显示,点击某一统计结果,便可显示该时间段的所有告警信息。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。