一种数据监控方法及系统与流程

文档序号:26504671发布日期:2021-09-04 07:40阅读:233来源:国知局
一种数据监控方法及系统与流程

1.本发明涉及大数据处理技术领域,尤其涉及一种数据监控方法及系统。


背景技术:

2.随着it、互联网技术的持续发展,企业中各种业务it系统得到越来越多的重视,而告警消息作为衡量企业业务it系统的活动和运行状况的必要参数,就需要得到及时的监控,随之而来的,告警消息的处理则成了企业业务it系统运维的一个基本工作。
3.现有的数据监控方法通常使用单一模型检测序列,在面对情况复杂的实际业务指标时,容易敏感,比如某序列在每天某一时刻会定期产生剧烈波动,具体的:某cpu在每天0点因启动定时任务而短期飙升1分钟,后降回正常范围,这种情况下采用单一模型估出的阈值会将此刻的值视为异常,从而产生错误告警。


技术实现要素:

4.本发明实施例提供一种数据监控方法和系统,可以解决现有数据监控方法采用单一模型检测无法适应复杂的实际业务指标,容易产生错误告警。
5.为了解决上述技术问题,本发明实施例提供了一种数据监控方法,所述方法包括:
6.显示告警规则配置界面;
7.基于用户的配置操作,生成告警规则;
8.基于所述告警规则中的异常检测模型进行异常检测;
9.其中,所述告警规则中包括至少两个异常检测模型。
10.可选的,上述方法中,所述基于所述告警规则中的异常检测模型进行异常检测的步骤之后,所述方法还包括:
11.根据所述异常检测模型的异常检测结果和所述告警规则中的告警通知,输出告警消息。
12.可选的,上述方法中,所述异常检测模型包括以下至少一种:
13.静态阈值模型、差分阈值模型和动态阈值模型。
14.可选的,上述方法中,所述基于用户的配置操作,生成告警规则的步骤包括:
15.基于用户设置的检测数据的特征指标,推荐异常检测模型;
16.基于用户的输入操作,确定所述告警规则中的异常检测模型。
17.可选的,上述方法中,所述基于用户的输入操作,确定所述告警规则中的异常检测模型的步骤还包括::
18.基于所述特征指标,确定各个异常检测模型对应的权重。
19.可选的,上述方法中,所述基于用户的配置操作,生成告警规则的步骤还包括:
20.基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值。
21.可选的,上述方法中,所述阈值包括以下至少一种:静态阈值、差分阈值和动态阈
值。
22.可选的,上述方法中,所述确定与所述异常检测模型对应的阈值的步骤包括:
23.基于所述告警规则中的异常检测模型类型,确定阈值类型;
24.根据所述阈值类型以及所述历史指标序列,确定所述阈值。
25.可选的,上述方法中,所述根据所述阈值类型以及所述历史指标序列,确定所述阈值的步骤包括:
26.根据所述阈值的类型,确定用于计算阈值的历史指标序列范围;
27.根据所述历史指标序列范围获取对应的目标指标序列;
28.根据所述目标指标序列计算所述阈值。
29.可选的,上述方法中,所述根据所述目标指标序列计算所述阈值的步骤包括:
30.分别计算所述目标指标序列中上限的中位数和最小值,以及,下限的中位数和最大值;
31.根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值。
32.可选的,上述方法中,所述根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值的步骤之后,所述方法还包括:
33.对计算出的所述上限阈值和所述下限阈值分别进行修正。
34.可选的,上述方法中,所述对计算出的所述上限阈值和所述下限阈值分别进行修正的步骤包括:
35.若所述目标指标序列的最大值小于计算出来的所述上限阈值,则将所述目标指标序列的最大值作为所述上限阈值;
36.若所述目标指标序列的最小值大于计算出来的所述下限阈值,则将所述目标指标序列的最小值作为所述下限阈值。
37.可选的,上述方法中,所述基于所述告警规则中的异常检测模型进行异常检测的步骤包括:
38.获取所述检测结果为异常的所述各个异常检测模型对应的权重;
39.若所述各个异常检测模型的权重之和大于预设值,则确定数据异常。
40.可选的,上述方法中,所述告警通知包括以下至少一项:开始告警通知、持续告警通知和结束告警通知。
41.可选的,上述方法中,所述基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值的步骤还包括:
42.计算指定历史时间范围内的历史指标序列的关键特征值;
43.基于所述关键特征值计算所述阈值。
44.可选的,上述方法中,所述基于用户的配置操作,生成告警规则的步骤之前,所述方法还包括:
45.基于所述告警规则中检测数据的时效性确定异常检测方式;
46.所述异常检测方式包括以下至少一种:实时消费、分钟定时和计划调度。
47.本发明实施例还提供了一种数据监控系统,所述数据监控系统包括:
48.显示模块,用于显示告警规则配置界面;
49.生成模块,用于基于用户的配置操作,生成告警规则;
50.检测模块,用于基于所述告警规则中的异常检测模型进行异常检测;
51.其中,所述告警规则中包括至少两个异常检测模型。
52.可选的,上述数据监控系统还包括:
53.输出模块,用于根据所述异常检测模型的异常检测结果和所述告警规则中的告警通知,输出告警消息。
54.可选的,上述数据监控系统中,所述异常检测模型包括以下至少一种:
55.静态阈值模型、差分阈值模型和动态阈值模型。
56.可选的,上述数据监控系统中,所述生成模块包括:
57.推荐子模块,用于基于用户设置的检测数据的特征指标,推荐异常检测模型;
58.第一确定子模块,用于基于用户的输入操作,确定所述告警规则中的异常检测模型。
59.可选的,上述数据监控系统中,所述第一确定子模块具体用于:
60.基于所述特征指标,确定各个异常检测模型对应的权重。
61.可选的,上述数据监控系统中,所述第一确定子模块具体用于:
62.基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值。
63.可选的,上述数据监控系统中,所述阈值包括以下至少一种:静态阈值、差分阈值和动态阈值。
64.可选的,上述数据监控系统中,所述第一确定子模块具体还用于:
65.基于所述告警规则中的异常检测模型类型,确定阈值类型;
66.根据所述阈值类型以及所述历史指标序列,确定所述阈值。
67.可选的,上述数据监控系统中,所述第一确定子模块具体还用于:
68.根据所述阈值的类型,确定用于计算阈值的历史指标序列范围;
69.根据所述历史指标序列范围获取对应的目标指标序列;
70.根据所述目标指标序列计算所述阈值。
71.可选的,上述数据监控系统中,所述第一确定子模块执行所述根据所述目标指标序列计算所述阈值的步骤具体用于:
72.分别计算所述目标指标序列中上限的中位数和最小值,以及,下限的中位数和最大值;
73.根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值。
74.可选的,上述数据监控系统中,所述第一确定子模块具体还用于:
75.所述根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值之后,对计算出的所述上限阈值和所述下限阈值分别进行修正。
76.可选的,上述数据监控系统中,所述第一确定子模块执行所述对计算出的所述上限阈值和所述下限阈值分别进行修正的步骤具体用于:
77.若所述目标指标序列的最大值小于计算出来的所述上限阈值,则将所述目标指标序列的最大值作为所述上限阈值;
78.若所述目标指标序列的最小值大于计算出来的所述下限阈值,则将所述目标指标序列的最小值作为所述下限阈值。
79.可选的,上述数据监控系统中,所述检测模块包括:
80.获取子模块,用于获取所述检测结果为异常的所述各个异常检测模型对应的权重;
81.第二确定子模块,用于若所述各个异常检测模型的权重之和大于预设值,则确定数据异常。
82.可选的,上述数据监控系统中,所述告警通知包括以下至少一项:开始告警通知、持续告警通知和结束告警通知。
83.可选的,上述数据监控系统中,所述第一确定子模块执行所述基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值的步骤具体用于:
84.计算指定历史时间范围内的历史指标序列的关键特征值;
85.基于所述关键特征值计算所述阈值。
86.可选的,上述数据监控系统还包括:
87.获取模块,用于基于所述告警规则中检测数据的时效性确定异常检测方式;
88.所述异常检测方式包括以下至少一种:实时消费、分钟定时和计划调度。
89.本发明实施例还提供了一种数据监控系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述数据监控方法的步骤。
90.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述数据监控方法的步骤。
91.本发明实施例提供的数据监控方法和系统,可以有效提高告警处理的准确性,提高告警处理效率。并且本发明实施例支持十万序列级别的并发,节省了计算资源,提高了告警效率。
附图说明
92.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
93.图1是本发明实施例提供的一种数据监控方法的流程图;
94.图2是本发明实施例提供的一种告警规则编辑界面示意图;
95.图3本发明实施例提供的又一种告警规则编辑界面示意图;
96.图4是本发明实施例提供的静态阈值计算流程图;
97.图5是本发明实施例提供的差分阈值计算流程图;
98.图6是本发明实施例提供的动态阈值计算流程图;
99.图7为本发明实施例提供的单节点的主要组件交互框架图;
100.图8为本发明实施例提供的分钟定时和实时告警规则运行时序图;
101.图9为本发明实施例提供的实时告警细节时序图;
102.图10为本发明实施例提供的阈值生成时序图;
103.图11为本发明实施例提供的计划调度告警时序图;
104.图12为本发明实施例提供的一种数据监控系统的框架图。
具体实施方式
105.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
106.参见图1,图1是本发明实施例提供的数据监控方法的流程图,如图1所示,数据监控方法包括以下步骤:
107.步骤101,显示告警规则配置界面。
108.步骤102,基于用户的配置操作,生成告警规则。
109.步骤103,基于所述告警规则中的异常检测模型进行异常检测;其中,所述告警规则中包括至少两个异常检测模型。
110.具体的,用户可以创建并启用告警规则,或者是对告警系统已有的告警规则进行修改并启用。可以基于告警规则设置操作,如图2所示,显示告警规则设置界面,设置异常检测方式、被检测的数据以及,设置检测方式,以及告警通知等。其中,异常检测方式包括实时消费、分钟定时和计划调度,根据告警时效性的不同,对应的检测方式也不同:用户可以在创建告警规则时根据需要进行选择。其中,选择被检测的数据:包括选择指标库(指标库包括:opentsdb、prometheus等)和指标、指标筛选标签、序列聚合方式和聚合标签、时间聚合方式和聚合粒度。设置检测方法,具体包括:选择异常检测模型和其所占票数、告警判断所使用阈值上下界,设置阈值范围灵敏度,设置训练数据回溯周期、训练数据是否剔除特殊日期,选择告警延时判断时间,设置异常判定的总票数;选择是异常立即告警还是连续几个异常立即告警;设置告警通知包括:确定告警通知发送方式和通知格式。通知发送方式以邮件、短信、kafka通知等不同形式发送出告警消息。
111.基于告警规则中的异常检测模型对检测数据进行异常检测。异常判断包括三种情况,一是指标值高于告警阈值上限,但对告警阈值下限没要求,二是指标值低于告警阈值下限,但对告警阈值上限没要求,三是指标值高于告警阈值上限或低于告警阈值下限。
112.其中,所述异常检测模型包括以下至少一种:
113.静态阈值模型、差分阈值模型和动态阈值模型。
114.进一步来说,基于异常检测模型种的阈值来源不同,异常检测模型可以为:阈值自定义的静态阈值模型、系统配置的静态阈值模型(自动计算)、阈值自定义的差分阈值模型,系统预置的差分阈值(自动计算)、动态阈值。
115.可选的,所述基于用户的配置操作,生成告警规则的步骤102包括:
116.基于用户设置的检测数据的特征指标,推荐异常检测模型;
117.基于用户的输入操作,确定所述告警规则中的异常检测模型。
118.由于实际中的指标数据情况复杂,可能兼具静态模型、差分模型、动态模型的适用
特征,针对于此,用户还可以基于指标数据情况,选择两种或两种以上的异常检测模型用于数据检测。
119.可选的,所述基于用户的输入操作,确定所述告警规则中的异常检测模型的步骤还包括:
120.基于所述特征指标,确定各个异常检测模型对应的权重。
121.不同异常检测场景中对于数据的变化情况的关注的侧重点不同,为了能够准确检测指标数据情况复杂场景的异常检测情况,本发明实施例设置各个异常检测模型对应的权重,可以基于不同异常检测场景的需求的灵活应用多个异常检测模型;另外,数据监控系统自动确定各个异常检测模型对应的权重,不需要用户配置,简化操作,降低使用门槛。
122.可选的,所述基于所述告警规则中的异常检测模型进行异常检测的步骤103包括:
123.获取所述检测结果为异常的所述各个异常检测模型对应的权重;
124.若所述各个异常检测模型的票数权重之和超出大于预设值,则确定数据异常。
125.在选择需要融合的异常检测模型、异常检测模型票数等参数时候,数据监控系统系统可以根据回溯周期内数据的某些特征指标判断其更符合静态、差分还是动态模型,然后向用户推荐多个异常检测模型以及对应的权重。示例性的,如图3所示,数据监控系统推荐了差分阈值(自定义)、差分阈值(自动计算)、静态阈值(自动计算)以及静态阈值(自定义)对应的多种异常检测模型以及对应的权重。
126.另外,在数据监控系统推荐多个异常检测模型以及对应的权重的基础上,用户可以更改数据监控系统推荐的参数。用户可以为每个异常检测模型设置自己的告警上下限、灵敏度(灵敏度越高,阈值范围越窄,越容易产生告警)、回溯周期(使用多长时间的训练数据)等,并为每个模型分配权重(即票数),最后定义总票数中满足几票后进行告警。
127.基于用户选择操作,从推荐的异常检测模型中选择至少两个异常检测模型,确定检测结果为异常的各个异常检测模型;获取所述各个异常检测模型的票数;若所述各个异常检测模型的票数之和超出预设值,则判定数据异常。本发明实施例中,用户创建告警规则可以按需同时使用多个异常检测模型,并将超出阈值范围的每个模型的票数相加,以总票数的值是否超过用户设定值来确定是否告警。例如,判断网络流量这个指标是否异常,由于网络流量它可能具有每天不同时间段规律分布这一动态模型特征,也可能会因突发事件导致突升突降的差分模型特征,因此,为了准确检测网络流量的异常情况,采用多个模型融合方式进行检测,即采用动态模型、差分模型融合进行检测。
128.可选的,所述基于用户的配置操作,生成告警规则的步骤102还包括:
129.基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值。
130.其中,所述阈值包括以下至少一种:静态阈值、差分阈值和动态阈值。
131.具体的,数据监控系统可以基于告警规则中的异常检测模型以及历史指标序列,来计算所述异常检测模型对应的阈值。另外,用于判断是否异常的异常检测阈值可以为用户设置的阈值。需要说明的是,基于阈值来源不同,异常检测模型还可以分为:静态阈值(自定义)、系统预置静态阈值(自动计算)、自定义差分阈值(自定义)系统预置差分阈值(自动计算)、动态阈值。
132.其中,静态阈值关注指标值是否突破固定数值,适用通常在固定范围内波动的指
标序列,常见的适用于静态阈值的指标有:交易错误率、交易失败量、异常日志量、超时、空指针异常及数据库异常等。差分阈值关注指标值是否发生突变,适用不规则变化的指标序列,常见的适用于差分阈值的指标有:心率、磁盘io、网络流量等。动态阈值关注指标值是否打破周期性变化,适用通常按照天、周或者月等为周期有规律的波动的指标序列,常见的适用于动态阈值的指标有:平均耗时、成功率、网络流量、cpu使用率、用户访问量、数据库连接量等。
133.可选的,所述确定与所述异常检测模型对应的阈值的步骤包括:
134.基于所述告警规则中的异常检测模型类型,确定阈值类型;
135.根据所述阈值类型以及所述历史指标序列,确定所述阈值。
136.具体的,在数据监控系统计算阈值或者用户自定义阈值时,实际上是先根据告警规则中的异常检测模型类型确定阈值类型,例如静态阈值、差分阈值和动态阈值。在确定阈值类型后,根据历史指标序列,采用异常检测模型对应的异常检测算法计算阈值。
137.可选的,所述根据所述阈值类型以及所述历史指标序列,确定所述阈值的步骤包括:
138.根据所述阈值的类型,确定用于计算阈值的历史指标序列范围;
139.根据所述历史指标序列范围获取对应的目标指标序列;
140.根据所述目标指标序列计算所述阈值。
141.具体的,基于指标序列计算阈值的方式如下:根据阈值类型确定检测数据的回溯周期,确定回溯周期内的历史指标序列范围,进而从历史指标序列范围获取对应的目标指标序列确定计算阈值的检测数据。根据目标指标序列采用异常检测算法估算出大部分数据所处在的一个区间值,即异常检测的阈值,区间的上下界即上下界阈值,如果被检测指标数据(静态和动态是指标数据本身,差分指的是指标差分值)突破此阈值则视为异常。本发明实施例中异常检测算法基于的数据统计分析方法包括但不限于:高斯分布模型、箱型算法等。例如,在高斯分布中,99.73%的数据都在偏离mean 3个σ(standard deviation标准差)的范围内,如果某些数据到均数的距离超过这个范围,则认为是异常的。又例如,异常检测算法采用箱形图(boxplot)和分位差,让异常检测算法模型更加适用于偏态数据分布。同时,添加阈值修正(不大于最大值,不小于最小值),避免出现数值全部为正数,而阈值为负数的情况。本发明异常检测算法优先采用箱形图(boxplot)和分位差。历史数据往往存在个别极端值(异常值),这些极端值影响检测,因此通常需要剔除。箱形图对极端值不敏感,采用箱形图对异常的点进行预测,不需要做极端值剔除处理,可以有效的规避不合理阈值的出现。
142.其中,被检测数据特征的不同,其适用的异常检测模型类型不同,不同异常检测模型对于指标变化情况关注点不同,因此,不同异常检测模型,选择训练数据的方式或范围不同。进一步的,在估算阈值时使用的数据统计分析方法不做限定。本发明实施例优选在估算阈值时采用箱型图。
143.可选的,所述根据所述目标指标序列计算所述阈值的步骤包括:
144.分别计算所述目标指标序列中上限的中位数和最小值,以及,下限的中位数和最大值;
145.根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限
阈值和下限阈值。
146.可选的,所述根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值的步骤之后,所述方法还包括:
147.对计算出的所述上限阈值和所述下限阈值分别进行修正。
148.可选的,所述对计算出的所述上限阈值和所述下限阈值分别进行修正的步骤包括:
149.若所述目标指标序列的最大值小于计算出来的所述上限阈值,则将所述目标指标序列的最大值作为所述上限阈值;
150.若所述目标指标序列的最小值大于计算出来的所述下限阈值,则将所述目标指标序列的最小值作为所述下限阈值。
151.具体的,静态阈值关注指标值是否突破固定数值,适用通常在固定范围内波动的指标序列。在选择训练数据时,选择某固定范围内的数据,例如“选取历史所有数据,并选取top 10%的数据进行上限(或下限)估计。如图4所示的静态阈值估计流程图。发明实施例在计算阈值上下界时采用上下限分别预测,根据动态/静态/差分阈值数据的特点,分别选定排序后的数据,进行部分截取,用top n%来预估上限(下限同理)。
152.差分阈值关注指标值是否发生突变,适用不规则变化的指标序列。如图5所示的差分阈值估计流程图。其算法类似于静态阈值,选取历史所有的差分值进行估计。但是,突升突降型数据的特点是,其差值大量存在于0附近,故此处的逻辑是,只采集波动较大的数据(top 1.67%)进行观测,即,选择所有差分值从大到小排序后,前1.67%作为波动较大的数据。
153.动态阈值关注指标值是否打破周期性变化,适用通常按照天为周期有规律的波动的指标序列。如图6所示的动态阈值估计流程图。其算法为“选取历史同时刻及周围几个时刻”的值进行估值,若以30天数据量为例,则对单一时刻的历史数据,取其前后5个点,则可收集到300左右个点,故取top 30%的数据,对其分布进行阈值估计。
154.可选的,所述基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值的步骤还包括:
155.计算指定历史时间范围内的历史指标序列的关键特征值;
156.基于所述关键特征值计算所述阈值。
157.具体的,本发明实施例中,在计算静态和差分阈值时不再查询回溯周期内的所有训练数据,而是计算指定历史时间范围内(一般为每天计算前一天的关键特征值)每一天指标序列的关键特征值,然后基于所述关键特征值计算阈值。由于计算阈值时只需要根据回溯周期内的这些关键特征值确定用于计算阈值的历史指标序列,大大减少查询数据量。
158.可选的,所述基于所述告警规则中的异常检测模型进行异常检测的步骤102之后,所述方法还包括:
159.根据异常检测结果和所述告警规则中的告警通知,输出告警消息。
160.具体的,所述告警通知包括以下至少一项:开始告警通知、持续告警通知和结束告警通知。
161.用户还可以在告警规则中设置告警通知的发送方式:kafka或者邮件通知;并决定告警时机:开始、持续或者是结束告警时发送通知,以及通知内容;如果持续告警时间过长,
可以选择以一定时间间隔减少持续通知的次数。如果设置的告警条件是异常立即告警,则当前时间点异常则立即告警,如果设置的是连续n个异常立即告警,则当前时间点和往前n

1个时间粒度的点都异常才告警。
162.可选的,所述基于用户的配置操作,生成告警规则102的步骤之前,所述方法还包括:
163.基于所述告警规则中检测数据的时效性确定异常检测方式;
164.所述异常检测方式包括以下至少一种:实时消费、分钟定时和计划调度。
165.具体的,分钟定时的告警判定的指标数据来源是时序数据库(opentsdb或者prometheus),这些数据可以通过时序数据库进行再次筛选和聚合。在此种检测方式下,告警系统需要每分钟去时序数据库查询指标作为检测数据。由于此种检测方式需要等待实时指标数据先存入时序数据库,并且opentsdb有向后聚合的特性,故告警判定至少有一分钟左右的延时,此外从指标库读取检测数据时可以对源数据做一定的聚合,故它适用于对时效性有一定要求但不是特别高、且需要对检测指标做一定聚合的告警。实时消费的告警判定是通过直接监听kafka拿到实时指标数据进行告警判定,同时这些指标数据也可以存入时序数据库。此种检测方式适用于对时效性要求较高且不需要再对源数据做聚合的告警。如果需要对保存在时序数据库中的历史指标数据补跑阈值和告警,则可以使用计划调度的检测方式。比如某些指标数据不是实时接入告警系统中,而是每天晚上0点后将前一天的数据存入时序数据库中,则用户可以定义一个检测方式为计划调度的告警规则,利用定时任务在每天收到数据之后跑出前一天指标数据的阈值和告警。
166.本发明实施例中,减少了需要查询的场合,增加了实时消费的检测方式,不需要再像分钟定时的检测方式那样去时序数据库查询指标值,而是直接从kafka接入指标。另外将实时计算时需要的阈值预先缓存。
167.示例性的,本发明实施例采用分布式框架实现数据监控。如图7所示,为本发明实施例的单节点的主要组件交互框架图。其中,rulereaderactor:负责同步数据库中所有的告警规则,整个集群只有一个单例,按照一致性哈希算法发送规则。mmlactor:与mmlapi系统交互接口,每个节点上一个实例。proxyactor:接受规则并调度此节点上的所有任务,每个节点上最多一个实例。evalactor:负责查询判断输出告警,每个检测方式为分钟定时或实时消费的规则一个实例,被按照一致性哈希算法路由。kafkasinkactor:负责输出所有告警消息到kafka。thresholdactor:用于计算指标阈值。prometheusactor:查询prometheus的指标。opentsdbactor:查询opentsdb的指标和插入阈值。elasticsearchactor:用于插入和查询promethous的阈值。web:对外部系统提供交互接口。具体的,如图8所示的分钟定时&实时告警规则运行时序图,图9为实时告警细节时序图。整个集群中唯一的rulereaderactor每10秒去告警规则管理服务mmlapi获取所有检测方式为分钟定时或者实时告警的告警规则的信息,然后按照告警规则id的哈希值分发到每个节点的proxyactor上。proxyactor为自己被分配的每一个告警规则建立一个evalactor,同时管理它们的生命周期,如果超过一定时间没有收到rulereader发来的告警规则的心跳,则停止该规则对应的evalactor。这样的话,节点个数可以任意增加以应对更多的告警规则。如果在使用过程中有任意节点挂了,告警系统会自动发现并将告警规则重新发送至运行的节点上的proxyactor管理,保证了告警系统的高可用性。而evalactor在启动期间不停接收从kafka
发来的指标(实时消费)或者从opentsdb查询最新指标数据(分钟定时),并根据自己缓存好的每个模型的阈值对这些数据做告警判断,若其因某些原因没有收到过thresholdactor发来缓存的阈值,则会自己去opentsdb查询所有阈值并缓存。
168.具体的,如图10所示的阈值生成时序图。如同时需要为10条告警规则生成阈值,每条告警规则的检测指标含有2万个序列,且叠加了差分、静态、动态模型,每种异常检测模型的训练数据时间范围不同,则生成这10条告警规则的阈值的命令会发送到任意一个节点上的web服务端模块rulecontroller中,web服务端模块rulecontroller去opentsdb查询这10条告警规则各自的指标的所有序列,然后将所有序列按20个为一组(共1000*10组),均衡分发到所有节点上的thresholdactor上,thresholdacotor每收到一组序列,则再按照告警规则的模型分组(共1000*10*3组),去opentsdb查询其各自回溯时间内的指标数据,然后缓存起来,根据模型计算出相应每个序列的阈值,然后通过opentsdbactor存入opentsdb,同时按照规则id的哈希值将这一组的阈值发送给对应规则所在节点的proxyactor,再由proxyactor将其转发给本节点上对应规则的evalactor进行缓存。
169.图11为计划调度告警时序图。计划调度告警执行过程类似于阈值生成,主要多了在thresholdactor计算出阈值之后再计算告警的过程。
170.本发明实施例可以对分钟级以上的指标数据实现实时、准实时以及历史数据的异常检测和告警。且本发明实施例由于使用了分布式框架,并优化了各类阈值存储方式,支持十万序列级别的并发,节省了计算资源,提高了告警效率。本发明实施例通过将实时监测告警并将告警消息按需发送至不同渠道,并按需进行压缩,从而大大提高了业务人员处理告警的效率。
171.请参照图12,本发明实施例提供的数据监控系统1200还包括:
172.显示模块1201,用于显示告警规则配置界面;
173.生成模块1202,用于基于用户的配置操作,生成告警规则;
174.检测模块1203,用于基于所述告警规则中的异常检测模型进行异常检测;其中,所述告警规则中包括至少两个异常检测模型。
175.可选的,所述数据监控系统1200还包括:
176.输出模块,用于根据所述异常检测模型的异常检测结果和所述告警规则中的告警通知,输出告警消息。
177.可选的,所述异常检测模型包括以下至少一种:
178.静态阈值模型、差分阈值模型和动态阈值模型。
179.可选的,所述生成模块1202包括:
180.推荐子模块,用于基于用户设置的检测数据的特征指标,推荐异常检测模型;
181.第一确定子模块,用于基于用户的输入操作,确定所述告警规则中的异常检测模型。
182.可选的,所述第一确定子模块具体用于:
183.基于所述特征指标,确定各个异常检测模型对应的权重。
184.可选的,所述第一确定子模块具体用于:
185.基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值。
186.可选的,所述阈值包括以下至少一种:静态阈值、差分阈值和动态阈值。
187.可选的,所述第一确定子模块具体还用于:
188.基于所述告警规则中的异常检测模型类型,确定阈值类型;
189.根据所述阈值类型以及所述历史指标序列,确定所述阈值。
190.可选的,所述第一确定子模块具体还用于:
191.根据所述阈值的类型,确定用于计算阈值的历史指标序列范围;
192.根据所述历史指标序列范围获取对应的目标指标序列;
193.根据所述目标指标序列计算所述阈值。
194.可选的,所述第一确定子模块执行所述根据所述目标指标序列计算所述阈值的步骤具体用于:
195.分别计算所述目标指标序列中上限的中位数和最小值,以及,下限的中位数和最大值;
196.根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值。
197.可选的,所述第一确定子模块具体还用于:
198.所述根据所述上限的中位数和最小值,以及,所述下限中位数和最大值,分别计算上限阈值和下限阈值之后,对计算出的所述上限阈值和所述下限阈值分别进行修正。
199.可选的,所述第一确定子模块执行所述对计算出的所述上限阈值和所述下限阈值分别进行修正的步骤具体用于:
200.若所述目标指标序列的最大值小于计算出来的所述上限阈值,则将所述目标指标序列的最大值作为所述上限阈值;
201.若所述目标指标序列的最小值大于计算出来的所述下限阈值,则将所述目标指标序列的最小值作为所述下限阈值。
202.可选的,所述检测模块1203包括:
203.获取子模块,用于获取所述检测结果为异常的所述各个异常检测模型对应的权重;
204.第二确定子模块,用于若所述各个异常检测模型的权重之和大于预设值,则确定数据异常。
205.可选的,所述告警通知包括以下至少一项:开始告警通知、持续告警通知和结束告警通知。
206.可选的,所述第一确定子模块执行所述基于所述告警规则中的异常检测模型以及历史指标序列,确定与所述异常检测模型对应的阈值的步骤具体用于:
207.计算指定历史时间范围内的历史指标序列的关键特征值;
208.基于所述关键特征值计算所述阈值。
209.可选的,所述数据监控系统1200还包括:
210.获取模块,用于基于所述告警规则中的异常检测方式获取检测数据;
211.所述异常检测方式包括以下至少一种:实时消费、分钟定时和计划调度。
212.本发明实施例提供一种数据监控系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上
述实施例所述的数据监控方法的步骤。
213.本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的数据监控方法的步骤。
214.本发明实施例还提供一种可读存储介质,可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据监控方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read

only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
215.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
216.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
217.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1