数据流处理方法、装置、服务器及存储介质转让专利

申请号 : CN202111594002.4

文献号 : CN113986986B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苗功勋孙强吕飞扬张海文夏徐鹏

申请人 : 南京中孚信息技术有限公司

摘要 :

本发明提供一种数据流处理方法、装置、服务器及存储介质,涉及数据处理技术领域。包括:获取输入数据流,若确定输入数据流包括规则流数据,根据规则流数据确定目标运行状态图;将原始规则对应的原始运行状态图切换为目标运行状态图;根据目标运行状态图,对数据流数据进行处理,确定是否触发事件报警。根据规则流数据确定目标运行状态图,将原始运行状态图切换为目标运行状态图,便实现了对于运行状态图的更新,即实现了对于处理规则的更新,无需进行重启,基于目标运行状态图便可以直接对数据流进行处理,以确定是否触发事件报警,无需重启便可实现对于规则的更新,使得规则更新更加方便、快捷,提高了更新规则的效率。

权利要求 :

1.一种数据流处理方法,其特征在于,包括:获取输入数据流,所述输入数据流中包括:数据流数据和/或规则流数据;

若确定所述输入数据流包括所述规则流数据,根据所述规则流数据确定目标运行状态图;

将原始规则对应的原始运行状态图切换为所述目标运行状态图,所述原始运行状态图和所述目标运行状态图均用于表征各个规则之间的运行逻辑;

根据所述目标运行状态图,对所述数据流数据进行处理,确定是否触发事件报警;

所述根据所述规则流数据确定目标运行状态图,包括:对所述规则流数据进行解析,得到解析后的规则流数据;

根据所述解析后的规则流数据,生成目标对象,所述目标对象用于表征编译后的规则信息;

根据所述目标对象,生成所述目标运行状态图。

2.根据权利要求1所述的方法,其特征在于,所述根据所述目标对象,生成所述目标运行状态图,包括:

根据所述目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成所述目标运行状态图。

3.根据权利要求2所述的方法,其特征在于,所述根据所述目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成所述目标运行状态图,包括:根据所述目标对象中所包含的各个节点的规则信息、各个节点的处理顺序、以及关联节点之间的关联规则信息,生成所述目标运行状态图。

4.根据权利要求1所述的方法,其特征在于,所述将原始规则对应的原始运行状态图切换为所述目标运行状态图之前,所述方法还包括:将当前的处理状态信息保存至预设位置;

所述根据所述目标运行状态图,对所述数据流数据进行处理,包括:根据所述目标运行状态图和所述当前的处理状态信息,对所述数据流数据进行处理。

5.根据权利要求4所述的方法,其特征在于,在所述将当前的处理状态信息保存至预设位置之后,所述方法还包括:

清除所述当前的处理状态信息所在的队列,以及缓存信息;

将所有状态设置为初始状态。

6.根据权利要求1所述的方法,其特征在于,所述事件报警的类型包括下述中的至少一类:统计类事件报警、攻击链类事件报警、多源关联类事件报警、聚合类事件报警;

其中,所述统计类事件报警、攻击链类事件报警、多源关联类事件报警均为直接基于所述数据流数据所触发的事件报警;

所述聚合类事件报警为基于所述统计类事件报警、所述攻击链类事件报警、所述多源关联类事件报警中的至少一类事件报警所触发的事件报警。

7.一种数据流处理装置,其特征在于,包括:获取模块,用于获取输入数据流,所述输入数据流中包括:数据流数据和/或规则流数据;

确定模块,用于若确定所述输入数据流包括所述规则流数据,根据所述规则流数据确定目标运行状态图;

切换模块,用于将原始规则对应的原始运行状态图切换为所述目标运行状态图,所述原始运行状态图和所述目标运行状态图均用于表征各个规则之间的运行逻辑;

处理模块,用于根据所述目标运行状态图,对所述数据流数据进行处理,确定是否触发事件报警;

所述确定模块,还用于对所述规则流数据进行解析,得到解析后的规则流数据;根据所述解析后的规则流数据,生成目标对象,所述目标对象用于表征编译后的规则信息;根据所述目标对象,生成所述目标运行状态图。

8.一种服务器,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1‑6任一项所述的数据流处理方法。

9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1‑6任一项所述的数据流处理方法。

说明书 :

数据流处理方法、装置、服务器及存储介质

技术领域

[0001] 本发明涉及数据处理技术领域,具体而言,涉及一种数据流处理方法、装置、服务器及存储介质。

背景技术

[0002] Flink 是一个流数据计算引擎,根据提交的任务,用于处理流式连续不断输入的数据。采用Flink中的Flink CEP(Complex Event Processing,复杂事件处理)插件可以确
定数据对应的发生事件,Flink CEP插件通常基于预设的规则确定发生事件。
[0003] 相关技术中,基于配置信息配置规则,当需要更改规则时,修改配置信息后得到新的配置信息,重新启动作业,可以实现对于规则的更新。
[0004] 但是,相关技术中,更新规则时,需要重新启动作业,降低了更新规则的效率,不便于规则更新。

发明内容

[0005] 本发明的目的在于,针对上述现有技术中的不足,提供一种数据流处理方法、装置、服务器及存储介质,以便解决相关技术中更新规则时,需要重新启动作业,降低了更新
规则的效率,不便于规则更新的问题。
[0006] 为实现上述目的,本发明实施例采用的技术方案如下:
[0007] 第一方面,本发明实施例提供了一种数据流处理方法,包括:
[0008] 获取输入数据流,所述输入数据流中包括:数据流数据和/或规则流数据;
[0009] 若确定所述输入数据流包括所述规则流数据,根据所述规则流数据确定目标运行状态图;
[0010] 将原始规则对应的原始运行状态图切换为所述目标运行状态图;
[0011] 根据所述目标运行状态图,对所述数据流数据进行处理,确定是否触发事件报警。
[0012] 可选的,所述根据所述规则流数据确定目标运行状态图,包括:
[0013] 对所述规则流数据进行解析,得到解析后的规则流数据;
[0014] 根据所述解析后的规则流数据,生成目标对象,所述目标对象用于表征编译后的规则信息;
[0015] 根据所述目标对象,生成所述目标运行状态图。
[0016] 可选的,所述根据所述目标对象,生成所述目标运行状态图,包括:
[0017] 根据所述目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成所述目标运行状态图。
[0018] 可选的,所述根据所述目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成所述目标运行状态图,包括:
[0019] 根据所述目标对象中所包含的各个节点的规则信息、各个节点的处理顺序、以及关联节点之间的关联规则信息,生成所述目标运行状态图。
[0020] 可选的,所述将原始规则对应的原始运行状态图切换为所述目标运行状态图之前,所述方法还包括:
[0021] 将当前的处理状态信息保存至预设位置;
[0022] 所述根据所述目标运行状态图,对所述数据流数据进行处理,包括:
[0023] 根据所述目标运行状态图和所述当前的处理状态信息,对所述数据流数据进行处理。
[0024] 可选的,在所述将当前的处理状态信息保存至预设位置之后,所述方法还包括:
[0025] 清除所述当前的处理状态信息所在的队列,以及缓存信息;
[0026] 将所有状态设置为初始状态。
[0027] 可选的,所述事件报警类型包括下述中的至少一类:统计类事件报警、攻击链类事件报警、多源关联类事件报警、聚合类事件报警;
[0028] 其中,所述统计类事件报警、攻击链类事件报警、多源关联类事件报警均为直接基于所述数据流数据所触发的事件报警;
[0029] 所述聚合类事件报警为基于所述统计类事件报警、所述攻击链类事件报警、所述多源关联类事件报警中的至少一类事件报警所触发的事件报警。
[0030] 第二方面,本发明实施例还提供了一种数据流处理装置,包括:
[0031] 获取模块,用于获取输入数据流,所述输入数据流中包括:数据流数据和/或规则流数据;
[0032] 确定模块,用于若确定所述输入数据流包括所述规则流数据,根据所述规则流数据确定目标运行状态图;
[0033] 切换模块,用于将原始规则对应的原始运行状态图切换为所述目标运行状态图;
[0034] 处理模块,用于根据所述目标运行状态图,对所述数据流数据进行处理,确定是否触发事件报警。
[0035] 可选的,所述确定模块,还用于对所述规则流数据进行解析,得到解析后的规则流数据;根据所述解析后的规则流数据,生成目标对象,所述目标对象用于表征编译后的规则
信息;根据所述目标对象,生成所述目标运行状态图。
[0036] 可选的,所述确定模块,还用于根据所述目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成所述目标运行状态图。
[0037] 可选的,所述确定模块,还用于根据所述目标对象中所包含的各个节点的规则信息、各个节点的处理顺序、以及关联节点之间的关联规则信息,生成所述目标运行状态图。
[0038] 可选的,所述装置还包括:
[0039] 保存模块,用于将当前的处理状态信息保存至预设位置;
[0040] 所述处理模块,还用于根据所述目标运行状态图和所述当前的处理状态信息,对所述数据流数据进行处理。
[0041] 可选的,所述装置还包括:
[0042] 清除模块,用于清除所述当前的处理状态信息所在的队列,以及缓存信息;
[0043] 设置模块,用于将所有状态设置为初始状态。
[0044] 可选的,所述事件报警类型包括下述中的至少一类:统计类事件报警、攻击链类事件报警、多源关联类事件报警、聚合类事件报警;
[0045] 其中,所述统计类事件报警、攻击链类事件报警、多源关联类事件报警均为直接基于所述数据流数据所触发的事件报警;
[0046] 所述聚合类事件报警为基于所述统计类事件报警、所述攻击链类事件报警、所述多源关联类事件报警中的至少一类事件报警所触发的事件报警。
[0047] 第三方面,本发明实施例还提供了一种服务器,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第
一方面任一项所述的数据流处理方法。
[0048] 第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面任一项所述的数据
流处理方法。
[0049] 本发明的有益效果是:本发明实施例提供一种数据流处理方法,包括:获取输入数据流,输入数据流中包括:数据流数据和/或规则流数据;若确定输入数据流包括规则流数
据,根据规则流数据确定目标运行状态图;将原始规则对应的原始运行状态图切换为目标
运行状态图;根据目标运行状态图,对数据流数据进行处理,确定是否触发事件报警。在确
定输入数据流包括规则流数据时,根据规则流数据确定目标运行状态图,即新的运行状态
图,将原始运行状态图切换为目标运行状态图,便实现了对于运行状态图的更新,即实现了
对于处理规则的更新,无需进行重启,基于目标运行状态图便可以直接对数据流进行处理,
以确定是否触发事件报警,无需重启便可实现对于规则的更新,使得规则更新更加方便、快
捷,提高了更新规则的效率。

附图说明

[0050] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对
范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
[0051] 图1为本发明实施例提供的一种数据流处理方法的流程示意图;
[0052] 图2为本发明实施例提供的一种数据流处理方法的流程示意图;
[0053] 图3为本发明实施例提供的一种数据流处理方法的流程示意图;
[0054] 图4为本发明实施例提供的一种数据流处理方法的流程示意图;
[0055] 图5为本发明实施例提供的一种数据流处理装置的结构示意图;
[0056] 图6为本发明实施例提供的一种服务器的结构示意图。

具体实施方式

[0057] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。
[0058] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通
技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范
围。
[0059] 在本申请的描述中,需要说明的是,若出现术语“上”、“下”、等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置
关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具
有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
[0060] 此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在
适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那
些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他
的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列
出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固
有的其它步骤或单元。
[0061] 需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
[0062] Flink 是一个流数据计算引擎,根据提交的任务,用于处理流式连续不断输入的数据,具有高吞吐低延迟的特点。采用Flink中的Flink CEP(Complex Event Processing,
复杂事件处理)插件可以确定数据对应的发生事件,Flink CEP插件通常基于预设的规则确
定发生事件。
[0063] 其中,CEP允许在事件存储之前对事件进行连续处理,以便根据一组预定义的规则识别有意义的事件或事件组合。事件被定义为发生的任何事情,例如状态变化。Flink CEP 
是一套极具通用性、易于使用的实时流式事件处理方案。继承了 Flink 高吞吐的特点;事
件支持存储到外部,可以支持较长跨度的时间窗;支持超时处理,有更好的时间处理算子。
[0064] 相关技术中,基于配置信息配置规则,当需要更改规则时,修改配置信息后得到新的配置信息,重新启动作业,可以实现对于规则的更新。但是,相关技术中,更新规则时,需
要重新启动作业,降低了更新规则的效率,不便于规则更新。
[0065] 本申请实施例提供一种数据流处理方法,在确定输入数据流包括规则流数据时,根据规则流数据确定目标运行状态图,即新的运行状态图,将原始运行状态图切换为所述
目标运行状态图,便实现了对于运行状态图的更新,即实现了对于处理规则的更新,无需进
行重启,基于目标运行状态图便可以直接对数据流进行处理,以确定是否触发事件报警,无
需重启便可实现对于规则的更新,使得规则更新更加方便、快捷,提高了更新规则的效率。
[0066] 以下以服务器为执行主体,对本申请实施例提供的一种数据流处理方法进行解释说明。
[0067] 图1为本发明实施例提供的一种数据流处理方法的流程示意图,如图1所示,该方法可以包括:
[0068] S101、获取输入数据流,输入数据流中包括:数据流数据和/或规则流数据。
[0069] 其中,数据流数据和/或规则流数据,是指仅包括数据流数据,或者,仅包括规则流数据,或者,同时包括数据流数据和规则流数据等三种情况。
[0070] 在本申请实施例中,若输入数据流中同时包括:数据流数据和规则流数据;服务器可以对数据流数据和规则流数据进行组合,得到输入数据流。其中,组合得到数据也可以称
为广播流数据。
[0071] 需要说明的是,数据流数据可以从预设数据结构中获取,例如,预设数据结构数据MQ(Message Queue,消息队列)中获取数据流。规则流数据可以基于新的规则进行确定,当
需要对原始规则进行更新时,可以基于新的规则形成规则数据流。
[0072] S102、若确定输入数据流包括规则流数据,根据规则流数据确定目标运行状态图。
[0073] 其中,服务器可以根据输入数据流中数据格式进行判断,确定输入数据流为规则流数据还是数据流数据。
[0074] 在一些实施方式中,服务器中可以预设有监听器,采用监听器判断输入数据流的格式是否为预设的规则流数据格式,若是,则确定输入数据流包括规则流数据,根据规则流
数据计算得到目标运行状态图。
[0075] 在实际应用中,可以基于Fink CEP进行实现,则可以修改Fink CEP的码源,实现监听器的设置。
[0076] S103、将原始规则对应的原始运行状态图切换为目标运行状态图。
[0077] 其中,运行状态图用于表征各个规则之间的运行逻辑。
[0078] 另外,服务器可以对原始运行状态图进行删除处理,将目标运行状态图作为新的运行状态图,实现了对于处理规则的更新。
[0079] S104、根据目标运行状态图,对数据流数据进行处理,确定是否触发事件报警。
[0080] 在一些实施方式中,服务器可以根据目标运行状态图所表征的至少一项规则,对数据流数据进行统计,得到实时统计结果,判断实时统计结果是否满足规则对应的触发条
件,若满足,则确定触发事件报警。
[0081] 在本申请实施例中,复杂事件处理用于处理实时数据并在事件流到达时从事件流中提取信息,并根据定义的规则来判断事件是否匹配,如果匹配则会触发新的事件做出响
应。除了支持单个事件的简单无状态的模式匹配(例如基于事件中的某个字段进行筛选过
滤),也可以支持基于关联/聚合/时间窗口等多个事件的复杂有状态模式的匹配(例如判断
用户发生下单事件后 30 分钟内是否有支付事件)。
[0082] 综上所述,本发明实施例提供一种数据流处理方法,包括:获取输入数据流,输入数据流中包括:数据流数据和/或规则流数据;若确定输入数据流包括规则流数据,根据规
则流数据确定目标运行状态图;将原始规则对应的原始运行状态图切换为目标运行状态
图;根据目标运行状态图,对数据流数据进行处理,确定是否触发事件报警。在确定输入数
据流包括规则流数据时,根据规则流数据确定目标运行状态图,即新的运行状态图,将原始
运行状态图切换为目标运行状态图,便实现了对于运行状态图的更新,即实现了对于处理
规则的更新,无需进行重启,基于目标运行状态图便可以直接对数据流进行处理,以确定是
否触发事件报警,无需重启便可实现对于规则的更新,使得规则更新更加方便、快捷,提高
了更新规则的效率。
[0083] 可选的,图2为本发明实施例提供的一种数据流处理方法的流程示意图,如图2所示,上述S102中根据规则流数据确定目标运行状态图的过程,可以包括:
[0084] S201、对规则流数据进行解析,得到解析后的规则流数据。
[0085] 其中,若包括规则流数据,则可以认为该规则流数据为更新的规则,可以对该规则流数据进行解析,以实现解析规则,得到解析后的规则流数据。
[0086] S202、根据解析后的规则流数据,生成目标对象。
[0087] 其中,目标对象可以用于表征编译后的规则信息。
[0088] 在一些实施方式中,服务器可以根据解析后的规则流数据,反射生成目标对象。目标对象可以用于表征正则表达式编译后的规则信息。
[0089] 例如,目标对象可以为Pattern对象,Pattern对象是一个正则表达式经编译后的表现模式,将给定的正则表达式(规则)编译并赋予给Pattern类,可以得到Pattern对象。
[0090] S203、根据目标对象,生成目标运行状态图。
[0091] 在一些实施方式中,目标对象可以为Pattern对象,服务器可以基于Pattern对象,生成目标运行状态图。
[0092] 可选的,上述S203中根据目标对象,生成目标运行状态图的过程,可以包括:
[0093] 根据目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成目标运行状态图。
[0094] 其中,一个节点可以代表一个规则,各个节点的处理顺序表示各个规则的处理先后顺序。当然,服务器也可以支持基于多个节点进行并行处理。
[0095] 在一些实施方式中,服务器可以根据中所包含的各个节点的规则信息,确定各个节点;根据目标对象中所包含的各个节点的处理顺序,确定节点之间的处理排序,基于各个
节点以及节点之间的处理排序,生成目标运行状态图。
[0096] 例如,节点1对应的规则可以为:设备的CPU(central processing unit,中央处理器)使用率连续30秒超过90%,则发出报警。节点2对应的规则可以为:设备的CPU温度超过预
设温度阈值,则发出报警。
[0097] 对应的处理排序可以为:先基于节点1对数据流数据处理,后基于节点2对数据流数据进行处理;或者,先基于节点2对数据流数据处理,后基于节点2对数据流数据进行处
理;或者,并行根据节点1和节点2对数据流数据处理。
[0098] 可选的,根据目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成目标运行状态图,包括:
[0099] 根据目标对象中所包含的各个节点的规则信息、各个节点的处理顺序、以及关联节点之间的关联规则信息,生成目标运行状态图。
[0100] 其中,关联节点之间的关联规则信息表示关联的规则之间的跳转条件,即关联的节点之间的跳转条件。若数据流数据针对关联的节点均产生报警事件,则可以触发新的报
警事件。
[0101] 示例的,节点3和节点4分别表示不同的规则,节点3和节点4之间是关联的,两者之间具有跳转条件;可以基于节点3对应的规则对数据流数据进行处理,触发报警后,确定数
据流数据是否满足节点3和节点4之间跳转条件,若满足,则基于节点4对应的规则对数据流
数据进行处理。
[0102] 例如,节点3规则对应的规则为在设备的数据异常时,确定第二目标设备中携带病毒,触发携带病毒报警;节点4规则对应的规则为在设备向其他设备发送异常数据,触发扩
散病毒报警。两者之间的跳转条件可以为设备的标识相同。若数据流数据在节点3和节点4
均触发了事件报警,则可以产生新的事件报警,即触发设备存在威胁报警。
[0103] 可选的,图3为本发明实施例提供的一种数据流处理方法的流程示意图,如图3所示,上述S103中将原始规则对应的原始运行状态图切换为目标运行状态图的过程之前,该
方法还可以包括:
[0104] S301、将当前的处理状态信息保存至预设位置。
[0105] 其中,预设位置可以为预设节点,也可以为预设文件,还可以为其他预设位置,本申请实施例对此不进行具体限制。
[0106] 需要说明的是,当前的处理状态信息可以为服务器基于原始运行状态图对数据流数据进行处理时,所统计的数据,该统计的数据并未触发原始规则对应的报警事件。
[0107] 上述S104中根据目标运行状态图,对数据流数据进行处理的过程,可以包括:
[0108] S302、根据目标运行状态图和当前的处理状态信息,对数据流数据进行处理。
[0109] 在本申请实施例中,目标运行状态图中的规则,需要应用到当前的处理状态信息,则可以根据目标运行状态图和当前的处理状态信息,对数据流数据进行处理;若目标运行
状态图中的规则,不需要应用到当前的处理状态信息,则仅根据目标运行状态图对数据流
数据进行处理即可。
[0110] 示例的,原始规则为:设备的CPU使用率连续40秒超过90%,则发出报警;当前的处理状态信息为设备的CPU使用率连续10秒超过90%,当新的规则为:设备的CPU使用率连续30
秒超过90%,则可以在应用当前的处理状态信息的基础上,采用新的规则对应的目标运行状
态图对数据流数据进行统计处理。
[0111] 可选的,图4为本发明实施例提供的一种数据流处理方法的流程示意图,如图4所示,在上述S301中将当前的处理状态信息保存至预设位置的过程之后,该方法还可以包括:
[0112] S401、清除当前的处理状态信息所在的队列,以及缓存信息。
[0113] S402、将所有状态设置为初始状态。
[0114] 需要说明的是,服务器可以对原始运行状态图的相关信息进行清楚,相关信息包括:当前的处理状态信息所在的队列、缓存信息、以及状态,以便基于目标运行状态图进行
数据流数据的处理。
[0115] 可选的,事件报警类型包括下述中的至少一类:统计类报警事件、攻击链类事件报警、多源关联类事件报警、聚合类事件报警;
[0116] 其中,统计类事件报警、攻击链类事件报警、多源关联类事件报警均为直接基于数据流数据所触发的事件报警;
[0117] 另外,聚合类事件报警为基于统计类事件报警、攻击链类事件报警、多源关联类事件报警中的至少一类报警事件所触发的事件报警。
[0118] 需要说明的是,统计类报警事件是指:根据单一事件规则事件内达到阈值触发告警;攻击链类事件报警是指:根据不同规则事件特定规则提取出新事件触发告警;多源关联
类事件报警是指:接入多个攻击事件源,格式化提取从多源关联中提取新事件触发告警;聚
合类事件报警是指:根据攻击事件所属的二级分类,进行高层次的威胁事件提取。例如,上
述示例中的设备存在威胁报警为聚合类事件报警。
[0119] 在本申请实施例中,对将报警事件进行分类,数据流数据接入时先原始规则,根据事件内置的数据信息判断属于哪个报警事件分类,监测规则定义的事件阈值和顺序提取情
况,根据需要进行进一步的规则更新,在不重启整个计算引擎的情况下,只通过输入新规则
流数据,就可以让动态加载规则,完成事件的动态提取。
[0120] 综上所述,本发明实施例提供一种数据流处理方法,包括:获取输入数据流,输入数据流中包括:数据流数据和/或规则流数据;若确定输入数据流包括规则流数据,根据规
则流数据确定目标运行状态图;将原始规则对应的原始运行状态图切换为目标运行状态
图;根据目标运行状态图,对数据流数据进行处理,确定是否触发事件报警。在确定输入数
据流包括规则流数据时,根据规则流数据确定目标运行状态图,即新的运行状态图,将原始
运行状态图切换为目标运行状态图,便实现了对于运行状态图的更新,即实现了对于处理
规则的更新,无需进行重启,基于目标运行状态图便可以直接对数据流进行处理,以确定是
否触发事件报警,无需重启便可实现对于规则的更新,使得规则更新更加方便、快捷,提高
了更新规则的效率。
[0121] 而且,本申请实施例提供的一种数据流处理方法,也可以基于复杂事件处理的威胁事件动态提取模型来实现,根据自定义的规则模型,根据规则模型内定义的阈值和事件
顺序,利用复杂事件处理引擎,从一个个告警事件中进一步提取出更高层更具体的聚合关
联信息,并且根据实际需求,在不重启流处理计算框架的前提下,对规则模型中的规则进行
实时的更新修改。
[0122] 下述对用以执行本申请所提供的数据流处理方法的数据流处理装置、服务器及存储介质等进行说明,其具体的实现过程以及技术效果参见上述数据流处理方法的相关内
容,下述不再赘述。
[0123] 图5为本发明实施例提供的一种数据流处理装置的结构示意图,如图5所示,该装置可以包括:
[0124] 获取模块501,用于获取输入数据流,所述输入数据流中包括:数据流数据和/或规则流数据;
[0125] 确定模块502,用于若确定所述输入数据流包括所述规则流数据,根据所述规则流数据确定目标运行状态图;
[0126] 切换模块503,用于将原始规则对应的原始运行状态图切换为所述目标运行状态图;
[0127] 处理模块504,用于根据所述目标运行状态图,对所述数据流数据进行处理,确定是否触发事件报警。
[0128] 可选的,所述确定模块502,还用于对所述规则流数据进行解析,得到解析后的规则流数据;根据所述解析后的规则流数据,生成目标对象,所述目标对象用于表征编译后的
规则信息;根据所述目标对象,生成所述目标运行状态图。
[0129] 可选的,所述确定模块502,还用于根据所述目标对象中所包含的各个节点的规则信息,以及各个节点的处理顺序,生成所述目标运行状态图。
[0130] 可选的,所述确定模块502,还用于根据所述目标对象中所包含的各个节点的规则信息、各个节点的处理顺序、以及关联节点之间的关联规则信息,生成所述目标运行状态
图。
[0131] 可选的,所述装置还包括:
[0132] 保存模块,用于将当前的处理状态信息保存至预设位置;
[0133] 所述处理模块,还用于根据所述目标运行状态图和所述当前的处理状态信息,对所述数据流数据进行处理。
[0134] 可选的,所述装置还包括:
[0135] 清除模块,用于清除所述当前的处理状态信息所在的队列,以及缓存信息;
[0136] 设置模块,用于将所有状态设置为初始状态。
[0137] 可选的,所述事件报警类型包括下述中的至少一类:统计类事件报警、攻击链类事件报警、多源关联类事件报警、聚合类事件报警;
[0138] 其中,所述统计类事件报警、攻击链类事件报警、多源关联类事件报警均为直接基于所述数据流数据所触发的事件报警;
[0139] 所述聚合类事件报警为基于所述统计类事件报警、所述攻击链类事件报警、所述多源关联类事件报警中的至少一类事件报警所触发的事件报警。
[0140] 上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0141] 以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个
或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门
阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元
件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central 
Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成
在一起,以片上系统(system‑on‑a‑chip,简称SOC)的形式实现。
[0142] 图6为本发明实施例提供的一种服务器的结构示意图,如图6所示,该服务器可以包括:处理器601、存储器602。
[0143] 存储器602用于存储程序,处理器601调用存储器602存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
[0144] 可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
[0145] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅
仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结
合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的
相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通
信连接,可以是电性,机械或其它的形式。
[0146] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
[0147] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0148] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发
明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器
(英文:Read‑Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简
称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0149] 以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、
等同替换、改进等,均应包含在本发明的保护范围之内。