网站告警的方法及系统与流程

文档序号:17585123发布日期:2019-05-03 21:14阅读:178来源:国知局
网站告警的方法及系统与流程

本发明涉及计算机及互联网技术领域,具体涉及一种网站告警的方法及系统。



背景技术:

对于计算机、互联网等众多行业,对于一些重要的数据一般都会有一些相应的指标数据要求,在当前的指标数据偏离正常数据的情况下,一般都会配置一定的告警规则,这些规则用来将指标数据的异常行为转化为告警,再将告警推送给指标数据的负责人进行处理。传统的告警规则配置较为简单,一般只配置有正常和告警两个状态,当没有发现异常数据时,则为正常状态,当发现有异常数据时,则为告警状态,在这种情况下,告警状态与正常状态之间容易发生翻转而产生大量重复告警,进而重复将告警推送给指标数据的负责人而影响到监控告警的质量。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中的网站告警状态与正常状态之间容易发生翻转易产生重复告警缺陷,提供一种能够避免状态翻转的网站告警的方法及系统。

本发明是通过下述技术方案来解决上述技术问题:

本发明提供了一种网站告警的方法,所述网站的状态包括正常状态、异常状态、告警状态、告警持续状态、告警持续不恢复状态及告警恢复状态,每一所述状态对应一表示所述状态持续时间长短的计数器,所述正常状态对应的计数器为第一计数器,所述异常状态对应的计数器为第二计数器、所述告警状态对应的计数器为第三计数器、所述告警持续状态对应的计数器为第四计数器、所述告警持续不恢复状态对应的计数器为第五计数器,所述告警恢复状态对应的计数器为第六计数器,所述方法包括下述步骤:

s1、获取所述网站的当前指标数据及所述网站的前检状态,所述前检状态为所述网站的前一次检测的状态;

s2、判断所述当前指标数据是否异常,若否则执行步骤s3,若是则执行步骤s4;

s3、若所述前检状态为所述正常状态,则设置所述网站的当前状态为所述正常状态,并设置所述第一计数器加1,执行步骤s5;

若所述前检状态为所述异常状态,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,执行步骤s5;

若所述前检状态为所述告警状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,执行步骤s5;

若所述前检状态为所述告警持续状态,则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器为1,执行步骤s5;

若所述前检状态为所述告警持续不恢复状态,则判断所述第五计数器是否小于预设的第五阈值,若是则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器加1,执行步骤s5,若否则设置所述当前状态为所述告警恢复状态,并设置所述第六计数器为1,执行步骤s5;

若所述前检状态为所述告警恢复状态,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,执行步骤s5;

s4、若所述前检状态为所述正常状态,则设置所述当前状态为所述异常状态,并设置所述第二计数器为1,执行步骤s5;

若所述前检状态为所述异常状态,则判断所述第二计数器是否小于预设的第二阈值,若是则设置所述当前状态为所述异常状态,并设置所述第二计数器加1,执行步骤s5;

若否则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,执行步骤s5;

若所述前检状态为所述告警状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,执行步骤s5;

若所述前检状态为所述告警持续状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器加1,执行步骤s5;

若所述前检状态为所述告警持续不恢复状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,执行步骤s5;

若所述前检状态为所述告警恢复状态,则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,执行步骤s5;

s5、更新所述网站的所述前检状态为所述当前状态,当所述当前状态为所述告警状态时报警。

较佳地,步骤s5中所述报警为通过短信、邮件、微信中的至少一种发送报警通知。

较佳地,当所述当前状态为所述告警持续状态时,定期通过短信、邮件、微信、其他消息中的至少一种发送告警持续通知。

较佳地,所述方法还包括初始化所述前检状态,及

初始化所述第一计数器、所述第二计数器、所述第三计数器、所述第四计数器、所述第五计数器及所述第六计数器。

较佳地,当所述当前状态为告警恢复状态时,通过短信、邮件、微信中的至少一种发送告警恢复通知。

较佳地,所述当前指标数据包括当前订单指标数据、当前业务指标数据、当前应用指标数据或当前基础监控指标数据。

较佳地,步骤s2中根据3sigma(一种工业准则)准则判断所述网站的当前指标数据是否异常。

本发明还提供了一种网站告警的系统,所述网站的状态包括正常状态、异常状态、告警状态、告警持续状态、告警持续不恢复状态及告警恢复状态,每一所述状态对应一表示所述状态持续时间长短的计数器,所述正常状态对应的计数器为第一计数器,所述异常状态对应的计数器为第二计数器、所述告警状态对应的计数器为第三计数器、所述告警持续状态对应的计数器为第四计数器、所述告警持续不恢复状态对应的计数器为第五计数器,所述告警恢复状态对应的计数器为第六计数器,所述系统包括:获取模块、判断模块、第一设置模块、第二设置模块及更新模块;

所述获取模块用于获取所述网站的当前指标数据及所述网站的前检状态,所述前检状态为所述网站的前一次检测的状态;

所述判断模块用于判断所述当前指标数据是否异常,若否则调用所述第一设置模块,若是则调用所述第二设置模块;

所述第一设置模块用于:

当所述前检状态为所述正常状态时,则设置所述网站的当前状态为所述正常状态,并设置所述第一计数器加1,调用所述更新模块;

当所述前检状态为所述异常状态时,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,调用所述更新模块;

当所述前检状态为所述告警状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,调用所述更新模块;

当所述前检状态为所述告警持续状态时,则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器为1,调用所述更新模块;

当所述前检状态为所述告警持续不恢复状态时,则判断所述第五计数器是否小于预设的第五阈值,若是则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器加1,调用所述更新模块;若否则设置所述当前状态为所述告警恢复状态,并设置所述第六计数器为1,调用所述更新模块;

当所述前检状态为所述告警恢复状态时,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,调用所述更新模块;

所述第二设置模块用于:

当所述前检状态为所述正常状态时,则设置所述当前状态为所述异常状态,并设置所述第二计数器为1,调用所述更新模块;

当所述前检状态为所述异常状态时,则判断所述第二计数器是否小于预设的第二阈值,若是则设置所述当前状态为所述异常状态,并设置所述第二计数器加1,调用所述更新模块;调用所述更新模块;若否则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,调用所述更新模块;

当所述前检状态为所述告警状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,调用所述更新模块;

当所述前检状态为所述告警持续状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器加1,调用所述更新模块;

当所述前检状态为所述告警持续不恢复状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,调用所述更新模块;

当所述前检状态为所述告警恢复状态时,则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,调用所述更新模块;

所述更新模块用于更新所述网站的所述前检状态为所述当前状态,当所述当前状态为所述告警状态时报警。

较佳地,所述更新模块中还包括告警通知单元,所述告警通知单元用于通过短信、邮件、微信中的至少一种发送告警通知。

较佳地,所述系统还包括告警持续通知单元,所述告警持续通知单元用于当所述当前状态为所述告警持续状态时,定期通过短信、邮件、微信中的至少一种发送告警持续通知。

较佳地,所述系统还包括第一初始化单元及第二初始化单元:

所述第一初始化单元用于初始化所述前检状态;

所述第二初始化单元用于初始化所述第一计数器、所述第二计数器、所述第三计数器、所述第四计数器、所述第五计数器及所述第六计数器。

较佳地,所述系统还包括告警恢复通知单元,所述告警恢复通知单元用于当所述当前状态为告警恢复状态时,通过短信、邮件、微信中的至少一种发送告警恢复通知。

较佳地,所述当前指标数据包括当前订单指标数据、当前业务指标数据、当前应用指标数据或当前基础监控指标数据。

较佳地,所述判断模块用于根据3sigma准则判断所述网站的当前指标数据是否异常。

本发明的积极进步效果在于:通过设置正常状态、异常状态、告警状态、告警持续状态、告警持续不恢复状态及告警恢复状态这六种不同的状态,通过所述网站的当前指标数据及所述网站的前检状态从而设置所述网站的当前状态为六种不同状态中的一种,更精细化了对网站的监控,从而使得在检测到异常指标数据时,避免正常状态与告警状态之间产生多次翻转而导致重复告警,因而大大提高了监控网站指标数据的效率,也有利于精细化对网站状态的管理。

附图说明

图1为本发明实施例1的网站告警的方法的流程图。

图2为图1中步骤s13的流程图。

图3为图1中步骤s14的流程图。

图4为实施例1的网站告警的方法的一具体应用场景示意图。

图5为本发明实施例2的网站告警的系统的模块示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供了一种网站告警的方法,所述网站的状态包括正常状态、异常状态、告警状态、告警持续状态、告警持续不恢复状态及告警恢复状态,每一所述状态对应一表示所述状态持续时间长短的计数器,所述正常状态对应的计数器为第一计数器,所述异常状态对应的计数器为第二计数器、所述告警状态对应的计数器为第三计数器、所述告警持续状态对应的计数器为第四计数器、所述告警持续不恢复状态对应的计数器为第五计数器,所述告警恢复状态对应的计数器为第六计数器。

所述方法的具体流程如图1所示,包括:

步骤s11、获取所述网站的当前指标数据及所述网站的前检状态,所述前检状态为所述网站的前一次检测的状态;

步骤s12、判断所述当前指标数据是否异常,若否则执行步骤s13,若是则执行步骤s14;

步骤s13、根据所述前检状态设置所述当前状态,执行步骤s15;

步骤s14、根据所述前检状态设置所述当前状态,执行步骤s15;

步骤s15、更新所述网站的所述前检状态为所述当前状态,当所述当前状态为所述告警状态时报警。

其中,所述报警为通过短信、邮件、微信、其他消息中的至少一种发送报警通知。

本实施例中,基于获取的所述网站的当前指标数据及所述网站的前检状态,来设置所述当前状态以及所述当前状态所对应的计数器,当所述当前状态为所述告警状态时则报警。本实施例中,通过设置6中不同的状态,使得报警与正常状态之间不易翻转,因此避免了重复告警,节约系统资源的同时也更方便相关人员监控所述网站的状态。

如图2所示,本实施例中,步骤s13包括:

步骤s131、若所述前检状态为所述正常状态,则设置所述网站的当前状态为所述正常状态,并设置所述第一计数器加1,执行步骤s15;

步骤s132、若所述前检状态为所述异常状态,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,执行步骤s15;

步骤s133、若所述前检状态为所述告警状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,执行步骤s15;

步骤s134、若所述前检状态为所述告警持续状态,则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器为1,执行步骤s15;

步骤s135、若所述前检状态为所述告警持续不恢复状态,判断所述第五计数器是否小于预设的第五阈值,若是,则执行步骤s1351,若否,则执行步骤s1352;

步骤s1351、设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器加1,执行步骤s15;

步骤s1352、设置所述当前状态为所述告警恢复状态,并设置所述第六计数器为1,执行步骤s15;

步骤s136、若所述前检状态为所述告警恢复状态,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,执行步骤s15。

如图3所示,本实施例中,步骤s14包括:

步骤s141若所述前检状态为所述正常状态,则设置所述网站的当前状态为所述异常状态,并设置所述第二计数器为1,执行步骤s15;

步骤s142、若所述前检状态为所述异常状态,则判断所述第二计数器是否小于预设的第二阈值,若是则执行步骤s1421,若否则执行步骤s1422;

步骤s1421、设置所述当前状态为所述异常状态,并设置所述第二计数器加1,执行步骤s15;

步骤s1422、设置所述当前状态为所述告警状态,并设置所述第三计数器为1,执行步骤s15;

步骤s143、若所述前检状态为所述告警状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,执行步骤s15;

步骤s144、若所述前检状态为所述告警持续状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器加1,执行步骤s15;

步骤s145、若所述前检状态为所述告警持续不恢复状态,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,执行步骤s15;

步骤s146、若所述前检状态为所述告警恢复状态,则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,执行步骤s15。

其中,当所述当前状态为所述告警持续状态时,定期通过短信、邮件、微信、其他消息中的至少一种发送告警持续通知。

当所述当前状态为告警恢复状态时,通过短信、邮件、微信、其他消息中的至少一种发送告警恢复通知。

其中,所述当前指标数据包括当前订单指标数据、当前业务指标数据、当前应用指标数据或当前基础监控指标数据。

其中,所述方法还包括初始化所述前检状态,及初始化所述第一计数器、所述第二计数器、所述第三计数器、所述第四计数器、所述第五计数器及所述第六计数器。本实施例中,将所述前检状态初始化为所述正常状态,将所述第一计数器、所述第二计数器、所述第三计数器、所述第四计数器、所述第五计数器及所述第六计数器都初始化为0。

本实施例中,设置第二阈值及第五阈值为3,在实际中,所述第二阈值及第五阈值可以根据实际的不同需求进行设定。

本实施例中,通过在当前状态为告警状态、告警持续状态及告警恢复状态下,发送通知,从而方便了相关人员对相关的监控状态进行处理,通过发送多种不同的通知而避免了单一化管理,使相关人员可以对不同的状态进行不同的处理,因而更具有实用性。

本实施例中的步骤s12中,根据3sigma准则判断所述网站的当前指标数据是否异常,其中,具体的判断方法可以但不限于通过下述方式:

获取所述网站的所有历史指标数据;所述历史数据一般为一段窗口时间内的数据,例如,一天、几小时内等,具体情况需根据实际情况去确定;

计算所述网站的所有历史指标数据的平均值;所述平均值为基于所述历史窗口数据根据机器学习的一些回归算法拟合出来的基准线;

在所述平均值上加减三倍标准差而形成指标的动态阈值,若所述网站的当前指标数超过所述动态阈值则为异常。

本实施例中,区分监控指标异常和指标告警:监控指标异常是指监控系统采集到的指标数据明显偏离正常数据。利用工业上常用的3sigma准则判断,当某个监控值超出了该指标平均值3倍的标准差,则认为该监控值异常。在解决告警事件翻转的同时即提升了告警质量,让告警更加准确。

本实施例中,通过设置了6种不同的状态,从而避免在当前指标数据异常时的重复告警。下面举个具体的例子,对本实施例做相应说明:

假设前检查状态为告警状态,若所获取的所述网站的当前指标数据为正常,则当前状态为告警不恢复状态,此时,继续获取所述网站的当前指标数据,这时,所述告警不恢复状态则为此时的前检状态,如果此时获取的所述网站的当前指标数据为异常,则当前状态为告警持续状态而不是告警状态,因而避免了重复告警,只有在告警持续状态下满足一定条件时,才会告警并产生一定的告警通知,因此,本实施例提供的网站告警的方法很好的避免了告警翻转的问题。

下面,给出一个本实施例的具体应用场景,如图4所示:

在该应用场景中,正常状态表示为normal,异常状态表示为smoking,告警状态表示为opened,持续告警状态表示为lasting,告警不恢复状态表示为layoff,告警恢复状态表示为closed。附图标记1111表示所述前检状态持续的时间,本实施例中,该时间的单位为分钟,每隔一分钟获取一次当前检测数据,附图标记1112表示当前指标数据是否异常,其中false代表异常,true代表正常,附图标记1113表示根据所述当前检测数据及所述前检状态而更新的所述当前状态。

本实施例精细化地描述了网站的监控指标的健康状态,利用状态机的不同状态反映监控指标的健康程度,而避免了监控告警规则中一般只考虑指标是否正常与是否告警两种情况因此也防止了因为持续告警状态下因为个别监控指标不满足告警规则而发生多次翻转,从而解决了告警事件翻转的同时即提升了告警质量,让告警更加准确。

本实施例提出了一种基于状态机方式实现的网站告警的方法,在网站订单数据等监控指标发生异常时,提出并设计了一种基于状态机方式实现的通用告警生成和通知系统,以此来提高网站告警的准确性和质量、减少和收敛告警通知数量。同时,通过使用6种状态来描述网站监控指标健康状况的不同阶段,通过这些不同的状态可以清楚的了解网站监控指标当前的健康状态,以及对应状态的持续时间,可以实现监控指标精细化的管理;同时,多种状态之间的变迁很好地解决了网站监控指标告警状态翻转,从而有效的减少和抑制了大量重复告警,提高了用户体验度。

实施例2

本实施例提供了一种网站告警的系统,所述网站的状态包括正常状态、异常状态、告警状态、告警持续状态、告警持续不恢复状态及告警恢复状态,每一所述状态对应一表示所述状态持续时间长短的计数器,所述正常状态对应的计数器为第一计数器,所述异常状态对应的计数器为第二计数器、所述告警状态对应的计数器为第三计数器、所述告警持续状态对应的计数器为第四计数器、所述告警持续不恢复状态对应的计数器为第五计数器,所述告警恢复状态对应的计数器为第六计数器。

所述系统的具体模块示意图如图5所示,包括:获取模块1、判断模块2、第一设置模块3、第二设置模块4及更新模块5。

获取模块1用于获取所述网站的当前指标数据及所述网站的前检状态,所述前检状态为所述网站的前一次检测的状态。

判断模块2用于判断所述当前指标数据是否异常,若否则调用第一设置模块,若是则调用第二设置模块。

所述第一设置模块3用于:

当所述前检状态为所述正常状态时,则设置所述网站的当前状态为所述正常状态,并设置所述第一计数器加1,调用更新模块5。

当所述前检状态为所述异常状态时,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,调用更新模块。

当所述前检状态为所述告警状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,调用更新模块5。

当所述前检状态为所述告警持续状态时,则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器为1,调用更新模块5。

当所述前检状态为所述告警持续不恢复状态时,则判断所述第五计数器是否小于预设的第五阈值,若是则设置所述当前状态为所述告警持续不恢复状态,并设置所述第五计数器加1,调用更新模块;,若否则设置所述当前状态为所述告警恢复状态,并设置所述第六计数器为1,调用更新模块5。

当所述前检状态为所述告警恢复状态时,则设置所述当前状态为所述正常状态,并设置所述第一计数器为1,调用更新模块5。

第二设置模块4用于:

当所述前检状态为所述正常状态时,则设置所述当前状态为所述异常状态,并设置所述第二计数器为1,调用更新模块5。

当所述前检状态为所述异常状态时,则判断所述第二计数器是否小于预设的第二阈值,若是则设置所述当前状态为所述异常状态,并设置所述第二计数器加1,调用更新模块;调用更新模块;若否则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,调用更新模块5。

当所述前检状态为所述告警状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,调用更新模块5。

当所述前检状态为所述告警持续状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器加1,调用更新模块5。

当所述前检状态为所述告警持续不恢复状态时,则设置所述当前状态为所述告警持续状态,并设置所述第四计数器为1,调用更新模块5。

当所述前检状态为所述告警恢复状态时,则设置所述当前状态为所述告警状态,并设置所述第三计数器为1,调用更新模块5。

更新模块5用于更新所述网站的所述前检状态为所述当前状态,当所述当前状态为所述告警状态时报警。

其中,更新模块5中还包括告警通知单元51,告警通知单元51用于通过短信、邮件、微信、其他消息中的至少一种发送告警通知。

其中,所述系统还包括告警持续通知单元(图中未示出),所述告警持续通知单元用于当所述当前状态为所述告警持续状态时,定期通过短信、邮件、微信、其他消息中的至少一种发送告警持续通知。

本实施例中,所述系统还包括第一初始化单元6及第二初始化单元7;

第一初始化单元6用于初始化所述前检状态,本实施例中所述前检状态初始化为所述正常状态。

第二初始化单元7用于初始化所述第一计数器、所述第二计数器、所述第三计数器、所述第四计数器、所述第五计数器及所述第六计数器。本实施例中每个计数器均初始化为0。

其中,所述系统还可以包括告警恢复通知单元(图中未示出),所述告警恢复通知单元用于当所述当前状态为告警恢复状态时,通过短信、邮件、微信、其他消息中的至少一种发送告警恢复通知。

其中,所述当前指标数据包括当前订单指标数据、当前业务指标数据、当前应用指标数据或当前基础监控指标数据。

其中,所述判断模块用于根据3sigma准则判断所述网站的当前指标数据是否异常。

本实施例精细化地描述监控指标的健康状态,利用状态机的不同状态反映监控指标的健康程度,而避免了传统的监控告警规则中一般只考虑指标是否正常与是否告警两种情况,因此也防止了因为持续告警状态下因为个别监控指标不满足告警规则而发生多次翻转,从而解决了告警事件翻转的同时即提升了告警质量,让告警更加准确。

本实施例提出了一种基于状态机方式实现的网站告警的系统,在网站订单数据等监控指标发生异常时,提出并设计了一种基于状态机方式实现的通用告警生成和通知系统,以此来提高网站告警的准确性和质量,减少和收敛告警通知数量。同时,通过使用6种状态来描述网站监控指标健康状况的不同阶段,通过这些不同的状态可以清楚的了解网站监控指标当前的健康状态,以及对应状态的持续时间,可以实现监控指标精细化的管理;同时,多种状态之间的变迁很好地解决了网站监控指标告警状态翻转,从而有效的减少和抑制了大量重复告警。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1