CN104067281A - 按多个时间维度的聚类事件数据 - Google Patents
按多个时间维度的聚类事件数据 Download PDFInfo
- Publication number
- CN104067281A CN104067281A CN201280068235.3A CN201280068235A CN104067281A CN 104067281 A CN104067281 A CN 104067281A CN 201280068235 A CN201280068235 A CN 201280068235A CN 104067281 A CN104067281 A CN 104067281A
- Authority
- CN
- China
- Prior art keywords
- event
- chunk
- data chunks
- data
- time dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于处理记录数据的系统和方法。确定数据组块的集合。每个数据组块与事件的集合相关联,所述事件是根据事件的集合中的每个事件的主要时间维度字段来成组的。针对数据组块中的每一个确定元数据结构。元数据结构包括数据组块中所有事件的主要时间维度字段的范围和数据组块中所有事件的次要时间维度字段的范围。选择所述数据组块的子集。根据至少一个事件的次要时间维度字段来生成与多个事件中的至少一个事件相关联的数据组块。
Description
交叉引用
本申请要求2011年11月28日递交的、名称为“CLUSTERING OF EVENT DATA BY MULTIPLE TIME DIMENSIONS”、序号为61/564,207(代理人档案号82899659)的共同未决美国临时专利申请的优先权,其出于各种目的通过引用合并于此,就像完全在这个文档中阐述一样。本申请通过引用以其整体合并2009年9月4日递交的、名称为“STORING LOG DATA EFFICIENTLY WHILE SUPPORTING QUERYING”、序号为12/554,541的美国申请以及2007年12月28日递交的、名称为“STORING LOG DATA EFFICIENTLY WHILE SUPPORTING QUERYING TO ASSIST IN COMPUTER NETWORK SECURITY”、序号为11/966,078的美国申请。
背景技术
安全信息/事件管理(SIM或SIEM)领域通常与下述各项相关:1)从网络和联网设备收集反映网络活动和/或设备操作的数据;以及2)分析该数据以增强安全性。例如,可以分析该数据以识别对网络或联网设备的攻击并且确定哪个用户或机器负责。如果攻击正在进行,则可以执行对抗措施以阻止攻击或减轻由攻击引起的损坏。所收集的数据通常起源于由联网设备生成的消息(诸如事件、警告或警报)或记录文件中的条目。典型的联网设备包括防火墙、侵入检测系统和服务器。
每个消息或记录文件条目(“事件”)被存储以供未来使用。所存储的事件可以按各种方式加以组织。当涉及到写入事件数据、搜索事件数据和删除事件数据时,每种组织方法具有其自身的优势和劣势。
附图说明
通过参考附图,可以更好地理解本公开并且使其许多特征和优势变得显而易见。
图1是根据实施例的具有信息/事件管理系统的环境的拓扑框图。
图2是根据实施例的信息/事件管理系统的记录系统的拓扑框图。
图3A是根据实施例的基于事件发生时间生成事件组块的过程流程图。
图3B是根据实施例的基于事件发生时间把事件聚类成组块的过程流程图。
图4A是根据实施例的聚类稀疏事件流的过程流程图。
图4B是根据实施例的查询的过程流程图。
图5图示了可在其中实施实施例的计算机系统。
具体实施方式
事件管理系统正变成实时事件管理系统的重要组件。这样的系统可以用于获得有价值的洞察,诸如实时安全状态、网络状态或市场信息。
记录系统高效地存储数据(诸如安全信息/事件)同时支持针对不同事件属性的查询。记录系统可以是事件管理系统或用于进一步分析记录数据的其它系统的组件或者可以与事件管理系统或用于进一步分析记录数据的其它系统结合使用。记录数据可以由各种源(包括设备和应用)生成,并可以采用任何格式。记录数据由称为“事件”的数据实例组成,该数据实例由至少一个基于时间的属性或维度表征。事件可以例如是记录文件中的条目、系统记录服务器中的条目、警告、警报、网络分组、电子邮件或通知页面。
时间是任何记录系统的重要属性。通常,存在与事件关联的多个时间维度。一个维度可以是事件实际发生时的时间(即,事件发生时间)。另一维度可以是事件实际被事件处理系统和/或记录系统接收时的时间(即,接收时间)。
事件发生时间(“et”)和接收时间(“rt”)之间的不一致可以由各种条件引起,例如,通过网络的传输期间的延迟和在防止故障节点向中央记录系统发送事件的某个时间段内的安全网络中节点(例如代理)的失效。因为事件可能被延迟或批处理,所以时间维度可以彼此不同步。在涉及更严重的延迟条件的情况下,et和rt之间的不一致可以是从数秒到数天的任何程度。
可以创建多个索引以用于存储事件,例如,针对每个时间维度的索引。在具有两个时间维度的事件的情境中,使用这个技术,把事件例如存储在数据文件中。通过沿时间维度之一聚类事件来创建聚类索引。更具体地,聚类索引被键入到事件沿其而被聚类的时间维度(“聚类维度”)。次要索引在次要时间维度上被创建。
经常,用户向事件管理系统或记录系统提出的查询包括时间维度。因为可能存在多个时间维度,所以用户可以查询所有那些维度。多个索引的使用可以用于确保跨多个时间维度的查询效率。
然而,在许多具有大量事件的系统部署中,构建聚类索引和次要索引两者是过分昂贵的。索引增加了归因于针对要求大数据存储的环境的索引的大小而需要的存储量。
另外,存在显著的维护开销。例如,在rt上键入聚类索引,并且在et上键入次要索引。聚类索引的每个条目包括与存储组块的数据文件相关联的唯一标识符和该数据文件内存储该组块的位置(例如,作为偏移)。次要索引的每个条目包括对聚类索引中的至少一个条目的指针或其它参考,因为每个事件与事件时间和接收时间两者都关联。维持这些参考的完整性可能是处理器密集和时间密集的。
此外,除聚类维度外的任何维度上的搜索操作可能是低效的。例如,在rt上键入聚类索引并且在et上键入次要索引的情况下,基于et的查询可能涉及在这两个索引上搜索以便识别可包括具有与查询相匹配的事件时间的事件的所有聚类。更具体地,基于et来首先搜索次要索引。满足这个首先搜索的条目用于识别相关rt条目,因为次要索引中的每个条目均包括对聚类索引中的条目的参考。在确定哪些rt对应于次要索引中的条目之后,聚类索引中的相关条目被访问以识别相关组块,该相关组块是如下组块:其可能能够包含具有满足查询的事件时间的事件。然后,所识别的组块被分解成其组成事件。最终,搜索这些事件中的每一个的et属性以确定哪些事件满足查询。
这样的搜索方法可能导致低于最优的搜索性能。在rt中对事件成组块的情况下,et上的查询可能涉及对组块的大子集的扫描,尤其是在组块包括具有大范围的事件发生时间的事件的情况下。被识别为对于满足查询来说可能相关的许多组块可能结果是不相关,即,通过不包括满足查询的元素。
在一个实施例中,可以通过下列操作来最小化扫描:在多个维度上聚类数据,例如针对事件数据的整个集合在rt上聚类,并且,也在et上聚类,但在事件数据的子集上。更具体地,组块中的事件的et和rt的范围被最小化,同时最大化组块大小(即,组块中事件的数量)。
如本文中描述的,提供了用于处理记录数据的系统和方法。确定数据组块的集合。每个数据组块与事件的集合相关联,事件是根据事件集合中的每个事件的第一时间维度字段来成组的。针对每个数据组块确定元数据结构。元数据结构包括数据组块中的所有事件的主要时间维度字段的范围和数据组块中的所有事件的次要时间维度字段的范围。数据组块的子集被选择且分解成多个事件。根据该至少一个事件的次要时间维度字段来生成与该多个事件中的至少一个事件相关联的数据组块。
记录系统包括事件接收器和存储管理器。事件接收器接收记录数据,处理它,并输出基于行和/或基于列的数据“组块”。存储管理器接收数据组块并存储它以使得它可以被查询。接收器包括缓存器,该缓存器存储事件和元数据结构,元数据结构存储关于缓存器的内容的信息。
元数据包括与接收器和缓存器中事件的数量相关联的唯一标识符。对于所关注的作为接收时间的字段,元数据包括反映在缓存器中的所有事件上该字段的值的范围的最小值和最大值。对于所关注的作为事件发生时间的字段,元数据包括反映在缓存器中的事件子集上该字段的值的范围的最小值和最大值。组块包括元数据结构和缓存器内容的压缩版本。当查询事件数据时,元数据结构中包括接收时间范围的部分充当搜索索引(即,聚类索引)。当查询事件数据时,元数据结构中包括事件发生时间范围的部分充当另一搜索索引(即,次要索引)。照此,如果在任一时间维度上发起搜索,则在元数据上执行查找并且高效地且以可缩放的方式搜索事件。记录系统可以与信息/事件管理系统结合使用。
信息/事件管理架构
图1是根据实施例的具有信息/事件管理系统100的环境的拓扑框图。系统100包括(一个或多个)数据源110。数据源110是网络节点,其可以是设备或软件应用。数据源110包括侵入检测系统(IDS)、侵入防止系统(IPS)、漏洞评价工具、防火墙、反病毒工具、反垃圾邮件工具、加密工具、应用审查记录和物理安全记录。事件数据可以例如由警告、警报、网络分组、电子邮件或通知页面来提供。
数据源110的类型包括安全检测和代理系统、访问和策略控制、核心服务记录和记录汇集器、网络硬件、加密设备和物理安全。通常,安全检测和代理系统包括IDS、IPS、多用途安全装置、漏洞评价和管理、反病毒、蜜罐、威胁响应技术和网络监控。典型的访问和策略控制系统包括访问和标识管理、虚拟专用网(VPN)、高速缓存引擎、防火墙和安全策略管理。核心服务记录和记录汇集器包括操作系统记录、数据库审查记录、应用记录、记录汇集器、web服务器记录和管理控制台。典型的网络硬件包括路由器和交换机。典型的加密设备包括数据安全性和完整性。典型的物理安全系统包括卡-密钥读取器、生物计量、防盗警报和火灾警报。
在所图示的实施例中,系统100包括(一个或多个)代理120、(一个或多个)管理器130、(一个或多个)数据库140、(一个或多个)在线存档150、(一个或多个)用户接口160和(一个或多个)记录系统170。在一些实施例中,这些模块被组合在单个平台中或被分布在两个、三个或更多平台中(诸如在图1中)。随着计算机网络或系统的发展,这个多层架构的使用支持可缩放性。
代理120提供面向数据源110的接口。具体来说,代理120收集来自数据源110的数据(“原始事件”)、处理该数据并把经处理的数据(“事件”)发送到管理器130。代理120可以在任何地方操作,诸如在经由诸如简单网络管理协议(SNMP)陷阱之类的协议通信的分离设备处、在网络内的汇集点处或者在数据源110处。例如,如果数据源110是软件应用,则代理120可以在托管数据源的设备上被共同托管。
处理可以包括归一化、聚集和滤波。例如,个体原始事件被解析和归一化以供管理器130使用。归一化可以涉及把值(诸如严重性、优先级和时区)归一化成公共格式和/或把数据结构归一化成公共模式。可以使用公共的、人类可读的格式来对事件进行分类。这个格式使得用户更容易理解该事件并使得更容易使用滤波器、规则、报告和数据监控器来分析事件。在一个实施例中,公用格式是公共事件格式(CEF)记录管理标准。
聚集和滤波减少了被发送给管理器130的事件的量,这节省了网络带宽和存储空间,增加了管理器的效率和准确度,并减少了事件处理时间。代理120基于时间段的到期或基于所达到的事件的阈值数量把事件成批地发送到管理器130。
代理120还可以把命令发送到数据源110和/或在本地主机上执行命令,诸如指示扫描器运行扫描。这些动作可以手动地或通过来自规则和数据监控器的自动动作而执行。另外,代理120可以把信息添加到其已收集的数据,诸如通过查找因特网协议(IP)地址和/或主机名以便在管理器130处解析IP/主机名查找,或者通过确定定时相关数据(例如事件发生时间等)。
经由关联的配置文件(未示出)来配置代理120。代理120可以包括(一个或多个)软件模块,该软件模块包括归一化组件、时间校正组件、聚集组件、批处理组件、解析器组件、传送组件和/或附加组件。这些组件可以通过配置文件中的适当命令而激活和/或去激活。在配置期间,代理120被注册到管理器130且被配置有基于其数据源110和期望行为的特性。可通过手动和自动过程两者来进一步配置代理120。例如,管理器130可以把命令或配置更新发送到代理120。
管理器130提供分析能力、案例管理工作流程能力和服务能力。管理器130和代理120之间的通信可以是双向的(例如使管理器130能够把命令传输到托管代理120的平台)和加密的。在一些装置中,管理器130可以充当多个代理120的集中器,且可以把信息转发到其它管理器130(例如在公司总部处部署的管理器)。为了执行其任务,管理器130使用各种滤波器、规则、报告、数据监控器、仪表板和网络模型。
分析可以包括检测、相关和逐步升级。例如,管理器130使用规则引擎(未示出)来使从代理120接收的事件交叉相关,该规则引擎评估具有网络模型的每个事件和漏洞信息以开发出实时威胁概要。关于案例管理,管理器130可以维持关于安全事故及其解决的状态的报告。管理器130还可以提供对知识库的访问。
随着事件被管理器130接收到,事件被存储在数据库140中。存储事件使它们稍后能够被用于分析和参考。在一个实施例中,数据库140是数据库管理系统(例如柱状的、关系的、混合的等)。
用户经由用户接口160与管理器130交互。用户接口160使用户能够导航管理器130的特征和功能。单个管理器130可以支持多个用户接口实例。对用户来说可用的特征和功能可以取决于用户的作用和许可和/或管理器的配置。在一个实施例中,访问控制列表使多个安全专业人员能够使用相同管理器130和数据库140,但是每个专业人员具有其自身的适于其责任的视图、相关性规则、警告、报告和知识库。管理器130和用户接口160之间的通信是双向的且可以被加密。用户接口160可以用于接收要对记录数据执行的查询。
在一个实施例中,记录系统170是针对极高事件吞吐量而优化的事件数据存储装置。记录系统170存储事件(有时称为“记录数据”),诸如安全事件。在一个实施例中,事件以压缩形式被存储。然而,记录系统170可以按需求检索这些事件,并把它们恢复到针对取证质量数据的其原始的未修改的形式。多个记录系统170可以一起工作以扩大,从而当存储事件时支持高的持续的输入速率。事件查询可以跨记录系统170的对等网络而分布。用户可以配置记录系统170并经由用户接口(未示出)提供查询。
记录系统170可以接收经处理的事件(例如遵循公共事件格式的事件)和原始事件两者。在一个实施例中,原始事件是直接从数据源110(诸如系统记录消息和记录文件)接收的,并且经处理的事件是从代理120或管理器130接收的。记录系统170还可以发送原始事件和经处理的事件两者。在一个实施例中,原始事件作为系统记录消息而被发送(到任何设备;未示出),并且经处理的事件被发送到管理器130。
记录系统170包括事件聚类模块172。事件聚类模块172被配置为接收组块形式的事件数据,该事件数据包括元数据结构和事件集合的压缩版本。可以通过接收时间(“rt”)来对事件集合成组。换句话说,事件可以被认为是根据rt来聚类的。当查询事件数据时,元数据结构可以充当搜索索引(例如聚类索引)。事件聚类模块172被配置为识别供进一步处理的组块,并根据事件的发生的时间(“et”)来聚类来自这些所识别的组块的事件。组块针对重新聚类的事件而被生成且例如被存储在读取优化系统(“ROS”)中。下面将关于图2来进一步描述记录系统170。
通过上面描述的架构,系统100可以支持集中式或分散式环境。这是有用的,因为组织可能想要实施系统100的单个实例并使用访问控制列表来划分用户。替代地,组织可以选择以针对多个组中的每一个组部署分离的系统100 并汇集处于“主”级别的结果。这样的部署还可以实现“跟随太阳”布置,其中通过把主要监督责任传递给当前工作标准业务时间的组,地理上分散的对等组彼此合作。还可以在企业层级中部署系统100,在该企业层级中,业务部门分离地工作并支持到集中式管理功能的汇总。
事件数据
存储在数据存储系统中的数据的类型的示例是事件数据。事件是被收集且存储在数据存储系统处的数据的实例。事件可以与已执行的活动或动作相关联或者描述已执行的活动或动作。通常,事件被一次生成且之后不改变。事件数据包括(一个或多个)事件。事件数据可以由记录数据组成,该记录数据可以由各种源(包括设备和应用)生成并可以采用任何格式。事件可以例如是记录文件中的条目、系统记录服务器中的条目、警告、警报、网络分组、电子邮件、通知等。
事件数据可以被相关和分析以识别网络安全威胁。安全事件是事件类型且是可被分析以确定其是否与安全威胁相关联的任何活动。该活动可以与用户(还称为行动者)相关联以识别安全威胁和安全威胁的起因。活动可以包括登入、登出、通过网络发送数据、发送电子邮件、访问应用、读取或写入数据等。安全威胁包括被确定为指示可疑或不适当行为的活动,其可以通过网络而被执行或在连接到网络的系统上被执行。通过示例的方式,公共安全威胁是用户试图通过网络获得对机密信息(诸如社会安全号码、信用卡号码等)的未授权访问。
事件的数据源可以包括网络设备、应用、或下面描述的可操作以提供可用于识别网络安全威胁的事件数据的其它类型的数据源。事件数据是描述事件的数据。事件数据可以在由数据源生成的记录或消息中被捕获。例如,侵入检测系统(IDS)、侵入防止系统(IPS)、漏洞评价工具、防火墙、反病毒工具、反垃圾邮件工具和加密工具可以生成描述由源执行的活动的记录。事件数据可以例如由记录文件或系统记录服务器中的条目、警告、警报、网络分组、电子邮件或通知页面来提供。
事件数据包括隐式元数据和消息。隐式元数据可以包括关于生成了该事件的设备或应用的信息(例如,生成了该事件的设备或应用(“事件源”)和何时从事件源接收到该事件(“接收时间”))。在一个实施例中,接收时间是日期/时间戳,并且事件源是网络端点标识符(例如,IP地址或媒体接入控制(MAC)地址)和/或对源的描述,可能包括关于产品的供应商和版本的信息。时间属性、源信息和其它信息用于把事件与用户进行相关并针对安全威胁分析事件。时间属性还可以被用作用于识别满足查询的事件的键。
消息表示从事件源接收了什么,并可以采用任何形式(二进制数据、字母数字数据等)。在一个实施例中,消息是自由形式的文本,其描述值得注意的场景或改变。在另一实施例中,消息还包括显式元数据。显式元数据例如通过解析消息而获得。当事件源生成事件时,该事件通常包括指示该事件何时发生的信息(“et”)。事件发生时间(其通常是日期/时间戳)是显式元数据的示例且频繁地用于分析。
在一个实施例中,如果事件不包括发生时间,则由事件接收器在它接收到该事件时生成的隐式时间戳(下面描述的)被视为原始发生时间戳。随着事件被处理且潜在地通过各种系统而被转发,每个系统可以具有事件接收时间的隐式标记。
在一个实施例中,事件表示包括(一个或多个)字段的数据结构,其中每个字段可以包含值(有时称为“属性”)。如果不同的事件包括相同类型的字段,则事件可以被组织在表格中。表格的每行将表示不同的事件,并且表格的每列将表示不同的字段。
记录系统架构
图2是根据实施例的信息/事件管理系统的记录系统200的拓扑框图。在所图示的实施例中,记录系统200包括事件接收器210、存储管理器220和通信机构230。虽然为了清晰而示出了一个事件接收器210,但是系统200可以利用许多事件接收器210支持大量的并发会话。在一个实施例中,每个事件接收器210与唯一标识符相关联。
事件接收器210接收记录数据240,处理记录数据240并输出数据“组块”250。事件数据可以以流的形式被接收。记录数据可以包括事件。事件接收器210包括控制系统255、缓存器260的集合和元数据结构265。控制系统255通信地耦合到(一个或多个)缓存器260的集合和元数据结构265。控制系统255控制事件接收器210的操作,把记录数据分离成一个或多个事件并确定每个事件何时被事件接收器210接收到。控制系统255在缓存器260中存储事件以及针对每个事件存储反映事件何时被接收到的时间/日期戳,且还更新元数据结构265。控制系统255基于元数据结构265和缓存器260的内容生成数据组块250,如下面进一步描述的,数据组块250包括关于事件的信息。在一个实施例中,组块包括元数据结构265和缓存器260内容的压缩版本。不同的组块可以具有不同的大小,并且,可以指定最大的大小。例如当缓存器260被填满时或者当特定时间段(“超时窗口”)已经过去时,最终生成组块,在该特定时间段期间,缓存器260没有接收到事件。
每个缓存器260存储关于一个或多个事件的信息。缓存器260的集合存储基于行的组块和/或基于列的组块。在一个实施例中,缓存器的大小是固定的,但该大小自身是可配置的。如果不同的事件包括相同类型的字段,则事件可以被组织在表格中。表格的每行可以表示不同的事件,并且表格的每列可以表示不同的字段。在一个实施例中,每个缓存器260与特定字段相关联且包括来自该字段(“属性”)的值,该字段来自一个或多个事件。在另一实施例中,每个缓存器260还包括指示哪个字段与该缓存器相关联的标识符(“索引ID”)。
例如,假设事件包括称为源IP地址的字段,其值反映发起了由事件表示的动作的设备的IP地址。与源IP地址字段相关联的缓存器260将包含一个或多个IP地址(针对作为记录数据240的一部分而被事件接收器210接收和处理的每个事件,一个IP地址)。缓存器260还可能包含索引ID值“100”,其指示源IP地址字段。
在另一实施例中,缓存器的集合还包括接收时间缓存器,其针对每个事件存储反映事件何时被事件接收器210接收到的时间/日期戳。
元数据结构265存储关于缓存器260的集合的内容的元数据。在一个实施例中,这个元数据包括与接收了该事件的事件接收器210相关联的唯一标识符、缓存器的集合中事件的数量、以及针对每个所关注的字段(例如,接收时间、事件发生时间)的反映在缓存器的集合中的所有事件上该字段的值的范围(例如时间范围)的最小值和最大值。更具体地,与其它信息一起,组块的元数据可以包括用于标示接收时间范围的开始和结束的start_rt和end_rt。另外,元数据可以包括用于标示事件发生时间范围的开始和结束的start_et和end_et。当查询事件数据时,元数据结构265充当索引(即,聚类索引)。
在一个实施例中,接收时间(“rt”)是所关注的字段。在这个实施例中,元数据结构265存储反映在缓存器的集合中的所有事件上接收时间的值的范围的最小值和最大值。rt的最小值是首次接收的缓存器260的集合中的事件的接收时间。rt的最大值是最后接收的缓存器260的集合中的事件的接收时间。
此外,事件发生时间(“et”)也是所关注的字段。因此,在这个实施例中,元数据结构265还存储反映在缓存器的集合中的所有事件上事件发生时间的值的范围的最小值和最大值。et的最小值是所有事件中首次发生的事件的事件发生时间。et的最大值是所有事件中最后发生的事件的事件发生时间。
存储管理器220接收(一个或多个)数据组块250并存储它们以使得它们可以被查询。在一个实施例中,存储管理器220以流传输的方式操作从而减小存储器开销。存储管理器220包括控制系统270、数据文件表格275、组块表格280、写入优化系统(“WOS”)283中的数据文件285的集合以及读取优化系统(“ROS”)284中的数据文件286的集合。WOS 283可以是以下各项中的任一个:基于行的存储系统、基于列的存储系统、或混合行/列存储系统。同样地,ROS 284可以是以下各项中的任一个:基于行的存储系统、基于列的存储系统、或混合行/列存储系统。控制系统270通信地耦合到数据文件表格275、组块表格280、以及数据文件285和数据文件286的集合。
控制系统270控制存储管理器220的操作并包括聚类模块276。聚类模块276被配置为确定组块形式的事件数据,其包括根据事件的接收时间(“rt”)而聚类的事件。经由WOS 283来访问这个事件数据。事件聚类模块276进一步被配置为识别稀疏或重叠的组块并根据事件发生时间(“et”)来聚类来自那些所识别的组块的事件。组块252针对重新聚类的事件而被生成且存储在ROS 284中。
数据文件表格275存储关于数据文件285和数据文件286的集合的信息。在一个实施例中,数据文件表格275中的每个条目表示已针对其分配空间的一个数据文件285或一个数据文件286,并且该条目包括与数据文件相关联的唯一标识符和数据文件的位置(例如,文件系统、其中的路径和文件名)。在数据文件表格275中列出的数据文件285和数据文件286可以或可以不包含数据(例如组块250)。数据文件表格275例如被存储在数据库(未示出)中。在一个实施例中,数据文件285和数据文件286在被需要之前被分配。在这个实施例中,这些预分配的数据文件285和数据文件286的列表(称为“自由列表”)被维持。数据文件表格275可以包括多个表格,例如具有与数据文件285相关联的表格和与数据文件286相关联的另一表格。
组块表格280存储并维持关于被存储在存储管理器220中(具体地,被存储在(一个或多个)数据文件285和(一个或多个)数据文件286中)的(一个或多个)组块250和组块252的信息。在一个实施例中,对于每个组块250和组块252,这个信息包括存储在组块中的元数据和组块的位置(例如,与存储组块的数据文件相关联的唯一标识符和数据文件内存储组块的位置(例如,作为偏移))。组块表格280例如被存储在数据库(未示出)中。组块表格280可以包括多个表格,例如具有与数据文件285相关联的表格和与数据文件286相关联的另一表格。
数据文件285存储多个组块250。在一个实施例中,所有数据文件是相同大小的(例如1千兆字节)且按时间顺序被组织。数据文件286存储多个组块252。在一个实施例中,所有数据文件按时间顺序被组织,其中数据文件285按接收时间的顺序被组织,并且数据文件286按事件发生时间的顺序被组织。数据文件285和数据文件286例如存储在原始磁盘上或存储在数据存储系统(诸如文件系统(未示出))中。
通信机构230通信地耦合事件接收器210和存储管理器220。在一个实施例中,通信机构230包括部分公用或完全公用的网络,诸如因特网。在其它实施例中,通信机构230包括专用网络或一个或多个有区别的或逻辑的专用网络(例如,虚拟专用网或局域网)。通往和来自通信机构230的通信链路可以是有线的或无线的(例如基于陆地或基于卫星的收发器)。在一个实施例中,通信机构230是分组交换网络,诸如使用以太网协议的基于IP的广域网或城域网。
在另一实施例中,通信机构230对单个计算机系统来说是本地的(例如,如果事件接收器210的部分和存储管理器220的部分在相同设备上执行)。在这个实施例中,通信机构230例如通过本地的、仅软件的环回设备而实施。例如,数据被复制到存储器中的各个位置,并且,经由API来进行通信。
在又一实施例中,通信机制230对单个过程来说是本地的(例如,如果事件接收器210的部分和存储管理器220的部分在相同设备上且在相同过程中执行)。在这个实施例中,通信机构230例如通过共享的存储器和/或指向其的指针而实施。
检查点
为了确保可靠性,存储管理器220成批(例如1000个组块)处理事件并在处理每个组块批次之后创建检查点。检查点被创建所依照的频率是可配置的。检查点可以被认为是指示数据已被处理直到特定时间点的标志。在系统崩溃发生时,系统可以从该标志被设置之后的时间点重新开始处理数据。
基于事件发生时间的聚类
图3A是根据实施例的基于事件发生时间生成事件组块的过程流程图。所描绘的过程流程300可以通过对可执行指令序列的执行而实施。在另一实施例中,过程流程300的各个部分由信息/事件管理系统、硬件逻辑的布置(例如专用集成电路(ASIC))等的组件来实施。例如,过程流程300的框可以通过信息/事件管理系统的聚类模块中可执行指令序列的执行而执行。
沿多个时间维度来聚类事件,并且针对每个相关时间维度维持索引。在一个实施例中,所有事件沿主要时间维度而被聚类,并且这些事件的子集沿次要时间维度而被重新聚类。被重新聚类的事件是作为(沿主要时间维度的)聚类的一部分的那些事件,该聚类不具有针对相关时间维度的最小化范围和/或最大化组块大小。如本文中使用的,组块大小指代组块中事件的数量。
在一个实施例中,事件是通过接收时间(“rt”)来聚类的,该接收时间(“rt”)是主要时间维度,并且,所产生的组块被保存在写入优化存储器中。次要时间维度可以是事件发生时间(“et”)。如下面描述的,步骤305-315描述了确定组块的密度级别的过程。密度级别用来标识用于重新聚类(即,根据次要时间维度的聚类)的事件的子集。确定密度级别可以在组块被生成、接收或存储(例如在数据文件中)之后被离线执行。替代地,随着密度级别被接收到,以流传输的方式确定该密度级别。
在步骤305,将与组块相关联的元数据读取到例如存储器。除了其它信息之外,组块的元数据包括用于标示被成组在特定组块中的事件的开始和结束时间范围的start_rt、end_rt、start_et和end_et。每个组块包括基于关联的接收时间而聚类的事件的集合。关联的元数据可以被存储在组块中且因此从组块中被提取。当组块被生成、接收时或者在组块已被存储(例如在数据文件中)之后,可以提取元数据。在另一实施例中,元数据被与数据文件分离地存储且例如从组块表格中检索。如前面描述的,元数据结构充当索引。照此,与每个聚类关联的元数据结构可以包括针对(通过接收时间而聚类的)组块的接收时间的范围的索引和针对相同组块的事件发生时间的范围的另一索引。
在步骤310,基于组块中的事件的事件发生时间的范围来确定组块的密度级别。事件发生时间的范围是从关联的元数据确定的。可以通过将组块中事件的总数除以事件发生时间的范围来确定密度级别,例如:
密度= 。
在步骤315,例如使用标签,将组块识别为例如下述各项之一:密集的、稀疏的或重叠的组块。
密集组块是其中et范围相对较短的组块。et范围可以是相对于密集时间范围阈值来测量的。对于密集组块,事件不需要洗牌成新的组块。
稀疏组块是其中et范围相对较长的组块。et范围可以是相对于稀疏时间范围阈值来测量的。换句话说,组块关于et稀疏,且因此需要被合并成其它组块。稀疏时间范围阈值大于密集时间范围阈值。
重叠组块是其中密集组块的et范围与稀疏组块的et范围重叠的组块。换句话说,重叠组块是与稀疏组块重叠(在et时间范围中)的密集组块,且照此可以通过重新聚类过程而优化。下面进一步描述重叠组块被优化的方式。
为了高效地给这些组块加标签,可以使用区间树。区间被构建在所有组块的事件发生时间范围[start_et, end_et]上。区间树允许范围交叉(即,O(log n)时间)的快速查找,并且照此,加标签过程是相当高效的。标签可以被维持在存储器中,或者替代地,可以被存储在磁盘上。在另一实施例中,组块被加标签有原始密度级别,且稍后在重新聚类过程期间被表征为下述各项之一:密集的、稀疏的或重叠的。
然后选择用于重新聚类的组块的子集。在步骤320,将组块的元数据部分从存储器(例如,写入优化存储器("WOS"))读取到存储器中。在一个实施例中,按照组块的事件发生时间的范围的start_et的顺序读取组块,使得具有开始事件发生时间较早的事件的组块被首先读取。
在步骤325,确定组块是稀疏组块还是重叠组块。如果组块既不稀疏也不重叠,则确定组块为密集组块。如先前讨论的,密集组块中的事件不需要被洗牌,并且照此,处理结束。
在另一方面,在发现组块是稀疏或重叠组块的情况下,处理继续到步骤330,其中根据事件发生时间来重新聚类或以其它方式聚类来自稀疏和/或重叠组块的事件。根据主要和次要时间维度的聚类最小化了组块的et和rt的范围两者。关于图3B进一步描述重新聚类。然后,处理继续回到步骤320,其中读取另一组块的元数据部分。
在重新聚类过程期间的任意时间处,在步骤340,确定密度阈值已被满足或者过期(stale)事件被检测到。
密度阈值确保作为重新聚类过程的一部分而创建的组块通过最小化et范围而被优化。密度阈值可以是可配置的。在任何新的信息中组块的密度比密度阈值大的情况下,确定在组块中存在足够的事件。在步骤350,生成新的组块并且将新生成的组块中的所有事件保存在读取优化存储器(“ROS”)中且从存储器中移除。
在重新聚类过程期间,可以存在一些不与其它事件聚类的事件,例如基于与事件发生时间的某种不相称。因此,可能具有可长时间保持在存储器中而不实际上被写入到读取优化存储器的事件。这些事件可以是过期事件。为了减小存储器开销,过期事件可以被成组为N个组块,其中数量N是可配置的。这些组块被存储在ROS中且从存储器清除。
照此,过期事件的检测是用于生成和在ROS中存储组块并从存储器中移除组块中的所有事件的另一触发。过期事件是事件发生时间小于(或在时间上早于)当前组块的开始事件发生时间的事件。如先前描述的,按事件发生时间的范围中的开始事件发生时间的升序读取组块。当前组块是要读取的最晚组块。随着按开始事件发生时间的顺序读取组块,因为不能存在事件发生时间小于当前组块的开始事件发生时间的任何事件,所以过期事件被从存储器移除。在一个实施例中,过期事件被一起成组在组块中且被存储。例如当组块大小满足阈值(例如5000个过期事件)时,创建过期事件组块。
如果密度阈值未被满足且过期事件也未被检测到,则不采用附加步骤并且重新聚类过程继续。另一方面,如果任一条件被满足,则在步骤350,生成组块并将组块保存在存储器(例如读取优化存储器(“ROS”))中。与新生成的组块相关联的元数据被更新为例如反映在组块中的所有事件上接收时间值和事件发生时间值的范围。
一个或多个结构可以存储关于在写入优化存储器和读取优化存储器两者中存储的组块的信息。当新的组块被生成时,关联的元数据和读取优化存储器中的组块的位置被维持。例如,组块表格可以被更新为包括新生成的组块的信息。具体来说,组块表格中的条目可以被添加。条目包括与新组块相关联的元数据(包括rt的范围和et的范围)和组块的位置(例如与存储组块的ROS数据文件相关联的唯一标识符和该数据文件内存储组块的位置(例如,作为偏移))。
在一个实施例中,原始组块的条目被维持。替代地,这些条目可以从组块表格和从磁盘移除,例如,如果原始组块中的所有信息是从原始组块精确复制的。如本文中使用的,原始组块是具有按主要时间维度成组的事件的组块。
可以实时地聚类和/或重新聚类事件,由此避免昂贵的I/O,这些昂贵的I/O原本将通过以离线方式加载事件且随后聚类而引入。另外,基于多个维度的聚类可以改进具有暂时数据属性的任何数据库管理系统(例如面向行的、面向列的等)的查询性能。
另外,新生成的组块的大小可以被保持为尽可能地接近于原始组块大小,既不太大也不太小。例如,密集组块将落入最大组块大小阈值(例如50000个事件)和最小组块大小阈值(例如5000个事件)的范围内。生成太小的组块将创建大量的元数据信息,并且针对每个元数据条目将存在少量的事件。具有更多组块且由此具有更多元数据条目将增加元数据存储的大小,这可能涉及更多的磁盘、处理器和管理时间。另外,更大的元数据存储将增加在查询时间期间读取其中的条目所花费的时间。
延迟的事件是通过网络缓慢传递且在最终被接收到时延迟的事件。成批事件是在被传输之前故意延迟的事件(例如,事件每10分钟作为批次而被收集和发送)。成批、延迟或以其它方式迟到的事件可以被高效地存储和查询。因为重新聚类过程创建具有按事件发生时间成组的事件的组块,所以成批或延迟事件可以与具有接近的事件发生时间的其它事件一起被合并在组块中。因此,可以使用组块的元数据来迅速查询这些类型的迟到事件。
图3B是根据实施例的基于事件发生时间把事件聚类成组块的过程流程图。所描绘的过程流程331可以通过可执行指令序列的执行而实施。在另一实施例中,过程流程331的各个部分由信息/事件管理系统、硬件逻辑的布置(例如专用集成电路(ASIC))等的组件来实施。例如,过程流程331的框可以通过信息/事件管理系统的聚类模块中可执行指令序列的执行而执行。
在一个实施例中,组块的子集已被识别以用于重新聚类。聚类可以在次要时间维度(诸如事件发生时间)上被执行。被识别以用于重新聚类的组块(例如稀疏和/或重叠组块)例如从写入优化存储器(“WOS”)被读取到存储器中。在步骤333,将稀疏和/或重叠组块分解成它们的组成事件。换句话说,所识别的组块中的事件被读取到存储器中。
在步骤335,基于事件发生时间,将每个事件排序为组。每个组与指定的et时间范围(例如一分钟范围)相关联。通过把事件放置在这些组中,可以减少用于创建平衡组块的存储器开销和管理任务。
在步骤337,将组聚类成多个组块,使得在多个组块之间,每个组块的密度级别是平衡的。例如,可以实施增强的红-黑树形结构以生成平衡组块。与每个个体事件相对,每个组可以被实施为树中的节点,这减少了开销和管理。
增强树中的每个节点可以维持其子树中的事件的密度。节点的密度是子树中事件的数量除以子树中的最大事件发生时间和子树中的最小事件发生时间之差,例如:
节点密度=。
随着事件被添加或移除并且树被重新平衡,这些密度值被维持。当该树足够平衡时,优化的组块被创建并存储在读取优化存储器中。照此,新生成的组块的et和rt的范围两者都被最小化,而组块大小被最大化。
特别对于重叠组块,将与密集组块中的事件重叠的稀疏组块中的事件与密集/重叠组块中的事件合并。作为合并的结果,密集组块变得更密集。换句话说,与密集组块重叠的稀疏组块中的事件被识别。这些事件按事件发生时间与密集组块合并。
图4A是根据实施例的聚类稀疏事件流的过程流程图。所描绘的过程流程400可以通过可执行指令序列的执行而实施。在另一实施例中,过程流程400的各个部分由信息/事件管理系统、硬件逻辑的布置(例如专用集成电路(ASIC))等的组件来实施。例如,过程流程400的框可以通过信息/事件管理系统的聚类模块中可执行指令序列的执行而执行。
在步骤405,识别不能被成组在密集组块中的事件。在步骤410,例如基于事件的接收时间将所识别的事件聚类成组块。因为这些组块不满足最小密度阈值,所以它们是稀疏组块。与新生成的组块相关联的元数据被更新为例如反映在组块中的所有事件上接收时间值和事件发生时间值的范围。在另一实施例中,事件被成组为组块以满足最小密度参数(S)。例如,当组块满足最小密度阈值S时,来自存储器的多个事件被成组为组块,并且,该多个事件被存储在ROS中。
在步骤420,将组块例如存储在读取优化存储器(“ROS”)中。组块中的所有事件从存储器移除。组块表格被更新为包括新生成的组块的信息。具体来说,组块表格中的条目可以被添加。条目包括与新组块相关联的元数据(包括rt的范围和et的范围)和组块的位置(例如,与存储组块的ROS数据文件相关联的唯一标识符和该数据文件内存储组块的位置(例如,作为偏移))。
最小密度阈值确保目标组块将具有至少S密度。这可以防止对手创建可能可创建大量稀疏组块的稀疏事件流。
照此,所生成的组块更密集。对于正态分布的事件流,更密集的组块创建更少的拆分,因此改进了查询性能。
查询/数据检索
在组块已被存储在数据文件(诸如数据文件285或数据文件286)中之后,可以查询组块内的事件。查询被表示为可针对事件而评估的表达。该表达包括一个或多个搜索项。在一个实施例中,查询过程在多个阶段中发生。第一阶段识别哪些数据组块(如果有的话)可能包含满足查询的事件。第二阶段把所识别的组块分解成其组成事件。第三阶段识别这些事件中的哪些(如果有的话)满足查询。由此,第一阶段充当“粗切”来识别哪些数据组块(及其事件)应当被进一步调查以及哪些数据组块(及其事件)应当被忽略。
在第一阶段中,查询内的搜索项被识别,该搜索项涉及被包含在元数据中的信息,元数据存储在组块表格280中。对于所关注的每个字段,该元数据信息包括一起反映在相同数据组块中的多个事件上该字段的值的范围的最小值和最大值。回想,组块表格280在写入优化存储器和读取优化存储器两者中存储组块的元数据信息。当新的组块作为重新聚类过程的一部分而被创建时,与这些新组块相关联的元数据也被存储在组块表格280中。因此,为了搜索事件,“元数据搜索项”被用于搜索组块表格280。这将产生哪些组块(如果有的话)可能包含满足元数据搜索项的事件。以这种方式,可以基于所关注的字段的特定值(或值的范围)来约束搜索(因为这些值存储在组块表格280中的元数据中),该特定值包括接收时间和事件发生时间两者。
因为元数据“所关注的字段”被表达为值的范围,所以组块满足元数据搜索项这一事实不一定意味着组块包含满足元数据搜索项的事件。例如,如果元数据搜索项是事件发生时间3:10 PM的字段值并且组块包含其事件发生时间分别是3:05 PM和3:15 PM的事件,则3:10 PM将落入范围内,并且该组块将被识别为满足元数据搜索项。然而,组块可以不包含字段值为10的事件。(这就是查询在两个阶段中发生的原因。)然而,始终成立的是:如果组块可能包含满足搜索项的事件,则该组块将被识别为满足搜索项。
在第二阶段中,所识别的组块被分解成它们的组成事件。如果组块的事件部分包括事件的压缩版本,则事件部分在它被分成其组成事件之前被解压缩。
在第三阶段中,将每个事件与搜索项的全集相比较以确定该事件是否满足搜索项。在一个实施例(未示出)中,按特定的顺序分析该事件。例如,基于事件的事件接收时间来分析该事件。按特定的顺序分析事件并且把匹配事件附加到搜索结果意味着搜索结果中的事件将已经按照该特定顺序。不涉及对事件的排序。
搜索可以对存储在组块250中的事件执行。然而,记录系统170可以包含尚未被存储在组块中的、事件管理器210中(例如,缓存器260的集合内)的附加事件。在一个实施例中,将不对这些事件执行搜索。在一个实施例中,在该过程被发起之前,缓存器260的集合被刷新以便事件将被发送到存储管理器220且存储在组块中。这样,当执行搜索时,先前处于缓存器集合中的事件也将被搜索。在另一实施例中,在事件接收器210上使用元数据结构265和缓存器260的集合的内容执行单独的搜索,类似于上面描述的搜索。这样,所有事件都将被搜索,不论它们是存储在存储管理器220中还是存储在事件接收器210中。
图4B是根据实施例的查询的过程流程图。所描绘的过程流程450可以通过可执行指令序列的执行而实施。在另一实施例中,过程流程400的各个部分由信息/事件管理系统、硬件逻辑的布置(例如专用集成电路(ASIC))等的组件来实施。例如,过程流程450的框可以通过信息/事件管理系统的聚类模块中可执行指令序列的执行而执行。
搜索查询可以被接收。搜索查询包括一个或多个搜索项。在步骤455,识别任何元数据搜索项(在所接收的搜索查询内)。例如,搜索项关于时间维度,诸如事件发生时间或接收时间。在一个实施例中,这两个时间维度都是“所关注的字段”,且因此具有存储在WOS 283和/或ROS 284中和组块表格280中的任何组块的元数据部分中的值范围。
在步骤460,使用元数据搜索项来搜索组块表格。回想,组块表格280中的每个条目对应于组块250,并且条目包括存储在组块中的元数据和写入优化存储器或读取优化存储器中组块的物理位置。所识别的元数据搜索项用于搜索组块表格280的元数据部分。
在步骤465,使用被存储在组块表格中的组块的位置从读取优化存储器(“ROS”)和/或写入优化存储器(“WOS”)中检索满足元数据搜索项的组块。
将所检索的组块分解470成它们的组成事件。在步骤475,针对搜索查询评估每个事件以便确定事件是否满足查询。如果事件满足查询,则它被包括在搜索结果中。
例如,一个常用类型的搜索项包括时间戳字段(例如事件接收、事件发生)和时间段(例如,开始时间和结束时间)。搜索查询可以指定:从事件选择count(*),其中A=X,B=Y,并且其中事件发生处于星期一12:00 AM和星期二12:00 AM之间。假设属性A在ROS中,但属性B不在。
在操作中,识别元数据搜索项(即,事件发生范围),如在步骤455中描述的那样。在步骤460,使用事件发生范围来搜索组块表格,其包括在事件发生范围上键入的索引。满足元数据搜索项的条目被识别。如先前讨论的,每个条目包括组块的位置(例如与存储组块的数据文件相关联的唯一标识符和数据文件内存储组块的位置(例如,作为偏移))。数据文件可以在ROS或WOS中。在一个实施例中,确定查询的哪些部分可以单独被ROS满足。对于所有其它的部分,WOS被访问,例如在按需要减小时间范围之后。
因为ROS可以比WOS更高效地被查询,所以ROS被首先搜索。可以参考组块表格以从ROS数据文件识别和检索满足事件发生时间范围的所有组块,如在步骤465处所描述的。
然后,将所检索的ROS组块(来自ROS数据文件)分解成它们的组成事件。关于这些事件评估搜索查询,如在步骤475处描述的。具体来说,事件被快速扫描以识别哪些满足条件A=X。
为了减小元数据搜索项时间范围并且因此提供增强的搜索性能,确定满足条件A=X的ROS组块的范围的子集。例如,这些ROS组块可以具有星期一12:00 AM到星期一1:00 PM以及星期一4:00 PM到星期二12:00 AM的事件发生时间范围。搜索项时间范围可以被减小到星期一1:01 PM到星期一4:00 PM的事件发生时间以覆盖搜索查询中的总时间范围中的间隙。照此,被搜索的事件发生时间的范围显著小于原始搜索查询中的范围。
以递归的方式,可以再次参考组块表格,这次是为了识别满足减小的事件发生时间范围的所有WOS组块,如在步骤460处所描述的。组块表格可以被参考以从WOS数据文件识别和检索满足减小的事件发生时间范围的所有组块,如在步骤465处所描述的。然后,将所检索的ROS组块(来自ROS数据文件)分解成它们的组成事件,如在步骤470处描述的。关于这些事件评估搜索查询,如在步骤475处描述的。具体来说,事件被快速扫描以识别哪些满足条件B=Y。
图5图示了可在其中实施实施例的计算机系统。系统500可以用于实施上面描述的任何计算机系统。计算机系统500被示出,包括可经由总线524而电耦合的硬件元件。硬件元件可以包括至少一个中央处理单元(CPU)502、至少一个输入设备504和至少一个输出设备506。计算机系统500还可以包括至少一个存储设备508。通过示例的方式,存储设备508可以包括诸如磁盘驱动器、光学存储设备、固态存储设备(诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”))之类的设备,其可以是可编程的、闪存可更新的和/或类似物。
计算机系统500可以另外包括计算机可读存储介质读取器512、通信系统514(例如调制解调器、网卡(无线或有线的)、红外通信设备等)以及工作存储器518,其可以包括如上面描述的RAM和ROM设备。在一些实施例中,计算机系统500还可以包括处理加速单元516,其可以包括数字信号处理器(DSP)、专用处理器和/或类似物。
计算机可读存储介质读取器512可以进一步连接到计算机可读存储介质510,一起(并且在一个实施例中,与存储设备508相结合)全面地表示远程、本地、固定和/或可移除的存储设备加上任何有形的非瞬变存储介质,用于临时和/或更持久地包含、存储、传输和检索计算机可读信息(例如指令和数据)。计算机可读存储介质510可以是非瞬变的,诸如硬件存储设备(例如RAM、ROM、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、硬盘驱动器和闪存)。通信系统514可以允许与网络和/或上面关于系统500描述的任何其它计算机交换数据。计算机可读存储介质510包括聚类模块527。
计算机系统500还可以包括软件元件,其是机器可读指令,被示出为当前位于工作存储器518内,工作存储器518包括操作系统520和/或其它代码522,诸如应用程序(其可以是客户端应用、网页浏览器、中间层应用等)。应当意识到,计算机系统500的替代实施例可以具有从上面描述的系统的许多变型。例如,定制硬件也可能被使用和/或特定元件可能以硬件、软件(包括便携式软件,诸如小应用程序)或两者实施。另外,可以采用到其它计算设备(诸如网络输入/输出设备)的连接。
相应地,说明书和附图被认为是在说明性的意义上而不是在限制性的意义上。然而,将明显的是,可以做出各种修改和改变。
在本说明书(包括任何所附权利要求、摘要和附图)中公开的每个特征可以被服务于相同、等同或类似目的的替代特征所替换,除非明确地另外声明。因此,除非明确地另外声明,所公开的每个特征是等同或类似特征的通用系列的一个示例。
Claims (15)
1.一种用于处理记录数据的方法,所述方法包括:
通过计算设备确定数据组块的集合,每个数据组块包括事件的集合,所述事件是根据事件的集合中的每个事件的主要时间维度字段来聚类的;
对于数据组块的集合中的每个数据组块,确定元数据结构,所述元数据结构包括数据组块中所有事件的主要时间维度字段的范围和数据组块中所有事件的次要时间维度字段的范围;
选择所述数据组块的子集;
把所述数据组块的子集分解成多个事件;以及
生成包括所述多个事件中的至少一个事件的数据组块,该事件是根据所述至少一个事件的次要时间维度字段而被聚类在所述数据组块中的。
2.根据权利要求1的方法,其中所述主要时间维度字段的范围包括数据组块中所有事件的主要时间维度字段的最小值和数据组块中所有事件的主要时间维度字段的最大值,并且其中次要时间维度字段的范围包括数据组块中所有事件的次要时间维度字段的最小值和数据组块中所有事件的次要时间维度字段的最大值。
3.根据权利要求1的方法,其中选择子集包括:针对所述数据组块的集合中的每个数据组块:
确定组块的密度级别;以及
如果所述数据组块是稀疏组块或密集组块,则基于组块的密度级别,确定所述子集包括所述数据组块。
4.根据权利要求3的方法,其中确定密度级别包括:
确定与组块相关联的事件的数量;以及
将所述事件的数量除以组块的事件的次要时间维度字段的范围。
5.根据权利要求3的方法,还包括:
将组块的次要时间维度字段的范围与密集时间范围阈值相比较;
如果该范围满足所述密集时间范围阈值,则确定组块是密集组块;
将组块的次要时间维度字段的范围与稀疏时间范围阈值相比较;以及
如果该范围满足所述稀疏时间范围阈值,则确定组块是稀疏组块。
6.根据权利要求5的方法,还包括:
将组块的次要时间维度字段的范围与所述稀疏组块的次要时间维度字段的范围相比较;以及
如果组块的范围与所述稀疏组块的范围重叠,则确定组块是重叠组块。
7.根据权利要求1的方法,其中多个数据组块被生成,并且其中所述数据组块的密度级别在多个所生成的数据组块之间被平衡。
8.根据权利要求1的方法,其中所述主要时间维度字段是事件接收时间。
9.根据权利要求1的方法,其中所述次要时间维度字段是事件发生时间。
10.根据权利要求1的方法,还包括:
把所生成的组块存储在读取优化存储器中的数据文件中;以及
把所述元数据结构更新成包括关于所生成的组块的信息。
11.根据权利要求1的方法,其中所述元数据结构还包括写入优化存储器中组块的集合中的每个组块的位置和读取优化存储器中所生成的组块的位置。
12.根据权利要求1的方法,还包括:
接收搜索查询,所述搜索查询包括搜索项的集合;
从所述搜索项的集合中识别涉及被包含在所述元数据结构中的事件时间信息的至少一个搜索项;以及
通过把所识别的搜索项与所述主要时间维度字段的最小值以及与所述次要时间维度字段的最小值相比较来搜索所述元数据结构。
13.根据权利要求12的方法,还包括:
识别满足所述搜索项的数据组块;以及
从读取优化存储器中检索所识别的数据组块。
14.一种用于处理记录数据的系统,包括:
接收模块,用于生成数据组块的集合,每个数据组块包括事件的集合,所述事件是根据事件的集合中的每个事件的主要时间维度字段来聚类的;
组块表格,用于对于数据组块的集合中的每个数据组块维持元数据结构,所述元数据结构包括数据组块中所有事件的主要时间维度字段的范围和数据组块中所有事件的次要时间维度字段的范围;
读取优化存储器,用于存储所述数据组块的子集;
写入优化存储器;以及
聚类模块,用于选择所述数据组块的子集,并使用所述子集的事件生成数据组块,其中所述子集的事件是根据次要时间维度字段来成组的。
15.一种非瞬变计算机可读介质,存储用于控制数据处理器处理记录数据的多个指令,所述多个指令包括使所述数据处理器执行如下操作的指令:
确定数据组块的集合,每个数据组块包括事件的集合,所述事件是根据事件的集合中的每个事件的主要时间维度字段来聚类的;
对于数据组块的集合中的每个数据组块,确定元数据结构,所述元数据结构包括数据组块中所有事件的主要时间维度字段的范围和数据组块中所有事件的次要时间维度字段的范围;
选择所述数据组块的子集;
把所述数据组块的子集分解成多个事件;以及
生成包括所述多个事件中的至少一个事件的数据组块,所述至少一个事件是根据所述至少一个事件的次要时间维度字段而被聚类在所述数据组块中的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161564207P | 2011-11-28 | 2011-11-28 | |
US61/564207 | 2011-11-28 | ||
PCT/US2012/022775 WO2013081650A1 (en) | 2011-11-28 | 2012-01-26 | Clustering event data by multiple time dimensions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104067281A true CN104067281A (zh) | 2014-09-24 |
Family
ID=48535924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280068235.3A Pending CN104067281A (zh) | 2011-11-28 | 2012-01-26 | 按多个时间维度的聚类事件数据 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9853986B2 (zh) |
EP (1) | EP2786284A4 (zh) |
CN (1) | CN104067281A (zh) |
WO (1) | WO2013081650A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106257482A (zh) * | 2015-06-19 | 2016-12-28 | 伊姆西公司 | 数据分析结果的管控放置 |
CN107273219A (zh) * | 2017-04-28 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 设备控制方法及装置 |
CN107844572A (zh) * | 2017-11-04 | 2018-03-27 | 公安部第三研究所 | 多维度事件关联分析方法 |
CN108628929A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
US10699449B2 (en) | 2015-03-17 | 2020-06-30 | Hewlett-Packard Development Company, L.P. | Pixel-based temporal plot of events according to multidimensional scaling values based on event similarities and weighted dimensions |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5954407B2 (ja) * | 2012-03-16 | 2016-07-20 | 富士通株式会社 | 評価サーバ、評価プログラム及び評価方法 |
US9633134B2 (en) * | 2012-12-26 | 2017-04-25 | Fireeye, Inc. | Timeline wrinkling system and method |
US9596279B2 (en) * | 2013-02-08 | 2017-03-14 | Dell Products L.P. | Cloud-based streaming data receiver and persister |
US9191432B2 (en) | 2013-02-11 | 2015-11-17 | Dell Products L.P. | SAAS network-based backup system |
US9141680B2 (en) | 2013-02-11 | 2015-09-22 | Dell Products L.P. | Data consistency and rollback for cloud analytics |
US9442993B2 (en) | 2013-02-11 | 2016-09-13 | Dell Products L.P. | Metadata manager for analytics system |
US8719462B1 (en) | 2013-10-16 | 2014-05-06 | Google Inc. | Systems and methods for distributed log file processing |
US9616344B2 (en) * | 2014-03-31 | 2017-04-11 | Electronic Arts Inc. | Two-dimensional database query |
JP6252309B2 (ja) * | 2014-03-31 | 2017-12-27 | 富士通株式会社 | 監視漏れ特定処理プログラム,監視漏れ特定処理方法及び監視漏れ特定処理装置 |
FR3023040B1 (fr) * | 2014-06-27 | 2016-11-04 | Thales Sa | Systeme de cyberdefence d'un systeme d'information, programme d'ordinateur et procede associes |
US10296616B2 (en) | 2014-07-31 | 2019-05-21 | Splunk Inc. | Generation of a search query to approximate replication of a cluster of events |
US10812327B2 (en) * | 2014-07-31 | 2020-10-20 | Ent. Services Development Corporation Lp | Event clusters |
US10817540B2 (en) * | 2016-09-02 | 2020-10-27 | Snowflake Inc. | Incremental clustering maintenance of a table |
US10740464B2 (en) * | 2017-06-02 | 2020-08-11 | Veracode, Inc. | Self-scanning of deployed software applications |
US10698756B1 (en) * | 2017-12-15 | 2020-06-30 | Palantir Technologies Inc. | Linking related events for various devices and services in computer log files on a centralized server |
US11238012B1 (en) * | 2018-05-15 | 2022-02-01 | Splunk Inc. | Log data extraction from data chunks of an isolated execution environment |
US11113301B1 (en) | 2018-05-15 | 2021-09-07 | Splunk Inc. | Generating metadata for events based on parsed location information of data chunks of an isolated execution environment |
GB201809174D0 (en) * | 2018-06-05 | 2018-07-25 | Swarm64 As | Data processing |
US11210312B2 (en) | 2018-06-08 | 2021-12-28 | Microsoft Technology Licensing, Llc | Storing data items and identifying stored data items |
US11074244B1 (en) * | 2018-09-14 | 2021-07-27 | Amazon Technologies, Inc. | Transactional range delete in distributed databases |
US11537627B1 (en) | 2018-09-28 | 2022-12-27 | Splunk Inc. | Information technology networked cloud service monitoring |
US11941421B1 (en) | 2021-07-09 | 2024-03-26 | Splunk Inc. | Evaluating and scaling a collection of isolated execution environments at a particular geographic location |
CN114285601B (zh) * | 2021-11-24 | 2023-02-14 | 南京信息职业技术学院 | 一种大数据的多密集块检测与提取方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050060A1 (en) * | 2003-08-27 | 2005-03-03 | Gerard Damm | Data structure for range-specified algorithms |
CN1717652A (zh) * | 2002-10-25 | 2006-01-04 | 特博数据实验室公司 | 数据处理方法和数据处理程序 |
US20090199118A1 (en) * | 2008-02-05 | 2009-08-06 | Sivan Sabato | System and Method for Visualization of Time-Based Events |
US20100280927A1 (en) * | 2009-05-04 | 2010-11-04 | Patrick Faith | Pre-authorization of a transaction using predictive modeling |
CN102239472A (zh) * | 2008-09-05 | 2011-11-09 | Arc景象有限责任公司 | 在支持查询的同时高效地存储日志数据 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788521B1 (en) | 2005-07-20 | 2010-08-31 | Bakbone Software, Inc. | Method and system for virtual on-demand recovery for real-time, continuous data protection |
US7461073B2 (en) | 2006-02-14 | 2008-12-02 | Microsoft Corporation | Co-clustering objects of heterogeneous types |
JP4804408B2 (ja) | 2007-04-17 | 2011-11-02 | 株式会社日立製作所 | ログ解析方法及び装置 |
KR101003842B1 (ko) | 2008-10-24 | 2010-12-23 | 연세대학교 산학협력단 | 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템 |
US9852193B2 (en) | 2009-08-10 | 2017-12-26 | Ebay Inc. | Probabilistic clustering of an item |
US8577815B2 (en) | 2009-10-23 | 2013-11-05 | GM Global Technology Operations LLC | Method and system for concurrent event forecasting |
US8209567B2 (en) | 2010-01-28 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Message clustering of system event logs |
-
2012
- 2012-01-26 EP EP12853508.5A patent/EP2786284A4/en not_active Withdrawn
- 2012-01-26 WO PCT/US2012/022775 patent/WO2013081650A1/en active Application Filing
- 2012-01-26 CN CN201280068235.3A patent/CN104067281A/zh active Pending
- 2012-01-26 US US14/359,261 patent/US9853986B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1717652A (zh) * | 2002-10-25 | 2006-01-04 | 特博数据实验室公司 | 数据处理方法和数据处理程序 |
US20050050060A1 (en) * | 2003-08-27 | 2005-03-03 | Gerard Damm | Data structure for range-specified algorithms |
US20090199118A1 (en) * | 2008-02-05 | 2009-08-06 | Sivan Sabato | System and Method for Visualization of Time-Based Events |
CN102239472A (zh) * | 2008-09-05 | 2011-11-09 | Arc景象有限责任公司 | 在支持查询的同时高效地存储日志数据 |
US20100280927A1 (en) * | 2009-05-04 | 2010-11-04 | Patrick Faith | Pre-authorization of a transaction using predictive modeling |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10699449B2 (en) | 2015-03-17 | 2020-06-30 | Hewlett-Packard Development Company, L.P. | Pixel-based temporal plot of events according to multidimensional scaling values based on event similarities and weighted dimensions |
CN107209770B (zh) * | 2015-03-17 | 2020-10-30 | 惠普发展公司,有限责任合伙企业 | 用于分析事件的系统和方法以及机器可读存储介质 |
CN106257482A (zh) * | 2015-06-19 | 2016-12-28 | 伊姆西公司 | 数据分析结果的管控放置 |
CN106257482B (zh) * | 2015-06-19 | 2019-04-05 | 伊姆西公司 | 数据分析结果的管控放置 |
CN108628929A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN108628929B (zh) * | 2017-03-24 | 2021-11-16 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN107273219A (zh) * | 2017-04-28 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 设备控制方法及装置 |
CN107273219B (zh) * | 2017-04-28 | 2019-09-06 | 中国人民解放军国防科学技术大学 | 设备控制方法及装置 |
CN107844572A (zh) * | 2017-11-04 | 2018-03-27 | 公安部第三研究所 | 多维度事件关联分析方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2786284A4 (en) | 2015-08-05 |
WO2013081650A1 (en) | 2013-06-06 |
EP2786284A1 (en) | 2014-10-08 |
US9853986B2 (en) | 2017-12-26 |
US20140359771A1 (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104067281A (zh) | 按多个时间维度的聚类事件数据 | |
US20230041672A1 (en) | Enterprise data processing | |
CN110765337B (zh) | 一种基于互联网大数据的服务提供方法 | |
CN102918534B (zh) | 查询管道 | |
EP2097824B1 (en) | Storing log data efficiently while supporting querying to assist in computer network security | |
CN103782293B (zh) | 用于数据分区的多维集群 | |
CN102239472B (zh) | 在支持查询的同时高效地存储日志数据 | |
US20130246334A1 (en) | System and method for providing data protection workflows in a network environment | |
US9992269B1 (en) | Distributed complex event processing | |
US20120290544A1 (en) | Data compliance management | |
US20190050435A1 (en) | Object data association index system and methods for the construction and applications thereof | |
US20130036127A1 (en) | Document registry system | |
CN113791586A (zh) | 一种新型的工业app与标识注册解析集成方法 | |
CN104246787A (zh) | 用于模式发现的参数调节 | |
CN113626447B (zh) | 一种民航数据管理平台及方法 | |
CN111368039B (zh) | 一种数据管理系统 | |
US11886229B1 (en) | System and method for generating a global dictionary and performing similarity search queries in a network | |
WO2013066361A1 (en) | Distributed event processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140924 |