CN107004036B - 用以搜索包含大量条目的日志的方法和系统 - Google Patents
用以搜索包含大量条目的日志的方法和系统 Download PDFInfo
- Publication number
- CN107004036B CN107004036B CN201580067554.6A CN201580067554A CN107004036B CN 107004036 B CN107004036 B CN 107004036B CN 201580067554 A CN201580067554 A CN 201580067554A CN 107004036 B CN107004036 B CN 107004036B
- Authority
- CN
- China
- Prior art keywords
- symptom
- logs
- data
- log
- scanning
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了用以搜索包含大量条目的日志的技术。在各种实施例中,递增地预扫描日志以标识感兴趣的日志。至少部分基于确定日志满足与征兆相关联的征兆定义而将日志标识为感兴趣的日志。生成对于满足征兆定义的那些感兴趣的日志的征兆预扫描结果。将征兆预扫描结果存储在可搜索的预扫描结果数据存储库中。
Description
技术领域
本发明涉及用以搜索包含大量条目的日志的方法和系统。
背景技术
在IT环境中,大多数设备每天生成日志。这些日志对于操作、统计、消除缺陷和其他管理工作是非常重要的。一般地,日志条目是非结构化数据。为了促进这些任务,解析非结构化日志并且将有价值的信息存储到贮存库中是常见惯例。然而,当管理大型IT环境比如全球公司时,或者向大量消费者提供云服务时,日志量可能是巨大的。从数百亿记录内发现感兴趣信息是困难且耗时的任务。
附图说明
在以下详细描述和附图中公开了本发明的各种实施例。
图1是图示用以预扫描日志的系统的实施例的框图。
图2是图示用以预扫描日志的过程的实施例的流程图。
图3是图示用以预扫描日志的系统和过程的实施例的框图。
图4是图示用以执行基本预扫描处理的系统的实施例的框图。
图5A是图示引用另一征兆的征兆的示例的框图。
图5B是图示在征兆之间的多个、分层引用的示例的框图。
图5C是图示其中征兆引用多个其他征兆的示例的框图。
图6A和6B图示诸如可以在缺陷定义中涉及的征兆的示例。
图7是图示用以针对至少部分由模式定义的、取决于所引用征兆的征兆执行预扫描的系统的实施例的框图。
图8是图示用以预扫描日志的过程的实施例的流程图。
图9是图示响应于扫描请求或者其他搜索查询的过程的实施例的流程图。
具体实施方式
本发明可以以许多方式实施,所述方式包括如过程、装置、系统、物质的组成、包括在计算机可读存储介质上的计算机程序产品、和/或处理器,诸如被配置成执行存储在耦合到处理器的存储器上和/或由该存储器提供的指令的处理器。在本说明书中,这些实现方式或者本发明可以采取的任何其他形式可以被称为技术。一般地,所公开的过程的步骤的次序可以在本发明的范围内更改。除非以其他方式说明,否则诸如被描述为配置成执行任务的处理器或者存储器之类的组件可以被实施为临时地被配置成在给定时间处执行任务的一般组件或者被制造成执行任务的特定组件。如本文中使用的,术语‘处理器’指代被配置成处理数据的一个或者多个设备、电路和/或处理核,诸如计算机程序指令。
本发明的一个或者多个实施例的详细描述在以下连图图示本发明的原理的附图一同被提供。本发明结合这样的实施例被描述,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明涵盖许多替换项、修改和等价物。在以下描述中阐述了许多特定细节以便提供对本发明的透彻理解。这些细节为了示例的目的而被提供,并且在没有这些特定细节中的一些或者所有的情况下,本发明可以根据权利要求来实践。为了清楚的目的,在与本发明相关的技术领域中已知的技术材料未详细描述,以使得不使本发明不必要地模糊不清。
公开了在日志扫描或者搜索时间之前预扫描从系统的安装基础(例如,硬件、软件、其组合等等)接收到的日志以标识征兆匹配。在各种实施例中,日志可以在接收到所述日志时被预扫描,和/或关于日志(其已自从最近的预扫描日志以后而接收到)分批地预扫描(递增的预扫描)。预扫描在各种实施例中可以包括在日志被预扫描时发现在日志中的征兆匹配,以及将与这样的匹配和/或其中发现了匹配的日志相关联的数据存储在贮存库或者其他数据和/或知识存储库中。在各种实施例中,征兆可以是基于模式的、基于比较的、或者以其他方式定义的。在扫描/搜索时间处,搜索查询可以被构建,例如引用一个或者多个征兆和/或一组或者多组征兆,并且其中发现了对于这样的征兆的匹配的预扫描日志和/或相关联的预扫描结果数据可以被用来响应于搜索查询而发现和返回日志。
通常,日志是一组文本输出,其由系统自动生成,被组织在文件或者命令行中。日志通常包括按时间戳排序的一组日志条目。日志条目可以包括在日志中彼此相邻的一行或者多行,其标识事件。日志条目通常包括时间戳和非结构化消息。非结构化消息不限制于完全的文本格式,但是也可以被呈现为数字、日期、超链接等等。
公开了用以定位感兴趣的一组日志条目因此可以进一步处理它们的技术。在各种实施例中,征兆和征兆组可以被定义和用于规定日志内的感兴趣信息。在各种实施例中,征兆可以是基于模式的、基于比较的、或者以其他方式定义的。
模式可以标识感兴趣的消息。在各种实施例中,模式可以使用若干方法中的一种或者多种来规定,所述方法包括但不限于正则表达式。正则表达式可以是搜索日志条目的有效方法。例如,模式“^.*([1-9][0-9]{3,}) opaque entries.*$”意味着不透明条目的数目大于或者等于1000(假设在消息中不存在数字分隔符)。
基本征兆可以由模式和(可选地)某一时段内的频率(出现数目)约束组成。简单征兆可以由模式定义,并且不具有任何频率约束。一旦日志条目匹配模式,则满足该征兆。更复杂的征兆可以包括频率约束,诸如在某一时段内的出现数目。例如,模式在5分钟中的5次或者更多匹配,诸如“Command timeout .*chnl/tgt/lun(\d+/\d+/\d+) .* Noretry”。其他频率约束的示例包括:在某一时段中恰好出现一次([1,1]);在某一时段中出现多于两次([2,+∞]);等等。
高级的基于模式的征兆可以用引用其他征兆的代替项来定义。例如,高级征兆A可以被定义为“$1:leave”,其中,“$1”是征兆B“(ioc\d+):enter”的第一匹配的代替项。利用代替项,这两个征兆相关联。在以上示例中,征兆A和征兆B可以用作相同设备的一对“进入”和“离开”,所述相同设备例如“I/O控制器”(“ioc”),其具有相同设备标识符“d”。
可以定义基于比较的征兆。例如,基于比较的征兆可以参考与开始事件(例如,操作的开始)相关联的开始时间和与结束事件(例如,相同的操作结束)相关联的结束时间以及在开始时间与结束时间之间的经过时间量与检测阈值之间的比较来定义。例如,在各种实施例中,开始事件可以在例如基于模式匹配的预扫描中检测,并且包括事件的时间戳的预扫描结果被存储。随后,预扫描可以检测对应的结束事件,并且捕获所观察的结束时间。所观察的经过时间可以基于预扫描的结果计算,并且如果被计算为具有在开始与结束事件之间的经过的时间超过时间的最大量(检测阈值),则可以确定基于比较的征兆已被检测到/匹配,并且对应的预扫描的结果可以被生成和存储。
在各种实施例中,征兆组可以被定义为包括用逻辑运算和时间约束连结的一个或者多个征兆。
图1是图示用以预扫描日志的系统的实施例的框图。在示出的示例中,包括系统的安装基础的多个系统,其在图1中由系统102、104和106表示,生成日志(例如,日常日志)并且将它们经由网络108发送到日志摄取服务器110,其将接收到的日志存储在原始日志储存器112中。例如,日志摄取服务器110和原始日志数据储存器112可以与支持中心或者相似组织和/或基础设施相关联,所述支持中心或者相似组织和/或基础设施与为系统102、104和106的用户提供技术支持和/或分析日志数据以标识和修复关于系统(诸如系统102、104和106)的缺陷或者其他问题相关联。在示出的示例中,日志分析系统114被配置成分析由日志摄取服务器110接收到的日志。在各种实施例中,日志分析系统114可以例如在接收到日志时、递增地分批地、等等预扫描日志以标识征兆匹配。与缺陷定义相关联的基于模式的、基于比较的、和/或其他征兆可以被存储在缺陷定义存储库116中,并且用于执行预扫描。日志和/或日志的部分(在其中,在预扫描期间发现征兆匹配)可以被存储在“感兴趣的日志”数据存储库118中。数据存储库118在各种实施例中可以包括一个或者多个数据库表和/或其部分,并且可以存储在企业内容管理系统或者其他贮存库上。
图2是图示用以预扫描日志的过程的实施例的流程图。在各种实施例中,图2的过程可以由诸如图1的日志分析系统114之类的日志分析系统实现。在示出的示例中,在滚动(或者分批的,或者其他递增的)基础上预扫描日志以标识感兴趣的日志(202)。例如,模式匹配可以用来标识感兴趣的日志。感兴趣的日志被处理以确定是否匹配任何(一个或者多个)征兆(204)。例如,可以定义征兆为在检测到在规定时间段内给定模式出现规定数目时被匹配;或者在基于比较的征兆的情况下,可以在所观察的和/或所计算的值和对应阈值之间做出比较。作为与已被检测到的模式相匹配的结果而被确定为感兴趣的日志可以被进一步处理,以将该模式出现数目和/或频率与征兆定义相比较。如果发现征兆匹配(206),则采取响应的动作(208)。例如,征兆预扫描结果可以被存储,例如以便稍后用于响应于与征兆相关联的搜索查询。预扫描对于还没有被预扫描的日志继续进行(210),直到所有日志都已被处理为止。
图3是图示用以预扫描日志的系统和过程的实施例的框图。在示出的示例中,相对于原始日志302执行模式预扫描处理,从而产生模式预扫描结果304。模式预扫描结果304可以包括一个或者多个数据库条目,其标识在其中已经发现模式匹配的日志(例如,感兴趣的日志)、被匹配的模式等等。模式预扫描结果304用来例如通过进一步进行预扫描来标识在其中满足频率约束(例如,在规定时间段内给定模式匹配出现的规定数目)的感兴趣的日志,并且生成和存储征兆预扫描结果306。
图4是图示用以执行基本预扫描处理的系统的实施例的框图。在示出的示例中,一组原始日志数据包括已经被预扫描的日志402和还没有被预扫描的日志404。指针或者其他数据结构、实体、或者构造(未示出)可以用来跟踪哪些日志已经被预扫描(402)并且哪些还没有被预扫描(404)。相对于还没有被预扫描的日志404执行基本预扫描处理406(例如,基本模式匹配、执行在所观察的/计算的值和对应阈值之间的基本比较等等)。感兴趣的日志和/或相关联的元数据被存储在贮存库408中,例如,被存储在一个或者多个数据库表和/或其分割中。在各种实施例中,一旦已经相对于日志执行了预扫描处理,则该日志可能不被进一步扫描。替代地,与日志相关联的预扫描结果(如果存在)可以与其他预扫描结果一同用于对扫描请求和/或其他搜索查询进行响应,如以下更充分地描述的。
在各种实施例中,征兆可以至少部分通过对一个或者多个其他征兆的引用(例如,一个或者多个分层引用)来定义,所述征兆可以被称为取决于所述一个或者多个其他征兆。
图5A是图示引用另一征兆的一个征兆的示例的框图。在示出的示例中,征兆A包括例如在征兆A的定义中的对征兆B的引用。例如,在征兆A的定义中规定的一个或者多个准则可以涉及征兆B的出现,和/或涉及与征兆B的出现相关联的一个或者多个数据字段、数据值、和/或其他数据。例如,与某些过程、动作、事件等相关联的征兆A结尾可以引用征兆B,所述征兆B的对应出现可以通过引用与对应出现相关联的数据值(例如,过程或者其他标识符、端口号、设备或者其他实体标识符等等)来标识。
图5B是图示在征兆之间的多个分层引用的示例的框图。在示出的示例中,征兆A引用征兆B,征兆B进而引用征兆C。对于要匹配的征兆A而言,可能要求征兆B的对应出现,进而可能仅在发现了征兆C的对应出现的情况下发现征兆B出现。
图5C是图示其中一个征兆引用多个其他征兆的示例的框图。在示出的示例中,征兆A直接引用征兆B和征兆C。对于要匹配的征兆A而言,例如,可能有必要使得征兆B和征兆C的对应出现被发现。在各种实施例中,征兆A的出现的一个或者多个属性可以从与征兆B和征兆C中的一个或者两者相关联的数据值(例如,在征兆A的定义中规定的数据值)导出。
在各种实施例中,“缺陷”可以包括可以被标识和修复的任何事物。“缺陷”或者其他可修复问题定义可以规定招致缺陷和精确标识它的(一个或者多个)征兆的硬件模型和软件版本。必须以特定次序并在特定时间段中发生的多个征兆可以被规定。在一些实施例中,测试缺陷定义的结果是真或者假;如果为真,则匹配的缺陷签名(即,唯一标识缺陷出现的征兆数据的那个部分)可以作为证据被提供。
在一些实施例中,征兆可以是可以用布尔运算(诸如模式匹配或者比较)检测的任何事物。取决于征兆定义,布尔运算可能需要在所规定时段(时间范围)内成功达所规定数目的次数(最小到最大),以便整个征兆定义将测试为真。在一些实施例中,相同征兆可以被多个缺陷引用。
在一些实施例中,基于模式的征兆可以用于定义缺陷。模式可以被规定为正则表达式。征兆可以引用被另一征兆匹配的部分来规定其模式。
在一些实施例中,缺陷定义可以用于基于产品的属性或者行为而标识所述产品。
图6A和6B图示诸如可能在缺陷定义中涉及到的征兆的示例。例如,缺陷定义可以针对与备份(或者其他)应用相关联的问题创建,所述备份(或者其他)应用执行在目标存储系统上的相同源目录内的“过多”重命名。图6A是示出用于捕获源目录的名称的征兆的征兆定义的元素的框图。图6B是示出征兆的征兆定义的元素的框图,其用于检测相对于与在图6A中定义的征兆的出现相关联的源目录而言超过了重命名阈值。
在各种实施例中,通过由支持系统(诸如被配置成提供缺陷定义工具或者其他接口并且接收和存储缺陷定义的系统)自动生成的唯一标识符标识每个征兆。当在缺陷定义内引用时,征兆描述被加附到标识符。在一些实施例中,相同征兆可以由不同缺陷引用。以不同疾病(例如,感冒、链球菌性喉炎和扁桃体炎)展现共同征兆(例如,咽喉痛)的相同方式,多个缺陷定义可以共享共同的征兆定义。
在一些实施例中,缺陷定义可以直接引用其自身引用一个或者多个其他征兆的征兆。在这样的情况下,缺陷定义可以要求两个或者更多征兆定义,即使仅一个被明确引用。
参考图6A中示出的示例,征兆定义600包括描述602和“征兆数据”字段604,在其中规定要被扫描以用于匹配征兆定义的日志,在该示例中日志命名为“ddfs.info”。在一些实施例中,缺陷可以使用通过使用不同数据源定义的征兆;这使得缺陷能够针对跨多个产品的解决方案而定义。
正则表达式被输入在征兆模式字段606来规定感兴趣的征兆。在一些实施例中,括号可以用来保存匹配于所围起的模式的文本,以使得其可以用来规定另一征兆的模式。以下更详细描述这种“向后引用”能力。
最小值和最大值字段规定在征兆被认为已经出现之前模式必须被匹配的次数。如果未规定,则至少必须出现1次匹配,即最小值是1,并且最大值是任何数。在示出的示例中,在图6A中,只有最小值字段608有值,在该情况下是“1”,并且没有频率约束(见时间范围字段610中的“无”),从而指示单个模式匹配满足征兆。
时间范围字段(数和单元)规定在征兆被认为已经出现之前模式必须被匹配的时间段。如果未规定,则不应用时间约束。如果规定,则如由最小值和最大值字段规定的匹配数目必须在征兆被认为已经出现之前在该时间段内出现。
在图6A中示出的示例中,征兆600在ddfs.info日志中搜索至少一个模式匹配。其可以例如通过在括号中围起要从匹配日志捕获的文本来“捕获”表示用于重命名操作的源目录的文本,如以上描述的。参考图6B,征兆定义可以涉及该被捕获的文本,并且代替该被捕获的文本来规定其模式。通过使用向后引用,征兆定义620有效地针对在日志数据中发现的每个源目录定义了单独的模式。
进一步参考图6B,缺陷定义620包括描述622,并且包括附加字段,其在代替项(即,来自所引用的征兆的数据的代替项)被包括在征兆定义中时变得可用。
在示出的示例中,字符串字段624规定将用来在模式中指示向后引用的字符串。第一代替字符串可以默认为$1,即在本示例中使用的字符串。然而,如果需要模式来发现文本“$1”,则可以规定替换的代替字符串。
代替字段626、628和630规定当在模式中遇到时应该代替字符串使用的信息。存在多种类型的代替项,但是在该示例中,通过从下拉列表(626)选择引用并且规定征兆号(628)来指示向后引用。所规定的征兆号必须包含具有“捕获”匹配文本的至少一组括号的模式。要注意,模式可以具有多组括号,因此引用号指示哪一个(其在模式内的位置)。如果规定映射(630),则所捕获的文本将在另一字符串在模式中被代替之前被映射到所述另一字符串。
要注意,模式可以规定来自多个征兆的向后引用。在一些实施例中,如果定义了附加代替项,则第二代替字符串默认为$2,第三代替字符串默认为$3,等等。
征兆620中的模式包含$1代替字符串,其在该示例中表示重命名操作中的源目录,尤其是在图6A的征兆600的所引用出现中捕获了其名称的源目录。当至少10个重命名在5分钟时段内出现(分别由最小值和时间范围字段规定)时,征兆被认为已出现。
图7是图示用以针对至少部分由模式定义的、取决于所引用征兆的征兆执行预扫描的系统的实施例的框图。在示出的示例中,一组原始日志数据包括之前已经被预扫描的日志702和还没有被预扫描的日志704。在处理一个取决于一个或者多个其他征兆的征兆(诸如图6B的征兆620)时,在706处确定被预扫描的日志是否已经被预扫描以用于与所引用征兆相匹配。如果否,则在708处,相对于日志执行基本的(或者如果所引用的征兆其本身引用其他征兆,则是较不基本的)预扫描以针对所引用征兆的出现而预扫描。与所引用征兆的任何匹配造成包括和/或标识感兴趣的日志和/或其部分的数据被添加到贮存库710,并且处理被返回到重新开始相对于包括(一个或者多个)引用的征兆进行预扫描。一旦任何(一个或者多个)所引用的征兆已经被预扫描(706),则执行基本的预扫描以发现对于被包括在引用所引用征兆的征兆定义中的模式的潜在匹配(712),以及对于每个潜在匹配,执行检查以确定在将包括在模式定义中的占位符用与所引用征兆的对应出现相关联的对应所引用数据代替时是否发现了完整匹配(714)。对于在来自所引用征兆的数据代替引用了所引用征兆的征兆的模式定义中的占位符之后发现的每个匹配,对应日志数据和/或相关联的(例如,征兆匹配)元数据被存储在贮存库710中。
在一些实施例中,可以执行与以上结合图7描述的处理相似的处理,以针对引用和/或取决于其他征兆的征兆(而不是通过将引用与所引用的征兆相关联的数据的占位符包括在定义征兆的模式中)预扫描。例如,在以上描述的基于比较的征兆中(在其中,操作的开始时间和结束时间被用来计算经过时间,所述经过时间然后与阈值相比较),与阈值相关联的征兆可以引用用来检测操作已经开始或者停止和/或用来捕获相关联的时间戳的其他征兆。在一些实施例中,如图7中示出的重复性预扫描处理可以用来首先预扫描所引用的征兆,在该示例中是操作开始和停止事件,然后为了针对基于经过时间阈值比较的征兆进行预扫描,使用与出现所引用征兆相关联的预扫描结果来计算经过时间。
图8是图示用以预扫描日志的过程的实施例的流程图。在各种实施例中,图8的过程可以用来针对匹配引用另一模式(例如,另一征兆)的某个模式的日志/条目进行预扫描。在示出的示例中,相对于模式的非占位符部分执行基本扫描(802)。例如,假设高级征兆A被定义为“$1:leave”,其中,“$1”是征兆B“(ioc\d+):enter”的第一匹配的代替项。在该示例中,征兆A和征兆B可以用作相同设备的一对“进入”和“离开”,在该情况中所述相同设备是对应于标识符“d”的“I/O控制器”(或者“ioc”)。在一些实施例中,步骤802将包括在针对征兆A的预扫描中,针对用于表达用于定义征兆A的模式的正则表达式的非占位符部分执行基本扫描,所述模式在该情况下是字符串“leave”(或者,“:leave”)。如果发现了基本匹配(804),则获取与占位符相关联的所引用数据(806)。例如,相对于相同设备/系统的与征兆B相关联的预扫描结果数据例如可以被取回,并且在与征兆B相关联的以上模式中在括号中围起的数据,所述征兆B尤其是“ioc\d”,其可以例如包括对特定I/O控制器(诸如ioc1)的引用,可以被确定并且被用来进一步评估征兆A。如果在用来自所引用征兆的出现的对应数据代替当前正被评估的征兆的占位符数据时,确定已经满足了其他征兆和/或征兆组检测准则的匹配(808),则相关联的日志或者其部分被标识为匹配(810),并且存储预扫描结果数据。如果没有满足征兆或者征兆组检测准则(808),则确定没有发现匹配(812),并且重新开始对其他还没有被扫描的日志和/或其部分的预扫描,直到所有日志都已经被预扫描或者该过程以其他方式结束(814)。
图9是图示响应于扫描请求或者其他搜索查询的过程的实施例的流程图。在各种实施例中,如本文中公开的那样确定的预扫描结果可以在扫描/搜索时间处用于快速标识响应于扫描/搜索查询的日志和其部分。在示出的示例中,接收搜索或者扫描准则(902)。例如,可以请求搜索/扫描来标识其中在征兆B的对应出现的规定时间内出现以上示例中的征兆A的日志;或者其中在之前规定的时间内在没有征兆B的对应出现的情况下出现征兆A的日志;等等。如本文中公开的针对模式和/或征兆预扫描的结果被用来标识和返回结果(904)。例如,可以搜索存储在诸如图4的贮存库408或者图7的贮存库710之类的贮存库中的预扫描结果,来标识满足搜索查询的日志或者其部分。
在各种实施例中,将预扫描结果写入到数据库或者其他数据存储库可以通过首先将结果写入到文件然后将结果整批上传到数据库来优化。将数百万匹配于模式的行直接上传到数据库中可能是耗时且低效的。例如GreenplumTM的许多数据库系统支持经由外部表上传数据。在一些实施例中,在预扫描处理过程中,一旦标识了匹配的日志,它们就可以被首先写入到文件中,并且稍后通过外部表上传到数据库。
在一些实施例中,如果原始日志条目被存储在数据库中,则可能需要例如大约一百亿行的巨大的表。为了改进本文中公开的递增预扫描的性能,在一些实施例中,日志id上的分割或者某个其他递增增加的字段可以用来改进性能。
在一些实施例中,预扫描结果的数据库表可以被分割,以改进性能。大的系统可以具有数百个模式。它们中的一些可以具数千万个匹配。为了管理在文件或者数据库中的这样的大的结果,预扫描结果可以被分割。在各种实施例中,分割可以建立在模式ID或者某个其他属性上。大多数数据库支持分割。对于文件而言,不同分割可以被表示为单独的文件。
在一些实施例中,当征兆或者征兆组定义被更新,和/或新征兆和/或征兆组被创建时,执行对在更新前已经被预扫描的原始日志数据的充分扫描。在一些实施例中,相对于新的和/或更新的定义执行充分扫描。在发现匹配时,对应的预扫描结果被生成并且添加到预扫描结果数据库。
在一些实施例中,当模式例如由管理员或者其他用户更新或者删除时,匹配的旧结果可能不再有用。然而,在一些实施例中,与作废的模式相关联的预扫描结果可能不被立即删除。在一些实施例中,可以将标签添加到旧结果或者分割中。垃圾收集过程用来异步删除废弃结果。垃圾收集可以被调度为在另外的空闲时段期间出现,以平衡资源消耗。
在各种实施例中,本文中公开的模式和征兆预扫描技术可以使得匹配征兆和/或征兆组的日志或者其部分能够在扫描/搜索时间处被快速标识。
尽管为了清楚理解起见已经相当详细地描述了某些细节前述实施例,但是本发明不限于所提供的细节。存在实现本发明的许多替换方式。所公开的实施例是说明性的而不是限制性的。
Claims (20)
1.一种扫描系统日志的方法,包括:
递增地预扫描多个日志以标识与感兴趣的日志相对应的一组多个日志,其中,至少部分基于日志满足与征兆相关联的征兆定义这样的确定而将所述多个日志中的日志标识为感兴趣的日志,所述征兆定义包括征兆模式的结构和征兆的占位符数据,并且所述预扫描多个日志包括:
分别执行基本扫描,以至少部分地基于所述多个日志之一中包含的数据和征兆模式的结构,确定所述多个日志之一是否包括基本匹配;和
响应于多个日志之一包括基本匹配这样的确定,至少部分地基于征兆模式和征兆的占位符数据来确定多个日志之一中包括的数据是否与征兆匹配;
响应于多个日志之一中包含的数据与征兆匹配这样的确定,为满足征兆定义的那些感兴趣的日志生成征兆预扫描结果;以及
将征兆预扫描结果存储在可搜索的预扫描结果数据存储库中。
2.根据权利要求1所述的方法,其中,预扫描包括将与征兆相关联的频率约束应用于通过所述预扫描标识的一个或者多个感兴趣的日志。
3.根据权利要求2所述的方法,其中,频率约束指示模式出现的阈值数目以及时间段,在所述时间段内模式出现的所述阈值数目必须已经被满足。
4.根据权利要求1所述的方法,其中,递增地预扫描多个日志包括:
预扫描第一组日志;
将第一组日志标记为已被预扫描;以及
至少部分基于第一组日志已经被预扫描这样的确定而预扫描还没有被预扫描的第二组日志。
5.根据权利要求4所述的方法,其中,将第一组日志标记为已被预扫描包括使用指针或者其他数据结构来指示在一组原始日志数据内的已被预扫描的最后日志。
6.根据权利要求1所述的方法,其中,征兆定义包括被表达为正则表达式的模式。
7.根据权利要求6所述的方法,其中,模式包括第一模式,并且第一模式引用第二模式。
8.根据权利要求7所述的方法,其中,被包括在第一模式中的占位符在第一模式与之相关联的定义中关联于和第二模式的对应出现相关联的对应数据。
9.根据权利要求8所述的方法,其中,发现第一模式的匹配包括:
执行基本扫描以发现第一模式的非占位符部分的基本匹配;
从第二模式的对应出现获取所述对应数据;
用对应数据代替第一模式中的占位符;以及
基于结果来确定已发现第一模式的匹配。
10.根据权利要求1所述的方法,进一步包括接收包括征兆作为查询项的搜索查询,以及使用一组已存储的征兆预扫描结果来发现响应于查询的日志或者所述日志的部分。
11.一种用以扫描日志的系统,包括:
数据存储设备;以及
处理器,其耦合到数据存储设备,并且被配置成:
递增地预扫描多个日志以标识与感兴趣的日志相对应的一组多个日志,其中,至少部分基于日志满足与征兆相关联的征兆定义这样的确定而将所述多个日志中的日志标识为感兴趣的日志,所述征兆定义包括征兆模式的结构和征兆的占位符数据,并且所述预扫描多个日志包括:
分别执行基本扫描,以至少部分地基于所述多个日志之一中包含的数据和征兆模式的结构,确定所述多个日志之一是否包括基本匹配;和
响应于多个日志之一包括基本匹配这样的确定,至少部分地基于征兆模式和征兆的占位符数据来确定多个日志之一中包括的数据是否与征兆匹配;
响应于多个日志之一中包含的数据与征兆匹配这样的确定,为满足征兆定义的那些感兴趣的日志生成征兆预扫描结果;以及
将征兆预扫描结果存储在数据存储设备上的可搜索的预扫描结果数据存储库中。
12.根据权利要求11所述的系统,其中,预扫描包括将与征兆相关联的频率约束应用于通过所述预扫描标识的一个或者多个感兴趣的日志。
13.根据权利要求12所述的系统,其中,频率约束指示模式出现的阈值数目以及时间段,在所述时间段内模式出现的所述阈值数目必须已经被满足。
14.根据权利要求11所述的系统,其中,递增地预扫描多个日志包括:
预扫描第一组日志;
将第一组日志标记为已被预扫描;以及
至少部分基于第一组日志已经被预扫描这样的确定而预扫描还没有被预扫描的第二组日志。
15.根据权利要求14所述的系统,将第一组日志标记为已被预扫描包括使用指针或者其他数据结构来指示在一组原始日志数据内的已被预扫描的最后日志。
16.根据权利要求11所述的系统,其中,征兆定义包括被表达为正则表达式的模式。
17.根据权利要求16所述的系统,其中,模式包括第一模式,并且第一模式引用第二模式。
18.根据权利要求17所述的系统,其中,被包括在第一模式中的占位符在第一模式与之相关联的定义中关联于和第二模式的对应出现相关联的对应数据。
19.一种用以扫描系统日志的计算机程序产品,所述计算机程序产品被包括在非暂时性计算机可读存储介质中,并且包括用于以下步骤的计算机指令:
递增地预扫描多个日志以标识感兴趣的日志,其中,至少部分基于日志满足与征兆相关联的征兆定义这样的确定而将日志标识为感兴趣日志,所述征兆定义包括征兆模式的结构和征兆的占位符数据,并且所述预扫描多个日志包括:
分别执行基本扫描,以至少部分地基于所述多个日志之一中包含的数据和征兆模式的结构,确定所述多个日志之一是否包括基本匹配;和
响应于多个日志之一包括基本匹配这样的确定,至少部分地基于征兆模式和征兆的占位符数据来确定多个日志之一中包括的数据是否与征兆匹配;
响应于多个日志之一中包含的数据与征兆匹配这样的确定,为满足征兆定义的那些感兴趣的日志生成征兆预扫描结果;以及
将征兆预扫描结果存储在可搜索的预扫描结果数据存储库中。
20.根据权利要求19所述的计算机程序产品,其中,递增地预扫描多个日志包括:
预扫描第一组日志;
将第一组日志标记为已被预扫描;以及
至少部分基于第一组日志已经被预扫描这样的确定而预扫描还没有被预扫描的第二组日志。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/576921 | 2014-12-19 | ||
US14/576,921 US11023449B2 (en) | 2014-12-19 | 2014-12-19 | Method and system to search logs that contain a massive number of entries |
PCT/US2015/066497 WO2016100737A1 (en) | 2014-12-19 | 2015-12-17 | Method and system to search logs that contain a massive number of entries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107004036A CN107004036A (zh) | 2017-08-01 |
CN107004036B true CN107004036B (zh) | 2021-08-31 |
Family
ID=56127642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580067554.6A Active CN107004036B (zh) | 2014-12-19 | 2015-12-17 | 用以搜索包含大量条目的日志的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11023449B2 (zh) |
CN (1) | CN107004036B (zh) |
WO (1) | WO2016100737A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9667573B2 (en) * | 2015-04-28 | 2017-05-30 | Unisys Corporation | Identification of automation candidates using automation degree of implementation metrics |
US10153992B2 (en) * | 2015-04-28 | 2018-12-11 | Unisys Corporation | Identification of progress towards complete message system integration using automation degree of implementation metrics |
US9686220B2 (en) * | 2015-04-28 | 2017-06-20 | Unisys Corporation | Debug and verify execution modes for computing systems calculating automation degree of implementation metrics |
CN116414791A (zh) | 2021-12-30 | 2023-07-11 | 戴尔产品有限公司 | 用于管理日志数据的方法、设备和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010025169A (ko) * | 2000-07-03 | 2001-04-06 | 남영기 | 인터넷 싸이트의 익명고객 및 등록고객 관리시스템 및운용방법 |
US20060184529A1 (en) * | 2005-02-16 | 2006-08-17 | Gal Berg | System and method for analysis and management of logs and events |
US8656478B1 (en) * | 2008-07-15 | 2014-02-18 | Zscaler, Inc. | String based detection of proxy communications |
CN105721427A (zh) * | 2016-01-14 | 2016-06-29 | 湖南大学 | 一种从Web日志中挖掘攻击频繁序列模式的方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463768A (en) * | 1994-03-17 | 1995-10-31 | General Electric Company | Method and system for analyzing error logs for diagnostics |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US7246156B2 (en) * | 2003-06-09 | 2007-07-17 | Industrial Defender, Inc. | Method and computer program product for monitoring an industrial network |
US20040254919A1 (en) * | 2003-06-13 | 2004-12-16 | Microsoft Corporation | Log parser |
EP1661047B1 (en) * | 2003-08-11 | 2017-06-14 | Triumfant, Inc. | Systems and methods for automated computer support |
US8256006B2 (en) * | 2006-11-09 | 2012-08-28 | Touchnet Information Systems, Inc. | System and method for providing identity theft security |
US8752181B2 (en) | 2006-11-09 | 2014-06-10 | Touchnet Information Systems, Inc. | System and method for providing identity theft security |
US7793151B2 (en) * | 2007-10-25 | 2010-09-07 | International Business Machines Corporation | Dynamic partitioning of event patterns for determining symptoms |
US8776240B1 (en) * | 2011-05-11 | 2014-07-08 | Trend Micro, Inc. | Pre-scan by historical URL access |
US8726388B2 (en) * | 2011-05-16 | 2014-05-13 | F-Secure Corporation | Look ahead malware scanning |
US8874610B2 (en) | 2011-12-06 | 2014-10-28 | International Business Machines Corporation | Pattern-based stability analysis of complex data sets |
US9460074B2 (en) | 2013-04-15 | 2016-10-04 | Vmware, Inc. | Efficient data pattern matching |
US9609019B2 (en) * | 2014-05-07 | 2017-03-28 | Attivo Networks Inc. | System and method for directing malicous activity to a monitoring system |
-
2014
- 2014-12-19 US US14/576,921 patent/US11023449B2/en active Active
-
2015
- 2015-12-17 CN CN201580067554.6A patent/CN107004036B/zh active Active
- 2015-12-17 WO PCT/US2015/066497 patent/WO2016100737A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010025169A (ko) * | 2000-07-03 | 2001-04-06 | 남영기 | 인터넷 싸이트의 익명고객 및 등록고객 관리시스템 및운용방법 |
US20060184529A1 (en) * | 2005-02-16 | 2006-08-17 | Gal Berg | System and method for analysis and management of logs and events |
US8656478B1 (en) * | 2008-07-15 | 2014-02-18 | Zscaler, Inc. | String based detection of proxy communications |
CN105721427A (zh) * | 2016-01-14 | 2016-06-29 | 湖南大学 | 一种从Web日志中挖掘攻击频繁序列模式的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160179866A1 (en) | 2016-06-23 |
CN107004036A (zh) | 2017-08-01 |
US11023449B2 (en) | 2021-06-01 |
WO2016100737A1 (en) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240020295A1 (en) | Incremental refresh of a materialized view | |
US20230144450A1 (en) | Multi-partitioning data for combination operations | |
US20200192900A1 (en) | Order-independent multi-record hash generation and data filtering | |
US10417265B2 (en) | High performance parallel indexing for forensics and electronic discovery | |
US11874839B2 (en) | Adaptive big data service | |
US9639542B2 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
US8473484B2 (en) | Identifying impact of installing a database patch | |
US20130145350A1 (en) | Efficient, large scale trace storage system | |
CN112988863A (zh) | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 | |
CN107004036B (zh) | 用以搜索包含大量条目的日志的方法和系统 | |
JP2020057416A (ja) | 分散データベースにおけるデータブロックを処理する方法およびデバイス | |
CN110889023A (zh) | 一种elasticsearch的分布式多功能搜索引擎 | |
US9390111B2 (en) | Database insert with deferred materialization | |
US11687564B2 (en) | Continuous real-time masked database replication | |
US9135253B2 (en) | Simulating accesses for archived content | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
Alapati et al. | Oracle Database 12c performance tuning recipes: a problem-solution approach | |
US10769110B2 (en) | Facilitating queries for interaction data with visitor-indexed data objects | |
Fjällid | A comparative study of databases for storing sensor data | |
CN109710673B (zh) | 作品处理方法、装置、设备和介质 | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
US12111796B2 (en) | System and method for maintaining a comprehensive catalog of hierarchical file data | |
CN115878563B (zh) | 一种分布式文件系统目录级快照的实现方法及电子设备 | |
KR102075540B1 (ko) | 센서 태그 데이터의 실시간 생성 및 검색 장치 | |
US20220366302A1 (en) | Method and system for managing embeddings and serving recommendations in real-time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |