本技术涉及数据安全领域,尤其涉及一种基于flink的告警方法、装置、设备、系统及介质。
背景技术:
1、随着科技的迅速发展,各种平台上的数据与日俱增,对于数据处理的高效性、告警的实时性、告警配置的灵活性、及时生效性、接收告警信息应用系统的多样性是各企业单位或者平台对自身告警系统的强烈指标要求。
2、现有技术中,将原始数据进行格式化后推送至消息系统kafka中,再利用flink将kafka中的数据取出依据预设的阈值条件进行筛选处理,预设的阈值条件包括对数据进行初筛和用户定制的精细化筛选的阈值条件,再将筛选处理后的数据写入远程字典服务(remote dictionary server,简称:redis)中,再利用promethues从redis中拉取数据,并使用grafana进行数据图表展示和告警。
3、综上所述,现有的告警方法在想要更新阈值条件时,只能停止方法的执行,再修改阈值条件对应的程序代码,导致维护效率较低。
技术实现思路
1、本技术提供一种基于flink的告警方法、装置、设备、系统及介质,用于解决现有的告警方法在想要更新阈值条件时,只能停止方法的执行,再修改阈值条件对应的程序代码,导致维护效率较低的问题。
2、第一方面,本技术提供一种基于flink的告警方法,应用于服务器,所述方法包括:
3、将从数据库中获取的实时交易数据进行主服务字段和子服务字段的组合,得到组合数据,并将所述组合数据存储至消息系统kafka中;
4、通过流处理框架flink,从所述kafka中读取json格式数据,将所述json格式数据注册为一个实体,并将所述实体的字段数据存入自定义表中;
5、从远程字典服务redis中取出预先存入的flink结构化查询语言flink sql脚本,所述flink sql脚本是通过管理控制台设置的对数据进行初筛的第一阈值条件对应的处理脚本;
6、运行所述flink sql脚本对所述自定义表中的字段数据进行初筛和切割,得到初级告警数据;
7、从redis中取出预先存入的规则引擎qlexpress脚本,所述规则引擎qlexpress脚本是通过管理控制台设置的用户定制的对数据精细化筛选的第二阈值条件、告警信息生成方式以及推送方式对应的处理脚本;
8、运行所述qlexpress脚本对所述初级告警数据进行精细化筛选、生成和推送告警信息。
9、在一种具体实施方式中,所述运行所述flink sql脚本对所述自定义表中的字段数据进行初筛和切割,得到初级告警数据,包括:
10、运行所述flink sql脚本,从所述自定义表中获取预设的字段对应的字段数据;
11、根据预设的第一阈值条件对所述字段数据进行初步筛选处理;
12、对初步筛选后的数据按照预设分钟长度颗粒度进行切割,得到所述初级告警数据。
13、在一种具体实施方式中,所述运行所述qlexpress脚本对所述初级告警数据进行精细化筛选、生成和推送告警信息,包括:
14、运行所述qlexpress脚本,根据预设的第二阈值条件对所述初级告警数据进行精细化筛选;
15、根据精细化筛选后的数据和预设的告警信息生成方式,生成所述告警信息;
16、调用预设的应用程序接口api,将所述告警信息推送至所述api对应的应用程序。
17、在一种具体实施方式中,所述方法还包括:
18、接收管理控制台发送的flink sql脚本和qlexpress脚本;
19、将所述管理控制台发送的flink sql脚本和所述管理控制台发送的qlexpress脚本放置在数据库中进行存储;
20、将所述redis中的现有的flink sql脚本和现有的qlexpress脚本更新为所述管理控制台发送的flink sql脚本和所述管理控制台发送的qlexpress脚本,并对所述管理控制台发送的flink sql脚本和所述管理控制台发送的qlexpress脚本设置预设的失效时间。
21、在一种具体实施方式中,所述方法还包括:
22、实时监测所述redis中现有的flink sql脚本和现有的qlexpress脚本的存储时间;
23、若所述存储时间达到预设的失效时间,从数据库中获取flink sql脚本和qlexpress脚本;
24、将所述redis中的现有的flink sql脚本和现有的qlexpress脚本更新为所述从数据库中获取的flink sql脚本和qlexpress脚本,并对所述从数据库中获取的flink sql脚本和qlexpress脚本设置所述失效时间。
25、第二方面,本技术提供一种基于flink的告警装置,包括:
26、数据采集聚合模块,用于将从数据库中获取的实时交易数据进行主服务字段和子服务字段的组合,得到组合数据,并将所述组合数据存储至消息系统kafka中;
27、数据处理模块,用于通过流处理框架flink,从所述kafka中读取json格式数据,将所述json格式数据注册为一个实体,并将所述实体的字段属性数据存入自定义表中;
28、所述数据处理模块,还用于从远程字典服务redis中取出预先存入的flink结构化查询语言flink sql脚本,所述flink sql脚本是通过管理控制台设置的对数据进行初筛的第一阈值条件对应的处理脚本;
29、所述数据处理模块,还用于运行所述flink sql脚本对所述自定义表中的字段属性数据进行初筛和切割,得到初级告警数据;
30、告警推送模块,用于从redis中取出预先存入的规则引擎qlexpress脚本,所述规则引擎qlexpress脚本是通过管理控制台设置的用户定制的对数据精细化筛选的第二阈值条件、告警信息生成方式以及推送方式对应的处理脚本;
31、所述告警推送模块,还用于运行所述qlexpress脚本对所述初级告警数据进行精细化筛选、生成和推送告警信息。
32、在一种具体实施方式中,所述数据处理模块,具体用于:
33、运行所述flink sql脚本,从所述自定义表中获取预设的字段对应的字段数据;
34、根据预设的第一阈值条件对所述字段数据进行初步筛选处理;
35、对初步筛选后的数据按照预设分钟长度颗粒度进行切割,得到所述初级告警数据。
36、在一种具体实施方式中,所述告警推送模块,具体用于:
37、运行所述qlexpress脚本,根据预设的第二阈值条件对所述初级告警数据进行精细化筛选;
38、根据精细化筛选后的数据和预设的告警信息生成方式,生成所述告警信息;
39、调用预设的应用程序接口api,将所述告警信息推送至所述api对应的应用程序。
40、在一种具体实施方式中,所述装置还包括:
41、数据存储模块,用于接收管理控制台发送的flink sql脚本和qlexpress脚本;
42、所述数据存储模块,还用于将所述管理控制台发送的flink sql脚本和所述管理控制台发送的qlexpress脚本放置在数据库中进行存储;
43、所述数据处理模块,还用于将所述redis中的现有的flink sql脚本和现有的qlexpress脚本更新为所述管理控制台发送的flink sql脚本和所述管理控制台发送的qlexpress脚本,并对所述管理控制台发送的flink sql脚本和所述管理控制台发送的qlexpress脚本设置预设的失效时间。
44、在一种具体实施方式中,所述数据处理模块,具体还用于:
45、实时监测所述redis中现有的flink sql脚本和现有的qlexpress脚本的存储时间;
46、若所述存储时间达到预设的失效时间,从数据库中获取flink sql脚本和qlexpress脚本;
47、将所述redis中的现有的flink sql脚本和现有的qlexpress脚本更新为所述从数据库中获取的flink sql脚本和qlexpress脚本,并对所述从数据库中获取的flink sql脚本和qlexpress脚本设置所述失效时间。
48、第三方面,本技术提供一种基于flink的告警系统,包括:
49、服务器和管理控制台;
50、所述服务器用于执行所述第一方面任一项所述的基于flink的告警方法;
51、所述服务器还用于存储已推送的告警信息、flink sql脚本和qlexpress脚本;
52、所述管理控制台,用于管理所述flink sql脚本、所述qlexpress脚本以及所述已推送的告警信息。
53、第四方面,本技术提供一种服务器,包括:
54、处理器,存储器,通信接口;
55、所述存储器用于存储所述处理器的可执行指令;
56、其中,所述处理器配置为经由执行所述可执行指令来执行第一方面任一项所述的基于flink的告警方法。
57、第五方面,本技术提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的基于flink的告警方法。
58、本技术提供的基于flink的告警方法、装置、设备、系统及介质,通过从数据库中获取实时交易数据并进行聚合,再将聚合数据推送至kafka中,利用流处理框架flink从kafka中获取数据后注册实体并将实体的字段数据存入自定义表中。从redis中获取并运行flink结构化查询语言(flink structured query language,简称:flink sql)脚本,对自定义表中的字段数据进行初筛和切割,得到初级告警数据。再从redis中获取并运行qlexpress脚本,对初级告警数据进行精细化筛选、生成和推送告警信息。本方案通过flink sql脚本和qlexpress脚本进行告警,在想要更新阈值条件时,只需要更新flink sql脚本和qlexpress脚本,有效提高了维护效率。