用于合并部分聚合查询结果的系统和方法

文档序号:6484807阅读:268来源:国知局
用于合并部分聚合查询结果的系统和方法
【专利摘要】提供了一种用于合并部分聚合查询结果的系统和方法。确定部分聚合查询结果。以定义的调度和持续时间在多个事件上运行多个查询中的每个查询。识别部分聚合查询结果的键和值。确定是否识别了用于部分聚合查询结果的函数。如果如此,使用该键来确定相关部分聚合查询结果。将部分聚合查询结果与相关部分聚合查询结果进行合并。
【专利说明】 用于合并部分聚合查询结果的系统和方法
【背景技术】
[0001]安全信息/事件管理(SM或者SIEM)的领域通常关心以下内容:1)从网络和联网设备收集反映网络活动和/或设备的操作的数据,以及2)分析数据以增强安全性。例如,能够分析数据以识别对网络或联网设备的攻击以及确定哪个用户或机器是负有责任的。如果攻击正在进行,那么能够执行对策以阻止攻击或减轻由攻击所引起的损害。收集的数据通常起源于由联网设备所生成的消息(诸如事件、警告、或警报)或日志文件中的条目。联网设备包括防火墙、入侵检测系统、和服务器。
[0002]存储每个消息或日志文件条目(“事件”)以供将来使用。安全系统还可以生成诸如相关性事件和审查(audit)事件之类的事件。与消息和日志文件条目一起,这些和其他事件也被存储在磁盘上。在平均客户部署中,可以每秒生成一千个事件。这相当于每天一亿个事件或每月三十亿个事件。对如此大量数据的分析和处理能够在安全系统上引起很重的负载,而引起在报告结果方面的延迟。
【专利附图】

【附图说明】
[0003]通过参考附图可以更好地理解本公开并且使得其多个特征和优势变得明显。
[0004]图1是根据实施例的网络安全系统的拓扑框图。
[0005]图2是根据实施例的用于合并相关部分聚合(aggregated)趋势结果的过程流程图。
[0006]图3A是根据实施例的包括多个管理器中的专用管理器的网络安全系统的拓扑框图。
[0007]图3B是根据实施例的包括多个管理器中的主管理器的网络安全系统的拓扑框图。
[0008]图4是根据实施例的用于基于检测的触发条件来将存留(persisted)的聚合趋势结果与存储器中(in-memory)的聚合趋势结果进行合并的过程流程图。
[0009]图5图示其中可以实现实施例的计算机系统。
【具体实施方式】
[0010]安全系统可以向终端用户提供能够被用来跟踪诸如登录尝试的计数、具有成功和失败登录尝试的顶部用户、顶部入站或出站受阻源和目的地、以及针对联网设备的配置改变之类的各种数据点的报告。一般地,报告提供关于涉及属于安全系统的范围的客户环境中的联网设备的这些和其他事件的概要信息。除非另有指示,联网设备包括网络附接设备(例如,网络管理系统)和网络基础结构设备(例如,网络交换器、集线器、路由器等)。
[0011]为了产生报告,可以针对存留在数据存储区中的事件来运行多个查询。如本文所使用的,事件是消息、日志文件条目、相关性事件、审查事件等。本文通过引用而将其全部内容包含在内的2007年12月28日提交的序列号为11/966,078的美国专利申请中进一步描述了事件。因为客户环境中的事件数据量能够是相当大的,通常以太字节计,所以所涉及的处理量在安全系统上强加很重的负载。
[0012]此外,在同时寻找多个报告(例如,月度、季度等)的情况下,安全系统上的负载增力口,这可以引起在生成报告方面的延迟。例如,用于月度报告的事件的处理可以开始于月底。如果要求多个月度报告,那么安全系统在月底时可能经历负载方面的尖峰。
[0013]通过在事件上单独地和分开地运行每个查询也部分地引起了安全系统上的负载。换句话说,从磁盘中多次读取相同的事件来计算用于每个单独查询的结果。该类型的多次读取并多次评估模型是低效的。
[0014]趋势使得客户能够跟踪诸如安全相关活动之类的各种活动。趋势关于定义的调度和持续时间来运行指定的查询以计算在指定的持续时间期间的聚合结果。趋势在数据存储区中保持聚合数据。例如,每个趋势在数据存储区中的其自身的数据库表中保持聚合数据。每个趋势发布单个查询并且将查询结果的聚合保存在关联的趋势表中。此外,每个趋势与查询被应用在事件上的频率以及持续时间或时间间隔相关联。安全系统可以用多个趋势来预配置。趋势也可以是用户可配置的。
[0015]趋势可以被用来生成报告。例如,每小时趋势(即,具有一个小时的持续时间)测量顶部带宽客户,即测量由属于安全系统的范围的一组联网设备所接收和发送的数据的字节数。趋势结果可以被存留在数据库的表中,并且趋势表中的每个记录表示对于每个联网设备的一天中小时的字节计数。如果用户向安全系统发布表达对关于上个月的从午前9:00-午后12:00的数据感兴趣的查询,那么与关于该月份中每天的那些小时对应的表中的记录可以被用来提供报告。
[0016]如本文所描述的,因为趋势被流送到网络安全系统中的趋势处理模块,所以通过在事件上应用关联的查询来计算趋势。在一个实施例中,如本文通过引用而将其全部内容包含在内的2011年4月29日提交的序列号为PCT/US2011/034674的PCT专利申请中所描述的,趋势在存储器中被计算。查询结果被聚合并且周期地存留到数据存储区。聚合趋势结果在更长的持续时间期间分摊运行报告的成本。换句话说,聚合趋势结果表示事件的预处理。
[0017]基于安全系统的部署,在存储器中生成以及合并部分聚合趋势结果,从而产生然后可以被存留的另一个部分聚合趋势结果或完整趋势结果。如本文所使用的,部分聚合趋势结果是在安全系统中的所有相关事件的子集(例如,事件的部分集)上被计算的趋势结果。部分聚合趋势结果可以例如通过安全系统的分布计算部署中的各种组件来生成,并且被提供到趋势聚合模块以供合并。此外,提供实时趋势结果可以包括在存储器中合并部分聚合趋势结果。而且,迟的或无序的事件可以触发部分聚合趋势结果的合并。
[0018]当来到提供月度报告的时间的时候,例如在月底,因为一些数据已经被预计算,所以进一步处理的量减少了。而且,因为部分聚合趋势结果的合并发生在存储器中,所以磁盘访问的量减少了,从而减少安全系统上的负载。
[0019]提供了用于合并部分聚合查询结果的系统和方法。确定部分聚合查询结果。以定义的调度和持续时间在多个事件上运行多个查询中的每个查询。识别部分聚合查询结果的键(key)和值。确定是否识别了用于部分聚合查询结果的函数。如果如此的话,使用该键来确定相关部分聚合查询结果。将部分聚合查询结果与相关部分聚合查询结果进行合并。
[0020]图1是根据实施例的网络安全系统100的拓扑框图。系统100包括代理12a_n、至少一个管理器14和至少一个控制台16 (其可以包括其基于浏览器的版本)。在一些实施例中,代理、管理器和/或控制台可以被组合在单个平台中或者分布在两个、三个或更多个平台中(例如在所图示的示例中)。使用该多层架构支持随着计算机网络或系统增长的可扩展性。
[0021]代理12a_n是从各种网络安全设备和/或应用提供高效、实时(或近实时)本地事件数据捕获和过滤的软件程序,所述软件程序是机器可读指令。安全事件的通常源是诸如防火墙、入侵检测系统和操作系统日志之类的常见网络安全设备。代理12a-n能够从产生事件日志或消息的任何源中收集事件,并且能够在本地设备处、在网络内的集合点处、和/或通过简单网络管理协议(SNMP)陷阱来操作。
[0022]通过手动和自动过程这二者并且经由关联的配置文件,代理12a_n是可配置的。每个代理12可以包括至少一个软件模块,包括标准化组件、时间校正组件、聚合组件、批处理组件、分解器组件、传输组件、趋势处理模块、和/或附加组件。通过配置文件中的适当命令可以激活和/或去激活这些组件。
[0023]特别地,代理12a_n可以包括被配置成从源接收一组事件、通过在每个事件上应用与趋势关联的过滤器来处理事件、以及将趋势结果进行聚合的趋势处理模块。代理对它所接收的事件进行操作,并且不具有关于被其他代理接收的事件的信息。照此,由代理提供的聚合数据是基于事件的部分集的趋势结果(例如,部分聚合趋势结果)。趋势处理模块还被配置成经由事件管理器22向管理器14提供包括部分聚合趋势结果的事件数据消息。在一个实施例中,代理12a-n中的至少一个不包括趋势处理模块,并且经由事件管理器22向管理器14提供包括事件数据而不是部分聚合趋势结果的事件数据消息。
[0024]管理器14可以由采用规则引擎18以及集中事件和趋势数据库20来进一步对从代理接收的事件进行集合、过滤和互相关的基于服务器的组件来组成。管理器14的一个作用是捕获和存储所有的实时和历史事件数据来构造(经由数据库管理器22)完整、企业广图(enterprise-wide picture)的安全活动。管理器14还提供集中管理、通知(通过至少一个通知器24)、和报告、以及知识库28和案例管理工作流程。管理器14可以被部署在任何计算机硬件平台上并且一个实施例使用数据库管理系统来实现事件数据存储区组件。管理器14和代理12a-n之间的通信可以是双向的(例如,允许管理器14将命令发送到托管代理12a-n的平台)和加密的。在一些安装中,管理器14可以为多个代理12a_n充当集中器,并且能够将信息转发到其他管理器(例如,在公司总部处部署的)。
[0025]管理器14还包括负责接收由代理12a_n和/或其他管理器所发送的事件数据消息的至少一个事件管理器26。事件管理器26还负责生成诸如相关性事件和审查事件之类的事件数据消息。在实现与代理12a-n的双向通信的情况下,事件管理器26可以被用来将消息发送到代理12a-n。如果对于代理管理器通信采用加密,那么事件管理器26负责解密从代理12a-n接收的消息以及加密被发送到代理12a-n的任何消息。
[0026]控制台16是基于计算机(例如,工作站)的应用,其允许安全专家执行诸如事件监视、规则编写、事故调查和报告之类的日常管理和操作任务。访问控制列表允许多个安全专家使用相同的系统以及事件和趋势数据库,其中每个具有适于其责任的其自身的观点、相关性规则、警告、报告和知识库。单个管理器14能够支持多个控制台16。
[0027]在一些实施例中,控制台16的基于浏览器的版本可以被用来提供对安全事件、知识库文章、报告、通知以及案例的访问。也就是说,管理器14可以包括经由被托管在个人或手持计算机(其代替控制台16)上的web (网络)浏览器而可访问的web服务器组件,以提供控制台16的一些或全部功能。浏览器访问对于远离控制台16的安全专家和对于兼职用户而言是尤其有用的。控制台16和管理器14之间的通信是双向的并且可以是加密的。
[0028]通过以上描述的架构,可以支持集中或分散的环境。这是有用的,原因是组织可能想实现系统100的单个实例并且使用访问控制列表来划分用户。可替代地,组织可以选择为多组中的每一组都部署单独的系统100并且在“主”级别对结果进行集合。此类部署还能够实施“跟随太阳”布置,其中地理上分散的对等群组绕过对当前在标准业务时间工作的群组的监督责任而彼此合作。系统100还能够被部署在公司层级中,其中业务部分单独地工作并且支持向集中管理功能的向上汇总。
[0029]网络安全系统100还包括趋势处理能力。在一个实施例中,管理器14进一步包括趋势处理模块30和本地存储器32。趋势处理模块30被配置成经由事件管理器26从代理12a-n中的至少一个、经由数据库管理器22从事件和趋势数据库20、或者从事件管理器26自身来接收诸如安全事件之类的一组事件。该组事件可以被读取到本地存储器32中。本地存储器32可以是任何适当的存储介质,并且可以位于管理器14自身上、包含管理器14的群中、或者管理器14可访问的网络节点上。趋势处理模块30进一步被配置成通过在每个事件上应用与趋势关联的过滤器并且将趋势结果进行聚合而例如在存储器中(例如,在本地存储器32中)处理事件。趋势处理模块30还被配置成向诸如趋势聚合模块32的趋势聚合模块提供部分聚合趋势结果。
[0030]趋势聚合模块32被配置成经由事件管理器26、趋势处理模块30从代理12a_n中的至少一个、经由数据库管理器22从事件和趋势数据库20、或者从其他管理器来接收一组部分聚合趋势结果。该组部分聚合趋势结果可以被读取到本地存储器32中。趋势聚合模块30被进一步配置成通过例如在存储器中(例如,在本地存储器32中)合并那些被确定是相关的部分聚合趋势结果来生成另一个部分聚合趋势结果或完整趋势结果。
[0031]如先前所描述的,趋势是被调度成周期地运行查询的任务,其聚合结果被周期地存储例如在与该特定趋势关联的数据库表中。趋势可以被用于向网络管理员或使用网络安全系统100的其他分析者提供报告。
[0032]在操作中,代理12a_n可以提供事件和/或部分聚合数据。在一个示例中,代理12a-n提供由事件管理器26在事件流中所接收的并且被传递到规则引擎18和趋势处理模块30以供处理的事件。而且,由管理器14经由事件管理器26所生成的事件还被传递到规则引擎18和趋势处理模块30以供处理。如本文所使用的,事件流是连续事件流。从代理12a-n接收的或由管理器14生成的事件数据经由数据库管理器22被存储在数据库20的事件表中。
[0033]在另一个示例中,代理12a_n向趋势聚合模块32提供由事件管理器26在流中所接收的并且被传递到趋势聚合模块32以供处理的部分聚合数据。
[0034]在接收到事件时,趋势处理模块30根据条件和计算域来过滤事件。被应用的条件可以是该组查询条件中的独特条件。同样地,被应用的计算域可以是独特的计算域。对于通过过滤器的事件而言,在该事件上评估每个查询。在管理器14的存储器中保持每个查询的结果。对于多个事件,查询结果被聚合为聚合趋势结果,该聚合趋势结果被存储在数据库20的趋势表中或在流中被提供给趋势聚合模块32,其中聚合数据是部分聚合趋势结果。
[0035]趋势聚合模块32接收部分聚合趋势结果,并且通过确定部分聚合趋势结果中的哪些是相关的以及合并相关的部分聚合趋势结果来生成部分聚合趋势结果或完整趋势结果。完整趋势结果被存储在数据库20的趋势表中。新生成的部分聚合趋势结果可以被提供给另一个管理器以供进一步合并。在一个实施例中,每个趋势与其自身的在数据库20中的表相关联。
[0036]当来到提供报告的时间的时候,查询数据库20的趋势表并且检索相关的预计算数据(即,完整趋势结果或部分聚合趋势结果)。照此,本文描述了一次读取并多次评估模型。通过减少磁盘访问量和通过在代理上分布事件的评估而显著地减少了系统上的负载。
[0037]图2是根据实施例的用于合并相关的部分聚合趋势结果的过程流程图。可以通过运行可执行指令的序列来执行所描绘的过程流程200。在另一个实施例中,由网络安全系统的组件、例如专用集成电路(ASIC)等之类的硬件逻辑的布置来执行过程流程200的各部分。例如,可以通过在网络安全系统的趋势聚合模块中运行可执行指令的序列来执行过程流程200的块。趋势聚合模块可以被部署例如在网络安全系统中的管理器处。
[0038]趋势报告能力使得客户能够在指定的时间段期间跟踪活动,以识别例如联网设备中的风险或威胁方面的改变。通过在到达存储器时评估部分聚合趋势结果,部分地改善了关于生成定期调度的报告的性能。
[0039]如先前所描述的,每个趋势与查询相关联。聚合趋势结果是在趋势间隔的持续时间内在由特定设备(例如,代理、管理器等)所接收的事件之上的查询结果。在多个事件上评估相同的查询,并且聚合每个评估的结果,从而提供单个组合的结果(即,聚合趋势结果)。
[0040]如先前所描述的,部分聚合趋势结果是在安全系统中的所有相关事件的子集上计算的聚合趋势结果。在一个实施例中,部分聚合趋势结果可以与其他部分聚合趋势结果相组合,从而产生趋势结果的完整聚合或另一个部分聚合趋势结果。如本文所使用的,完整聚合是反映对于该特定趋势的安全系统中的所有事件的趋势结果。
[0041]在步骤210处,确定部分聚合趋势结果。部分聚合趋势结果可以由管理器来接收并且由网络安全系统中的代理、管理器处的趋势处理模块、或者由网络安全系统中的其他管理器中的模块来生成。
[0042]例如,在代理和管理器之间的连接建立过程(握手)期间,确定支持部分聚合趋势结果的生成的代理。这些代理中的每个然后基于它所接收的事件来提供(例如,在流中)部分聚合趋势结果。此外,趋势聚合模块的相同管理器处的趋势处理模块可以生成部分聚合趋势结果。
[0043]此外,其他管理器也可以生成部分聚合趋势结果。在分布式计算环境中,多个管理器可以被采用以处理事件,其中每个管理器从其源接收一组事件或部分聚合趋势结果。为了负载平衡,每个事件或部分聚合趋势结果可以被导向网络安全系统中的多个管理器中的单个管理器以供最终合并。照此,不执行最终合并的管理器(即,非最终管理器)在安全系统的分布式部署中接收和处理所有事件的子集。在配置安全系统期间,非最终管理器可以被配置成根据事件生成部分聚合趋势结果、根据其他部分聚合趋势结果(例如,如由代理或其他较低级别管理器所接收的)生成部分聚合趋势结果、和/或将趋势结果转发到专用或主管理器以供合并。[0044]确定完整趋势结果或另一个部分聚合趋势结果。在步骤220处,为所接收的部分聚合趋势结果中的每个记录确定键和值。在一个实施例中,例如通过结果被组织成组的方式(例如,根据关联的趋势查询中的GROUP BY (分组依据)子句)来识别键。如果不存在此类分组,那么确定默认键是NULL (空)值。
[0045]在部分聚合趋势结果中识别与该键关联的值。例如,部分聚合趋势结果指定源IP地址1.1.1与总共50字节相关联。键是源IP地址1.1.1并且值是50。
[0046]在步骤230处,确定是否为部分聚合趋势结果确定了函数。该函数识别值的性质。继续先前的示例,其中键是源IP地址1.1.1并且值是50,函数可以是COUNT (计数),以使得50的值表示与源IP地址1.1.1关联的字节的计数。
[0047]如果识别了函数,那么在步骤240处例如使用键来确定一组相关的部分聚合趋势结果。具体地,如在步骤245处所描述的,合并具有相同键的部分聚合趋势结果。
[0048]在步骤245处,例如通过将函数应用到相关的趋势结果的值来合并相关的部分聚合趋势结果。每个函数可以被修改或相关到另一个函数,以完成值的合并。例如,COUNT函数映射到SUM (求和)函数。SUM函数直接映射到SUM函数。MIN (最小)函数直接映射到MIN函数。MAX (最大)函数直接映射到MAX函数。AVERAGE (平均)函数映射到SUM (求和)/SUM (计数)函数。作为合并的结果,确定完整趋势结果或另一个部分聚合趋势结果。
[0049]继续先前的示例,COUNT函数被翻译成SUM,这被应用于跨相关的部分聚合趋势结果的值。一个部分聚合趋势结果具有键源IP地址1.1.1,以及50的值。另一个部分聚合趋势结果具有相同的键,但是具有20的值。又另一个部分聚合趋势结果具有相同的键,但是具有30的值。照此,确定50、20、和30的SUM并且趋势结果(B卩,完整或部分)反映100的值。
[0050]处理继续从步骤245到步骤210,其中例如在管理器的存储器中接收和处理另一个部分聚合趋势结果。在步骤250处,确定趋势时间间隔是否已过期。继续处理部分聚合趋势结果直到趋势时间间隔已过期。
[0051]在步骤260处,例如在数据库的趋势表中在间隔过期时存留趋势结果(S卩,完整或部分)。在一个实施例中,在间隔过期之后并且在宽限期之后存留趋势结果。该宽限期允许在趋势结果中考虑处于处理管道中的一些部分聚合趋势结果。
[0052]如果在步骤230处没有为部分聚合趋势结果识别函数,那么不执行合并,并且处
理结束。
[0053]迟的和/或无序的事件
在一个实施例中,可以由例如管理器的趋势处理器来处理事件,即使迟到(超过宽限期)和/或无序。例如,安全网络的某一部分可能已停止了一段时间,并且来自网络的该部分的代理不能发送事件。第二天,代理发送前一天的事件。尽管迟到和/或无序,但是这些事件可以被用来生成趋势结果(即,完整或部分)。
[0054]管理器可以检测出所接收的事件是迟的或无序的事件。例如,如果事件是关于已被存留的时间段,那么该事件是无序事件。在存储器中处理无序事件并且确定被看作部分聚合趋势结果的存储器中聚合结果。
[0055]例如,如由图2的步骤220-245所描述的,确定趋势结果(S卩,完整或部分)。特别地,根据部分聚合趋势结果来确定键和值。如果识别了函数,那么例如通过使用该键来查询数据存储区而确定相关的部分聚合趋势结果。数据存储区包括存留的聚合趋势结果。当聚合趋势结果被存留时,每个趋势结果被看作完整结果。在接收迟的和/或无序的事件之后,相关的聚合趋势结果被看作部分聚合趋势结果。这些存留的趋势结果与存储器中的趋势结果进行合并。趋势结果(即,完整或部分)在合并时被确定并且可以被存留例如在事件和趋势数据库中。在一个实施例中,新生成的趋势结果可以被用来更新或以其他方式刷新先前存留的趋势结果。
[0056]图3A是根据实施例的包括多个管理器中的专用管理器的网络安全系统300的拓扑框图。系统300包括代理326a-n、代理336a_n、专用管理器314、管理器324、和管理器334。如所示出的,代理326a-n、代理336a_n、和/或管理器314-334被分布在多个平台中。此类分布式计算部署在系统300的管理器之间提供负载平衡。
[0057]代理326a_n是从各种网络安全设备和/或应用提供高效、实时(或近实时)本地事件数据捕获和过滤的软件程序,所述软件程序是机器可读指令。代理326a-n被操作地耦合到管理器324。代理326a-n中的至少一个被配置成从源接收一组事件、通过在每个事件上应用与趋势关联的过滤器来处理事件、以及将趋势结果进行聚合。代理对它接收的事件进行操作并且不具有关于其他代理接收的事件的信息。照此,由代理提供的聚合数据是基于事件的部分集的趋势结果(例如,部分聚合趋势结果)。在一个实施例中,代理326a-n中的至少一个不具有生成聚合趋势结果的能力并且作为代替,向管理器324提供包括事件数据的事件数据消息,而不是部分聚合趋势结果。
[0058]代理336a_n是从各种网络安全设备和/或应用提供高效、实时(或近实时)本地事件数据捕获和过滤的软件程序,所述软件程序是机器可读指令。代理336a-n被操作地耦合到管理器334。代理336a-n中的至少一个被配置成从源接收一组事件、通过在每个事件上应用与趋势关联的过滤器来处理事件、以及将趋势结果进行聚合。代理对它接收的事件进行操作并且不具有关于被其他代理接收的事件的信息。照此,由代理提供的聚合数据是基于事件的部分集的趋势结果(例如,部分聚合趋势结果)。在一个实施例中,代理336a-n中的至少一个不具有生成聚合趋势结果的能力,并且作为代替,向管理器334提供包括事件数据的事件数据消息,而不是部分聚合趋势结果。
[0059]管理器324被操作地耦合到代理326a_n和专用管理器314。管理器324被配置成根据事件生成部分聚合趋势结果、根据其他部分聚合趋势结果(例如,如由代理或其他较低级别管理器所接收的)生成部分聚合趋势结果、和/或将从其源(例如,代理326a-n)接收的部分聚合趋势结果转发到专用管理器314。具体地,为了根据事件生成部分聚合趋势结果,管理器324被进一步配置成通过在每个事件上应用与趋势关联的过滤器、将趋势结果进行聚合、以及向管理器314提供聚合趋势结果来处理从其源所接收的事件。与代理的做法类似,在该分布式情景中,管理器324对它接收(或其源接收)的事件进行操作并且不具有关于被诸如管理器334的其他管理器接收的事件的信息。照此,由管理器324提供的聚合数据是基于事件的部分集的趋势结果(例如,部分聚合趋势结果)。
[0060]管理器334被操作地耦合到代理336a_n和专用管理器314。管理器324被配置成根据事件生成部分聚合趋势结果、根据其他部分聚合趋势结果(例如,如由代理或其他较低级别管理器所接收的)生成部分聚合趋势结果、和/或将从其源(例如,代理336a-n)接收的部分聚合趋势结果转发到专用管理器314。具体地,为了根据事件生成部分聚合趋势结果,管理器334被进一步配置成通过在每个事件上应用与趋势关联的过滤器、将趋势结果进行聚合、以及向管理器314提供聚合趋势结果来处理从其源所接收的事件。与代理的做法类似,在该分布式情景中,管理器334对它接收(或其源接收)的事件进行操作并且不具有关于被诸如管理器334的其他管理器接收的事件的信息。照此,由管理器334提供的聚合数据是基于事件的部分集的趋势结果(例如,部分聚合趋势结果)。
[0061]在配置安全系统期间,管理器324-334可以被配置成向专用管理器314提供部分聚合趋势结果以供合并。在一个实施例中,趋势结果是由管理器根据事件生成的、由管理器根据其他部分聚合趋势结果生成的、或者由代理生成并且由管理器转发的趋势结果。专用管理器314被操作地耦合到管理器324-334。专用管理器314被配置成执行将来自其他管理器的部分结果进行合并,并且例如在事件和趋势数据库中存留趋势结果(即,完整或部分)。
[0062]通过在多个管理器和代理之间分布事件的处理,减少了任何单个管理器上的负载并且增强了系统300的性能。
[0063]图3B是根据实施例的包括多个管理器中的主管理器的网络安全系统350的拓扑框图。系统350包括代理312a-n、376a-n、代理386a_n、管理器364、管理器374、和管理器384。如所示出的,代理312a-n、代理376a_n、代理386a_n、和/或管理器364-384被分布在多个平台中。此类分布式计算部署提供系统300的管理器之间的负载平衡。除了管理器364-384中的任何一个被配置成充当主管理器来合并部分结果之外,系统350与图3A的系统300相类似。部分结果可以是来自其他管理器和/或可以由主管理器自身所生成。主管理器被进一步配置成例如在事件和趋势数据库中存留趋势结果(即,完整或部分)。
[0064]实时数据
图4是根据实施例的用于基于检测的触发条件来将存留的聚合趋势结果与存储器中的聚合趋势结果进行合并的过程流程图。可以通过运行可执行指令的序列来执行所描绘的过程流程400。在另一个实施例中,过程流程400的各部分由网络安全系统的组件、例如专用集成电路(ASIC)等之类的硬件逻辑的布置来执行。例如,可以通过在网络安全系统的趋势聚合模块中运行可执行指令的序列来执行过程流程400的块。趋势聚合模块可以被部署例如在网络安全系统中的管理器处。
[0065]在一个实施例中,特定条件可以触发管理器把来自永久存储区的部分聚合趋势结果与存储器中的趋势结果进行合并。在步骤410处,检测到触发条件。
[0066]一个此类条件是检测对于实时数据的请求。例如,可以(例如,由用户)发布请求被用于一天的总带宽的查询。当接收到查询时,可以例如由管理器来识别总带宽查询的时间范围(即,一天)。为了解释的目的,在一天的结束之前的午后3:30发布查询。在表中每小时趋势可以跟踪用于一天中每个小时的总带宽信息的计数。应该注意的是,请求的时间在当前趋势间隔的过期之前。
[0067]管理器确定已存留了用于时间范围的至少一个结果。为了每小时趋势,贯穿一天的每个小时都存留聚合趋势结果(在表的记录中)。照此,每个记录跟踪用于特定一天中的一个小时的带宽计数。当接收到用户的查询时,存留数据直至午后3:00。然而,在存储器中存在较新的数据。具体地,趋势可以在存储器中运行但是不被存留直到趋势时间间隔在午后4:00过期。为了提供最新的数据,可以采用部分聚合趋势结果的合并。具体地,可以将来自磁盘的趋势结果与存储器中的趋势结果进行合并。
[0068]在步骤415处,关于存留的数据发布查询。在步骤420处,确定关于存留数据的查询的结果。例如,查询结果包括从午夜直至午后3:00的来自永久存储区的每小时趋势的记录。整个查询结果被看作部分聚合趋势结果。
[0069]为了提供实时数据的查看,在步骤425处,存储器中的数据被用来确定聚合趋势结果。继续先前的示例,该结果被看作捕获从当前趋势间隔开始的时间并且到请求的时间的3:01-3:30所接收事件的部分聚合趋势结果。不存留部分聚合趋势结果以便加快给用户的最终结果。
[0070]在步骤430处,通过例如使用参考图2的步骤220-245所描述的技术将关于存留数据的结果与存储器中的聚合趋势结果进行合并来确定完整趋势结果。然后可以响应于对实时数据的请求而提供完整趋势结果。
[0071]应该认识到的是,在提供响应之后可以丢弃完整趋势结果。因为每小时趋势继续运行并且计算聚合趋势结果,所以在每小时趋势中捕获被用来生成在步骤425处所确定的存储器中聚合趋势结果的事件。照此,可以丢弃完整趋势结果。
[0072]通常,对查询的响应被局限于存留的数据,所述存留的数据在查询运行的时间可能是陈旧的。通过将存储器中的趋势结果与关于存留数据的结果进行合并,能够快速地且高效地提供实时数据。
[0073]图5图示其中可以实现实施例的计算机系统。系统500可以被用来实现以上所描述的计算机系统中的任何一个。示出了包括可以经由总线524而被电气地耦合的硬件元素的计算机系统500。硬件元素可以包括至少一个中央处理单元(CPU) 502、至少一个输入设备504、和至少一个输出设备506。计算机系统500还可以包括至少一个存储设备508。通过示例的方式,存储设备508能够包括诸如磁盘驱动器之类的设备、光学存储设备、诸如随机访问存储器(“RAM”)和/或只读存储器(“ROM”)之类的能够是可编程、快速可更新的固态存储设备等。
[0074]计算机系统500可以附加地包括计算机可读存储介质读取器512、通信系统514(例如,调制解调器、网卡(无线的或有线的)、红外通信设备等)、以及可以包括如以上所描述的RAM和ROM设备的工作存储器518。在一些实施例中,计算机系统500还可以包括能够包括数字信号处理器(DSP)、专用处理器等的处理加速单元516。
[0075]计算机可读存储介质读取器512能够进一步被连接到计算机可读存储介质510,一起(并且在一个实施例中与存储设备508结合)全面地表示远程、本地、固定、和/或可移除存储设备加上任何有形、非临时的存储介质以供暂时地和/或更长久地包含、存储、发送、和检索计算机可读信息(例如,指令和数据)。计算机可读存储介质510可以是非临时的例如硬件存储设备(例如,RAM、ROM、EPROM (可擦除可编程ROM)、EEPROM (电可擦除可编程ROM)、硬盘驱动器、和闪存)。通信系统514可以允许将数据与以上参考系统500所描述的网络和/或任何其他计算机进行交换。计算机可读存储介质510包括趋势聚合模块525,并且还可以包括趋势数据监视器。
[0076]计算机系统500还可以包括被示出为当前位于工作存储器518内的包括操作系统520和/或诸如应用程序(其可以是客户端应用、web浏览器、中间层应用等)之类的其他代码522的软件元素,所述软件元素是机器可读指令。应该领会的是,计算机系统500的可替代实施例可以具有根据以上所描述的计算机系统的许多变形。例如,还可以使用定制硬件,和/或特定元素可以以硬件、软件(包括可移植程序,例如小应用程序)、或这二者来实现。进一步地,可以采用到诸如网络输入/输出设备之类的其他计算设备的连接。
[0077]因此要将本说明书和附图以说明性而不是限制意义来考虑。然而,将明显的是可以做出各种修改和改变。
[0078]本说明书(包括任何的附加权利要求、摘要和附图)中所公开的每个特征可以由服务于相同、等价或类似目的的可替代特征来代替,除非另有明确说明。因而,除非另有明确说明,所公开的每个特征是一系列通用等价或类似特征的一个示例。
【权利要求】
1.一种用于处理聚合查询结果的方法,所述方法包括: 确定部分聚合查询结果,其中以定义的调度和持续时间在多个事件上运行多个查询中的每个查询; 识别部分聚合查询结果的键和值; 确定是否识别了用于部分聚合查询结果的函数; 使用所述键来确定多个部分聚合查询结果中的相关部分聚合查询结果;以及 在计算设备的本地存储器处将部分聚合查询结果与相关部分聚合查询结果进行合并。
2.权利要求1的方法,其中合并包括: 将函数应用到部分聚合查询结果的值以及相关部分聚合查询结果的值。
3.权利要求1的方法,进一步包括: 在永久存储中存 储查询结果的完整聚合,其中在将部分聚合查询结果与相关部分聚合查询结果进行合并时确定查询结果的完整聚合。
4.权利要求1的方法,其中由网络系统的分布式管理器来生成部分聚合查询结果,并且由网络系统的本地管理器来接收部分聚合查询结果。
5.权利要求1的方法,进一步包括: 检测针对实时数据的查询; 在永久存储上发布针对实时数据的所述查询,其中永久存储包括多个部分聚合查询结果; 确定在永久存储上发布所述查询的结果;以及 确定针对实时数据的所述查询的存储器中聚合,其中使用在永久存储上发布所述查询的结果和存储器中聚合来生成查询结果的完整聚合。
6.权利要求1的方法,进一步包括: 在计算设备的本地存储器处接收事件流中的多个事件; 确定所述多个事件是无序事件; 为所述多个事件中的每一个确定查询结果;以及 基于用于所述多个事件中每一个的查询结果来确定部分聚合查询结果。
7.一种用于处理部分聚合查询结果的系统,所述系统包括: 用于存储部分聚合查询结果和完整查询结果的永久存储区;以及 计算机,所述计算机包括: 趋势聚合模块;以及 用于合并部分聚合查询结果的存储器; 其中趋势聚合模块被配置成: 确定部分聚合查询结果,其中以定义的调度和持续时间在多个事件上运行多个查询中的每个查询; 识别部分聚合查询结果的键和值; 确定是否识别了用于部分聚合查询结果的函数; 使用所述键来确定多个部分聚合查询结果的相关部分聚合查询结果;以及 将部分聚合查询结果与相关部分聚合查询结果进行合并。
8.权利要求7的系统,其中合并包括:将函数应用到部分聚合查询结果的值以及相关部分聚合查询结果的值。
9.权利要求7的系统,其中趋势聚合模块被进一步配置成: 在永久存储中存储完整查询结果,其中在部分聚合查询结果和相关部分聚合查询结果上确定完整查询结果。
10.权利要求7的系统,其中趋势聚合模块被进一步配置成: 检测针对实时数据的查询; 在永久存储上发布针对实时数据的所述查询; 确定在永久存储上发布所述查询的结果;以及 确定针对实时数据的所述查询的存储器中聚合,其中使用在永久存储上发布所述查询的结果和存储器中聚合来生成查询结果的完整聚合。
11.权利要求7的系统,其中所述存储器被进一步配置成接收事件流中的多个事件,并且其中趋势聚合模块被进一步配置成: 确定所述多个事件是无序事件; 为所述多个事件中的每一个确定查询结果;以及 基于用于所述多个事件中每一个的查询结果来确定部分聚合查询结果。
12.—种非临时计算机可读介质,其存储多个指令以控制数据处理器处理部分聚合查询结果,所述多个指令包括使得数据处理器进行以下操作的指令: 确定部分聚合查询结果,其中以定义的调度和持续时间在多个事件上运行多个查询中的每个查询; 识别部分聚合查询结果的键和值; 确定是否识别了用于部分聚合查询结果的函数; 使用所述键来确定多个部分聚合查询结果的相关部分聚合查询结果;以及 在计算设备的本地存储器处将部分聚合查询结果与相关部分聚合查询结果进行合并。
13.权利要求12的非临时计算机可读介质,其中使得数据处理器进行合并的指令包括使得数据处理器将函数应用到部分聚合查询结果的值以及相关部分聚合查询结果的值的指令。
14.权利要求12的非临时计算机可读介质,其中所述多个指令进一步包括使得数据处理器进行以下操作的指令; 检测针对实时数据的查询; 在永久存储上发布针对实时数据的所述查询,其中永久存储包括多个部分聚合查询结果; 确定在永久存储上发布所述查询的结果;以及 确定针对实时数据的所述查询的存储器中聚合,其中使用在永久存储上发布所述查询的结果和所述存储器中聚合来生成查询结果的完整聚合。
15.权利要求12的非临时计算机可读介质,其中所述多个指令进一步包括使得数据处理器进行以下操作的指令: 接收事件流中的多个事件; 确定所述多个事件是无序事件;为所述多个事件中的每一个确定查询结果;以及基于用于所述多个 事件中每一个的查询结果来确定部分聚合查询结果。
【文档编号】G06F17/30GK103597473SQ201180071742
【公开日】2014年2月19日 申请日期:2011年6月30日 优先权日:2011年6月30日
【发明者】A.辛拉 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1