CN105706045A - 对日志消息内容的面向语义分析 - Google Patents
对日志消息内容的面向语义分析 Download PDFInfo
- Publication number
- CN105706045A CN105706045A CN201480040420.0A CN201480040420A CN105706045A CN 105706045 A CN105706045 A CN 105706045A CN 201480040420 A CN201480040420 A CN 201480040420A CN 105706045 A CN105706045 A CN 105706045A
- Authority
- CN
- China
- Prior art keywords
- log information
- rule
- value
- keyword
- recognizer
- 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.)
- Granted
Links
- 238000000605 extraction Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 63
- 230000014509 gene expression Effects 0.000 claims description 50
- 230000008878 coupling Effects 0.000 claims description 39
- 238000010168 coupling process Methods 0.000 claims description 39
- 238000005859 coupling reaction Methods 0.000 claims description 39
- 239000003607 modifier Substances 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000013011 mating Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 62
- 230000006870 function Effects 0.000 description 12
- 238000011282 treatment Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 229910000497 Amalgam Inorganic materials 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了处理日志消息。接收日志消息。识别要被分离地提取的日志消息的一个或多个部分。从每个识别的部分提取值。提取值包括使用提取规则。提取规则与识别的部分相关联。
Description
背景技术
设备、服务器、应用和其它计算机系统将系统、安全、应用和其它信息记入日志。必须分析在这些日志中的消息以将原始数据变成可行动智能(actionableintelligence)。不幸地,日志消息不总是良好指定的(即,采用形式语法),并且日志分析系统必须从示例数据反向工程模式。现存的日志消息语法分析器(parser)要求整个日志消息要遵从由正则表达式规定的指定模式以使得日志消息能够被语法分析(parse)。给定了日志消息和其类型,语法分析器对照适当的正则表达式运行消息并提取感兴趣的元素。然而,为了利用语法分析器,语法分析器必须具有整个消息结构和用于整个消息的正则表达式的先验知识。日志消息实质上不像编程语言那样被严格地构成,而是代替地是被预定用于人类消费的简单构成的片段的宽松混合(amalgams)。即使采用正则表达式语法分析整个消息,由于在日志消息格式中的轻微变化正则表达式易受失败。因此,存在用于以更好的方式分析日志消息的需要。
附图说明
在以下详细描述和附图中公开本发明的各种实施例。
图1是图解用于处理日志消息的系统的实施例的框图。
图2是图解用于处理日志消息部分处理规则的过程的实施例的流程图。
图3A示出了具有三个规则的值后(value-after)消息处理辨认器的示例。
图3B示出了具有三个规则的直接消息处理辨认器的示例。
图4是图解用于处理日志消息的过程的实施例的流程图。
图5是图解用于使用值后辨认器/规则处理日志消息部分的过程的实施例的流程图。
图6是图解用于对规则处理的结果进行后期处理的过程的实施例的流程图。
图7A是具有重叠识别的关键字和值的示例日志消息。
图7B是具有重叠修饰语辨认器的识别关键字和值的示例日志消息。
图8是图解用于使用直接辨认器/规则处理日志消息部分的过程的实施例的流程图。
具体实施方式
本发明可以以众多方式被实现,包括被实现为过程;装置;系统;物质的组成;体现在计算机可读存储媒体上的计算机程序产品;和/或处理器,诸如被配置成执行存储在被耦合到该处理器的存储器上和/或由其提供的指令的处理器。在该说明书中,这些实现、或者本发明可能采取的任何其它形式可以被称为技术。一般而言,所公开过程的步骤顺序可以在本发明的范围内被更改。除非以其它方式声明,可以将诸如处理器或存储器的被描述为被配置成执行任务的组件实现为在给定的时间临时地被配置成执行该任务的通用组件或是被制造用于执行该任务的指定组件。如在本文中使用的那样,术语“处理器”指的是被配置成处理诸如计算机程序指令的数据的一个或多个设备、电路和/或处理核。
在下面与图解本发明原理的附图一起提供了本发明的一个或多个实施例的详细描述。关于这样的实施例描述本发明,但是本发明不被限于任何实施例。仅通过权利要求限制本发明的范围并且本发明包括众多替换、修改和等价。在以下描述中陈述众多指定细节以便提供对本发明的透彻理解。出于示例的目的提供这些细节并且可以在没有这些指定细节中的一些或所有的情况下根据权利要求实践本发明。出于清楚的目的,没有详细描述本发明涉及的技术领域中已知的技术材料以便本发明没有不必要地被模糊。
公开了处理日志消息。在一些实施例中,日志消息的一个或多个部分被识别以被分离地提取。例如,代替利用一个正则表达式以语法分析整个日志消息,日志消息的一个或多个部分使用一个或多个不同的正则表达式被识别以被提取。在一些实施例中,识别所述部分包括搜索在日志消息内的关键字,其指示使用与该关键字相关联的提取规则要被分离地提取的部分。使用与对应识别部分相关联的提取规则从每个识别部分提取值。例如,提取规则的正则表达式被用于从识别部分(例如,从位于识别部分的对应匹配关键字之后的日志消息内容)提取匹配值。
图1是图解用于处理日志消息的系统的实施例的框图。日志源102包括一个或多个系统、设备、软件组件、硬件组件、储存器、存储器和/或提供日志消息的任何其它源。例如,日志源102包括存储日志消息的储存器。日志消息的示例包括系统日志消息、网络日志消息、安全日志消息、储存日志消息、操作系统日志消息和应用日志消息。日志收集器104从日志源102获得一个或多个日志消息。日志收集器104可以从日志源102获得一个或多个文件、流式日志和/或过程的输出以获得一个或多个日志消息。日志收集器104可以是网络节点、网络器具、过程、系统、设备和/或日志源102的系统的插件/模块。在一些实施例中,日志收集器104周期性地从日志源102获得一个或多个日志消息。例如,日志收集器104在预确定的周期间隔上检查新的日志消息。在一些实施例中,日志收集器104动态地从日志源102获得一个或多个日志消息。例如,当生成日志消息时向日志收集器104提供日志消息。
由日志收集器104获得的一个或多个日志消息被存储在日志高速缓冲存储器106中。例如,日志高速缓冲存储器106存储要被处理/语法分析的日志消息。在一些实施例中,日志高速缓冲存储器106被包括日志收集器104的设备。在一些实施例中,日志高速缓冲存储器106被包括为日志处理器108的设备。在一些实施例中,日志高速缓冲存储器106被包括在网络储存设备中。日志处理器108从日志高速缓冲存储器106获得日志用于处理。在替换实施例中,不利用日志高速缓冲存储器106并且将由日志收集器104获得的一个或多个日志直接地提供到日志处理器108。日志处理器108使用一个或多个处理规则处理每个获得的日志消息。例如,日志消息的一个或多个部分被识别以被分离地提取并且使用对应的正则表达式提取每个识别部分以从日志消息部分中提取所期望的数据。可以执行附加处理以解决冲突和/或执行与识别部分的所提取的数据相关联的聚集(aggregation)。将日志处理器108的结果存储在日志数据库110中。例如,将从日志消息的识别部分中提取的数据存储在日志数据库110中。在一些实施例中,一个或多个其它组件利用日志数据库110的内容来提供警报、分析日志消息趋势、搜索日志消息内容、和/或执行与所构成的日志消息内容相关联的任何其它处理。例如,索引器索引日志数据库110的内容以使得能够进一步分析日志消息内容。
可以在一个或多个计算机、服务器、储存设备、联网组件、和/或虚拟组件/网络中实现在图1中示出的组件。例如,在图1中示出的任何数目的组件可以被包括在相同的设备中。在组件之间的连接可以包括以下中的一个或多个:直接或非直接物理通信连接、移动通信网络、互联网、内联网、局域网、广域网、存储域网、以及将两个或更多系统、组件或储存设备连接在一起的任何其它形式。可以存在其它通信路径并且简化了图1中的示例以清楚地图解示例。虽然示出了组件的单个实例以简化图表,但是可以存在在图1中示出的组件中的任意的附加实例。例如,可以存在在图1中示出的任何组件的其它实例。也可以存在在图1中未示出的组件。
图2是图解用于处理日志消息部分处理规则的过程的实施例的流程图。可以在图1的日志处理器108上实现图2的过程。
在202,接收一个或多个日志消息部分处理规则。在一些实施例中,从编码应如何处理日志消息部分的用户/管理员接收规则。在一些实施例中,可以将一个或多个处理规则指定到一起作为辨认器。例如,辨认器包括头部和一个或多个规则的规范,所述头部指定被包括在辨认器中的一个或多个规则的共同配置元素。在一些实施例中,接收一个或多个日志消息部分处理规则包括接收一个或多个遵从规则/辨认器的编程代码。在一些实施例中,接收一个或多个日志消息部分处理规则包括接收一个或多个文件,并且每个文件可以包括辨认器和/或一个或多个处理规则。可以接收各种类型的消息部分处理规则和/或辨认器。
接收到的消息处理规则/辨认器的一个示例类型包括值后日志消息处理规则/辨认器。值后消息处理规则指示关键字和如何处理/语法分析/匹配在规则的关键字之后的消息内容的规范(例如,正则表达式)。例如,规则可以指定关键字“user(用户)”和指定如何语法分析/匹配在日志消息中字符“user(用户)”之后的用户名的正则表达式。
图3A示出了具有三个规则的值后消息处理辨认器的示例。可以在文件中指定该辨认器。在图3A中示出的辨认器包括头部302、规则304、规则306、和规则308。头部302指定辨认器配置。下面是描述在头部302中指定的信息的表格。
字段 | 描述 |
RecognizerName(辨认器名称) | 辨认器的名称 |
Type(类型) | 对辨认器的类型的识别符。“1”指定这是值后辨认器 |
Priority(优先级) | 相对于其它辨认器的辨认器优先级的识别符。值后辨认器的相对优先级影响其中处理所发现的关键字的顺序 |
KeywordStrings(关键字串) | 其发现将触发该辨认器的关键字 |
Modifier(修饰语) | 当被设置成“true(真)”时,当前关键字被视为另一辨认器的关键字的修饰语(并可以被与另一辨认器的关键字统一) |
图3A的辨认器包括三个规则。下面是描述指定用于规则304、306和308的信息的表格。
字段 | 描述 |
RuleName(规则名称) | 规则的名称识别符3 --> |
KeywordRegexFilter(关键字正则表达式过滤器) | 用于要被执行的该规则的必须匹配所发现的关键字的正则表达式。在一些实施例中,用于规则的关键字(例如,关键字正则表达式)必须跨所有辨认器的所有规则是唯一的。 |
DeviceFilter(设备过滤器) | 用于要被执行的该规则的必须匹配日志消息的类型的消息类型。在一些实施例中,如果DeviceFilter被指定为“0”,那么针所有消息将消息类型与未识别/未知消息类型匹配。消息类型可以是逗号分隔列表、一系列值(例如,1-5)的结合,或如果未指定那么应用到所有消息。 |
SearchRegex(搜索正则表达式) | 被应用于在关键字之后的位置以提取值的正则表达式。在一些实施例中,针对要被执行的规则,SearchRegex必须完全地匹配在关键字之后的位置处开始的日志消息文本。在一些实施例中,SearchRegex可以包括产生多个值匹配的正则表达式句法并且多个值可以由规则匹配得到。 |
ColumnName(列名称) | 正规化的列名称,在其下提取值将被插入到数据库中。 |
在一些实施例中,,可以将“反向”字段添加到规则以将其SearchRegex锚定到在消息中的在前的关键字之后的位置和/或在当前匹配的关键字之前的位置,在其中至少一个值在当前匹配的关键字之前的情况中用于提取。在一些实施例中,值前辨认器/规则类型存在以处理在其中所期望的值在匹配的关键字之前的情况。在某些情况中这样的规则还可以捕获在关键字之后的值。
接收到的消息处理规则/辨认器的另一示例类型包括直接消息处理规则/辨认器。直接消息处理规则指示如何处理/匹配/语法分析匹配该直接规范的消息内容的直接规范(例如,正则表达式)。例如,直接辨认器/规则被用于捕获在不需要关联关键字的情况下可以被直接地发现的值。在一些实施例中,直接辨认器/规则被用于处理没有被值后辨认器/规则匹配的日志消息的部分。
图3B示出了具有三个规则的直接消息处理辨认器的示例。该辨认器可以被指定在文件中。在图3B中示出的辨认器包括头部310、正则表达式312、列名称314和函数316。头部310指定在“name(名称)”字段中的辨认器的识别符名称,在“type(类型)”字段中的辨认器类型的识别符(例如,识别符“2”指定该辨认器是直接辨认器而不是值后辨认器),在“priority(优先级)”字段中的相对辨认器处理优先级(例如,在直接辨认器之中),以及在“Limit(限制)”字段(例如,“Limit”字段可以是可选的)中的直接辨认器将评估的日志消息区域的开始字符的最大数目的识别。正则表达式312指定每一个都指定要被用于调用规则并语法分析来自匹配日志消息部分的值的正则表达式的三个规则的正则表达式。列名称314针对三个规则中的每一个指定正规化的列名称,在其下提取的值将被插入到数据库。函数316针对三个规则中的每一个指定被用于进一步处理从在正则表达式312中指定的对应的正则表达式得到的值的函数。例如,指定转换所获得的值的格式的函数。函数的其它示例包括翻译、转换、警报、存储、和/或以其它方式处理规则的正则表达式匹配值的函数。
回到图2,在204,将接收到的(一个或多个)规则准备用于在日志消息分析中利用。在一些实施例中,接收到的规则/辨认器被存储在规则/辨认器的列表中以被用于评估日志消息。在一些实施例中,将要被定位在日志消息内的一个或多个关键字和/或正则表达式存储在数据/处理结构中以被用于识别要使用关联的规则/辨认器被进一步处理的日志消息的部分。例如,使用接收到的(一个或多个)辨认器/规则,生成关键字/正则表达式的表格和关联的规则/辨认器,并且当在日志消息中找到在该表格中的关键字时,调用与该关键字相关联的规则/辨认器。
图4是图解用于处理日志消息的过程的实施例的流程图。可以在图1的日志处理器108上实现图4的过程。
在402,接收日志消息。在一些实施例中,接收日志消息包括从图1的日志收集器104和/或日志高速缓冲存储器106接收日志消息。在一些实施例中,接收到的日志消息是多个接收到的日志消息中的一个。例如,接收日志文件并且接收到的日志消息是该日志文件中的一行。在一些实施例中,周期性地接收一个或多个日志消息。例如,在预确定的周期间隔上执行对新的日志消息的检查。在一些实施例中,动态地接收一个或多个日志消息。例如,当生成所述消息时经由通信流接收日志消息。
在404,预处理接收到的日志消息。在一些实施例中,预处理所述消息包括识别消息的类型。在一些情况中,由诸如图1中的日志收集器104的日志收集器指定消息类型。所指定的消息类型可以在不试图发现消息类型的情况下被用作接收到的日志消息的消息类型。可以至少部分地基于消息源、与消息相关联的元数据、和/或使用关键字匹配启发方法来确定消息的类型。例如,将一个或多个消息类型与一个或多个关键字和/或正则表达式相关联,并且如果在日志消息中找到用于特定消息类型的(一个或多个)匹配关键字和/或(一个或多个)正则表达式,该日志消息被识别为特定消息类型。在一些实施例中,可以将辨认器/规则与指定的日志消息类型相关联。例如,在图3A的示例辨认器的头部302和图3B的示例辨认器的头部310中指定用于辨认器/规则的日志消息类型。消息类型可以是指定的消息类型或未知消息类型。在一些实施例中,对于单个日志消息可以识别多个消息类型。
在一些实施例中,预处理所述消息包括推断与日志消息的一个或多个部分相关联的关键字。在一些实施例中,使用先前接收到的日志消息或指定所暗示的头部行的规则确定所暗示的关键字,并将所暗示的关键字与当前处理的日志消息相关联作为元数据用于由值后辨认器/规则使用。例如,可以知道消息类型以为表列数据提供头部行:
。
如果这四行中的每一行都被接收为分离的日志消息,那么值后辨认器可能不能够定位作为其它行的列识别符的第一行的关键字。在某些情况中,诸如基于文件的日志记录,预处理可以丢弃表头部日志消息并用指示所暗示的关键字的元数据将包含数据的日志消息加标签。在一些实施例中,如果消息类型不包括表头部行,那么如果可以识别消息结构的话仍可以将一个或多个暗示的关键字与日志消息的一个或多个部分相关联(例如,针对某些确定的消息类型的消息所暗示的关键字)。
在406,识别对应于第一组辨认器/规则中的一个或多个辨认器/规则的日志消息的一个或多个部分。在一些实施例中,第一组辨认器/规则包括值后辨认器/规则。在一些实施例中,将所有基于关键字的辨认器(例如,值后辨认器)的所有关键字放置于单个数据结构(例如,在图2的204中确定的结构)中,并将其用于在通过日志消息的单独搜索经过(例如,表格行进(tablewalk)、确定性有限自动机(deterministicfiniteautomata)等)中识别在日志消息中的所有匹配关键字。在一些实施例中,步骤406的结果包括在日志消息中匹配的(一个或多个)关键字的列表、它们在日志消息中的位置、以及对对应于该(一个或多个)匹配关键字中的每一个的辨认器/规则的参考。可以通过与辨认器/规则相关联的优先级(例如,图3A的头部302中识别的优先级)对该列表分类。
例如,如果这三个辨认器:
被应用到日志消息:
Warning:Userjonesexceededmemorylimit(10GB)withprocessmemdb
其将返回关键字为[user,processlimit]的有序列表,并且在408中将会以该列表中的顺序执行相关的辨认器。
在408,使用第一组辨认器/规则中的对应的辨认器/规则来处理日志消息中的识别部分。在一些实施例中,对于在406中的日志消息的每个识别部分,以辨认器/规则的识别优先级的顺序处理识别符辨认器/规则。例如,如果(例如,在图3A的规则304中的“KeywordRegexFilter”字段中指定的)辨认器/规则的关键字匹配在识别部分中的字、(例如,在图3A的规则304中的“DeviceFilter”字段中指定的)辨认器/规则的消息类型匹配日志消息的(例如,在404确定的)所识别的消息类型、并且(例如,图3A的规则304中的“SearchRegex”字段中指定的)辨认器/规则的正则表达式匹配在该日志消息中的识别关键字之后的内容,那么正则表达式的结果值(例如,一个或多个值)被识别为对应于识别关键字的识别部分(例如,针对每个成功地匹配的规则的结果关键字/值对)。在一些实施例中,针对每个成功地确定的关键字/值对,识别在日志消息内的其位置以稍后在后期处理中检查重叠并定位日志消息的任何未识别的部分。
在410,执行后期处理。在一些实施例中,执行后期处理包括对步骤408的结果的错误检查。在一些实施例中,执行后期处理包括解决在重叠在日志消息中的所识别的关键字或值之间的冲突。例如,可以仅将日志消息的每个字/内容识别为单个规则的关键字或值(例如,日志消息中的字不能够是一个规则的关键字和另一个规则的值)。在一些实施例中,值具有比关键字更高的优先级并且如果值和关键字重叠,那么保留该值并丢弃该关键字和其相关联的值。在一些实施例中,较长的值相对较短的值具有优先级。在一些实施例中,执行后期处理包括聚集关键字。例如,如果值后辨认器被配置为修饰语(例如,被配置在图3A的头部302的“Modifier”字段中)并且该值后辨认器已经生成了在日志消息中的匹配,那么如果该值还是另一辨认器/规则的另一识别关键字/值对的关键字的话将该辨认器的匹配关键字与该辨认器的值结合。
在412,使用第二组规则中的一个或多个规则处理日志消息的一个或多个未识别的部分。在一些实施例中,日志消息的识别部分是使用在408中利用的辨认器/规则(例如,值后辨认器/规则)已经被识别为或者关键字或者值的日志消息的部分。在一些实施例中,第二组规则包括直接辨认器/规则,诸如在图3B中示出的辨认器。在一些实施例中,确定未识别部分中的任意是否匹配第二组辨认器/规则中的正则表达式。如果找到匹配,那么可以将日志消息的匹配部分识别为在匹配规则中识别的关键字/列名称的值。在一些实施例中,如果找到匹配,那么将日志消息的匹配部分提供为到与匹配规则相关联的函数的输入并将该函数的结果输出识别为在匹配规则中识别的关键字/列名称(例如,图3B的列名称314)的值。
在414,正规化并存储结果。在一些实施例中,所述结果包括在步骤410和步骤412之后在日志消息内识别的结果关键字和值。例如,在步骤410之后,识别不冲突或重叠的在日志消息中识别的值后辨认器/规则的后期处理的关键字和值,以及在步骤412之后,识别与在直接匹配规则中的指定列名称相关联的日志消息中的值。在一些实施例中,将日志消息部分的关键字和匹配列名称正规化以使语义上相似的识别符标准化。例如,可以将“IPAddr”和“IPAddress”正规化成“IP”。在一些实施例中,存储结果包括通过存储在关键字(例如,正规化的关键字)的数据库列名称下的值来将匹配辨认器/规则(例如,值后辨认器/规则)的识别关键字/值的值存储在数据库中(例如,存储在图1的数据库110中)。可以在规则中(例如,图3A的规则304中)指定要被利用的数据库列名称。如果正被存储的关键字/值是从结合两个或更多规则(例如,修饰语规则)得到结果那么可以将两个或更多列名称连接到一起并利用。在一些实施例中,存储结果包括通过存储在匹配规则中指定的数据库列名称(例如,正规化的列名称)下的值来将匹配辨认器/规则(例如,直接辨认器/规则)的识别列名称/值的值存储在数据库中(例如,存储在图1的数据库110中)。
图5是图解使用值后辨认器/规则处理日志消息部分的过程的实施例的流程图。可以在图1的日志处理器108上实现图5的过程。在一些实施例中,图5的过程被包括在图4的408中。
在502,以辨认器的优先级顺序处理日志消息的下一识别部分的辨认器。在一些实施例中,在图4的406中确定可应用于日志消息的辨认器和它们相关联的优先级。例如,从在日志消息中匹配的(一个或多个)关键字的优先化列表中接收每个辨认器和日志消息的关联的识别部分,并且将所述每个辨认器和日志消息的关联的识别部分参考到对应于(一个或多个)匹配关键字中的每一个的辨认器。
在504,处理该辨认器的下一规则。例如,正被处理的辨认器包括多个规则并获得该辨认器的下一规则用于处理。
在506,确定正被处理的规则的关键字是否匹配针对该辨认器被识别的日志消息的部分。在一些实施例中,在图4的406中已经针对该辨认器识别了日志消息的部分并且针对与识别部分的匹配验证正被处理的规则的关键字。例如,确定正被处理的规则(例如,图3A的规则304中)的“KeywordRegexFilter”字段中指定的关键字和/或正则表达式是否匹配在日志消息的识别部分中的内容。如果确定了该规则的关键字匹配,那么处理继续到508。如果确定了该规则的关键字不匹配,那么过程继续到516。
在508,确定可应用于正被处理的规则的消息类型是否匹配正被处理的日志消息的确定的消息类型。在一些实施例中,确定在图4的404中已经被识别的日志消息的类型是否匹配在正被处理的规则(例如,在图3A的头部302中的)的辨认器中指定的消息类型。例如,确定正被处理的规则的(例如,在图3A的规则304中的)“DeviceFilter”字段中指定的消息类型识别符是否匹配日志消息的确定的类型。在一些实施例中,如果针对规则指定的消息类型是未识别/未知消息类型,那么对所有消息将消息类型与未识别/未知消息类型匹配。如果确定规则的消息类型匹配,那么过程继续到510。如果确定规则的消息类型不匹配,那么过程继续到516。规则可以指定任何有效的消息类型或一系列消息类型。
在510,确定正被处理的规则的正则表达式是否匹配与日志消息的匹配关键字部分相关联的日志消息部分。在一些实施例中,在图4的406中已经针对辨认器识别与关键字相关联的日志消息的部分并且确定在匹配关键字部分之后的日志消息部分是否匹配正被处理的规则的正则表达式。在一些实施例中,确定正被处理的规则(例如,在图3A的规则304中的)的“SearchRegex”字段中指定的正则表达式是否匹配与在日志消息中匹配的(例如,在406中匹配的)关键字相关联的内容。例如,正则表达式必须匹配在匹配关键字之后的日志消息的内容的至少一部分。在另一示例中,正则表达式必须匹配在匹配关键字之前的日志消息的内容的至少一部分,或者两者。在一些实施例中,将匹配正则表达式的日志消息的部分识别为所述匹配的结果值。如果确定规则的正则表达式匹配,那么过程继续到512。如果确定了规则的正则表达式不匹配,那么过程继续到516。
在512,将日志消息的关键字和匹配正则表达式值部分识别为日志消息的匹配部分。例如,将关键字和值对存储在数据结构中并且将日志消息的匹配部分标注为匹配关键字和值以在随后的后期处理中定位冲突和日志消息的未识别部分。
在514,确定针对日志消息的识别部分的任何识别的辨认器是否被留下用于处理。如果确定存在另一辨认器用于处理,那么过程返回到502。如果确定没有留下辨认器(例如,已经处理了所有值后辨认器)用于处理,那么过程结束。
在516,确定在正在被处理的辨认器中是否存在另一规则。如果存在另一规则,那么过程返回到504。如果不存在另一规则,那么过程前进到514。
图6是图解用于对规则处理的结果进行后期处理的过程的实施例的流程图。可以在图1的日志处理器108上实现图6的过程。在一些实施例中,图6的过程被包括在图4的410中。
在602,执行冲突解决。例如,解决在重叠在日志消息中的识别关键字或值之间的冲突。在一些实施例中,日志消息的每个字/字符/内容可以仅被识别为或者单个规则的关键字或者值(例如,在日志消息中的字不能够是一个规则的关键字和另一个规则的值)。例如,如在图7A中示出的那样,可以将日志消息识别/语法分析到两个关键字/值对中。图7A是具有重叠识别关键字和值的示例日志消息。第一规则已经将“user”702识别为关键字并且“user”704识别为该关键字的相关联的值。第二规则已经将“user”704识别为关键字并将“Smith”706识别为该关键字的相关联的值。因此,“user”704被识别/加标签为关键字和值两者。必须解决该冲突以丢弃第一规则的识别或者第二规则的识别。在一些实施例中,值相对关键字具有更高的优先。例如,在图7A的示例中,通过将“user”704识别为值并移除/删除“user”704的关键字识别和“Smith”706的值识别来解决“user”704冲突。在一些实施例中,较长的值相对较短的值具有更高的优先。例如,如果两个值识别重叠,那么保留较长的值并丢弃较短的值和其相关联的关键字。在一些实施例中,关键字不能够重叠,因为多个辨认器/规则可以不针对相同的关键字被指定。在一些实施例中,如果关键字重叠,可以使用一个或多个冲突解决规则(例如,将在辨认器头部中的优先级识别符用于解决冲突)以解决在关键字识别之间的冲突。
在604,执行关键字聚集。例如,如果值后辨认器被配置为修饰语(例如,被配置在图3A的头部302的“Modifier”字段中),并且该值后辨认器已经生成在日志消息中的匹配,那么如果该值也是另一辨认器/规则的另一识别关键字/值对的关键字的话将该辨认器的匹配关键字与辨认器的值结合成为结合关键字。图7B是具有重叠修饰语辨认器的识别关键字和值的示例日志消息。修饰语识别符辨认器的第一规则已经将“From”712识别为关键字并且将“address”714识别为关键字的相关联的值。第二规则将“address”714识别为关键字并且“10.1.1.1”716识别为该关键字的相关联的值。因为处理“From”712的辨认器被指派为修饰语,所以“From”712和“address”714被连接到复合或聚集关键字“Fromaddress”中并且该聚集关键字的相关联的值是“10.1.1.1”716。
图8是图解用于使用直接辨认器/规则处理日志消息部分的过程的实施例的流程图。可以在图1的日志处理器108上实现图8的过程。在一些实施例中,图8的过程被包括在图4的412中。
在802,将日志消息的第一未识别部分定位为开始位置。在一些实施例中,日志消息是使用图4的过程直到步骤410处理的日志消息。例如,已经将日志消息的部分识别为关键字或值并已经被后期处理以解决冲突并结合修饰语关键字。定位还未被识别为另一组辨认器/规则的(例如,未被值后辨认器/规则识别的)关键字或值的日志消息的第一部分(例如,从左到右检查)。
在804,通过从定位的开始位置开始搜索确定直接辨认器/规则匹配是否定位于日志消息中。在一些实施例中,确定直接辨认器的规则的所有匹配中的最长左边最多的匹配。在一些实施例中,直接辨认器是在图2的202接收的被用于处理日志消息的直接辨认器。将要被利用的所有直接辨认器的所有规则的所有正则表达式(例如,图3B的正则表达式312)形成到所有正则表达式的单个析取(disjunction)中(例如,([正则表达式1]v[正则表达式2]v[正则表达式3]…)并将其用于从所定位的开始位置开始定位在日志消息中的匹配。这可以经由不确定性有限自动机和/或确定性有限自动机允许同时搜索。在一些实施例中,可能仅在由另一辨认器/规则未被识别的日志消息的部分中找到匹配(例如,不能匹配已经由值后辨认器/规则识别为关键字或值的日志消息的部分)。
如果在804找到了匹配,那么在806使用与匹配该部分的直接辨认器/规则相关联的函数处理该匹配部分。例如,将对应于所匹配的正则表达式的在图3B的函数316中指定的函数提供给匹配部分。该函数可以返回在匹配辨认器/规则中指定的(例如,在图3B的列名称314中指定的)列名称下被存储在数据库中的结果。
在808,将在日志消息内的开始位置前进到在匹配部分的末端之后的日志消息的下一未识别部分。
在810,确定是否到达日志消息的末端。如果到达了日志消息的末端,那么过程结束。如果没有到达日志消息的末端,那么过程然后返回802。
如果在804没有找到匹配,那么过程结束。
虽然出于理解清楚的目的相当详细地描述了前述实施例,但是本发明不被限于所提供的细节。存在许多实现本发明的替换方式。所公开的实施例是说明性的而不是限制性的。
Claims (20)
1.一种系统,包括:
通信接口,被配置成接收日志消息;以及
处理器,与所述通信接口耦合并被配置成:
识别要被分离地提取的所述日志消息的一个或多个部分;以及
使用与识别的部分相关联的提取规则从每个识别的部分提取值。
2.如权利要求1的系统,其中所述处理器还被配置成确定所述日志消息的消息类型。
3.如权利要求2的系统,其中提取所述值包括确定所确定的消息类型是否匹配所述提取规则指定的消息类型。
4.如权利要求2的系统,其中至少部分地基于所述日志消息的源确定所述日志消息的类型。
5.如权利要求2的系统,其中至少部分地基于在所述日志消息中包括的关键字确定所述日志消息的类型。
6.如权利要求1的系统,其中所述处理器还被配置成至少部分地通过使用另一先前接收的日志消息的相关联的内容来推断与所述识别的部分之一相关联的关键字。
7.如权利要求1的系统,其中识别所述日志消息的一个或多个部分包括确定所述日志消息包括一个或多个提取规则的一个或多个关键字。
8.如权利要求1的系统,其中识别所述日志消息的一个或多个部分包括至少部分地基于与所述识别的部分的每个相关联的提取规则的优先级识别符确定所述日志消息的一个或多个部分的优先级处理顺序。
9.如权利要求1的系统,其中所述识别的部分中的至少一个的提取规则是包括多个提取规则的辨认器的一部分。
10.如权利要求1的系统,其中将不同的提取规则与所述识别的部分中的每一个相关联。
11.如权利要求1的系统,其中所述值是匹配所述提取规则的正则表达式的所述日志消息的一部分。
12.如权利要求1的系统,其中能够仅通过信号提取规则提取所述日志消息的一部分,并且所述处理器还被配置成解决在至少两个提取规则之间的冲突。
13.如权利要求1的系统,其中所述处理器还被配置成如果确定所述日志消息内的被定位的关键字和在所述日志消息中定位的相关联的值匹配修饰语提取规则并且所述相关联的值是另一提取规则的匹配关键字那么将在所述关键字与所述相关联的值结合。
14.如权利要求1的系统,其中所述处理器还被配置成使用第二组的一个或多个提取规则来提取没有已经被识别用于分离地提取的所述日志消息的一个或多个部分。
15.如权利要求14的系统,其中使用所述第二组的一个或多个提取规则包括匹配来自所述第二组的一个或多个提取规则的每一个提取规则的规则正则表达式的析取结合的单个正则表达式。
16.如权利要求1的系统,其中将所述值存储在数据库中。
17.如权利要求16的系统,其中将所述值存储在与被用于提取被存储在所述数据库中的所述值的提取规则的关键字相关联的列名称下。
18.如权利要求17的系统,其中将所述列名称正规化以使语义上相似的列名称标准化。
19.一种方法,包括:
接收日志消息;
识别要被分离地提取的所述日志消息的一个或多个部分;以及
使用处理器以使用与识别的部分相关联的提取规则从每个识别的部分中提取值。
20.一种计算机程序产品,所述计算机程序产品被体现在有形的计算机可读存储媒体中,并且包括计算机指令,用于:
接收日志消息;
识别要被分离地提取的所述日志消息的一个或多个部分;以及
使用与识别的部分相关联的提取规则从每个识别的部分中提取值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/946,592 US9336203B2 (en) | 2013-07-19 | 2013-07-19 | Semantics-oriented analysis of log message content |
US13/946592 | 2013-07-19 | ||
PCT/US2014/046190 WO2015009542A1 (en) | 2013-07-19 | 2014-07-10 | Semantics-oriented analysis of log message content |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105706045A true CN105706045A (zh) | 2016-06-22 |
CN105706045B CN105706045B (zh) | 2019-04-23 |
Family
ID=52344265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480040420.0A Active CN105706045B (zh) | 2013-07-19 | 2014-07-10 | 对日志消息内容的面向语义分析 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9336203B2 (zh) |
CN (1) | CN105706045B (zh) |
HK (1) | HK1226160A1 (zh) |
WO (1) | WO2015009542A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599244A (zh) * | 2016-12-20 | 2017-04-26 | 飞狐信息技术(天津)有限公司 | 通用的原始日志清洗装置及方法 |
CN113396395A (zh) * | 2018-12-20 | 2021-09-14 | 皇家飞利浦有限公司 | 有效评估日志模式的方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160013999A1 (en) * | 2014-07-08 | 2016-01-14 | Igt | Logging server appliance for hosted system communities and operation center |
CN104967543A (zh) * | 2015-06-28 | 2015-10-07 | 国网山东济阳县供电公司 | 一种数据考核校验的系统及其方法 |
CN106909296A (zh) * | 2016-06-07 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 数据的提取方法、装置及终端设备 |
CN106202004B (zh) * | 2016-07-13 | 2019-10-11 | 上海轻维软件有限公司 | 基于正则表达及分隔符的组合式数据切割方法 |
US10929763B2 (en) | 2016-08-26 | 2021-02-23 | Nec Corporation | Recommender system for heterogeneous log pattern editing operation |
ES2765415T3 (es) * | 2016-10-21 | 2020-06-09 | Fujitsu Ltd | Aparato, método y programa de procesamiento de datos basado en microservicios |
US10860551B2 (en) | 2016-11-30 | 2020-12-08 | Microsoft Technology Licensing, Llc | Identifying header lines and comment lines in log files |
US10387441B2 (en) | 2016-11-30 | 2019-08-20 | Microsoft Technology Licensing, Llc | Identifying boundaries of substrings to be extracted from log files |
US10740170B2 (en) * | 2016-12-08 | 2020-08-11 | Nec Corporation | Structure-level anomaly detection for unstructured logs |
US10929765B2 (en) | 2016-12-15 | 2021-02-23 | Nec Corporation | Content-level anomaly detection for heterogeneous logs |
US20180285397A1 (en) * | 2017-04-04 | 2018-10-04 | Cisco Technology, Inc. | Entity-centric log indexing with context embedding |
US10678669B2 (en) | 2017-04-21 | 2020-06-09 | Nec Corporation | Field content based pattern generation for heterogeneous logs |
US10333805B2 (en) | 2017-04-21 | 2019-06-25 | Nec Corporation | Ultra-fast pattern generation algorithm for the heterogeneous logs |
US10740212B2 (en) | 2017-06-01 | 2020-08-11 | Nec Corporation | Content-level anomaly detector for systems with limited memory |
CN109997104B (zh) * | 2017-09-30 | 2021-06-22 | 华为技术有限公司 | 一种通知显示方法及终端 |
US11055192B2 (en) * | 2018-09-27 | 2021-07-06 | International Business Machines Corporation | Logging implementation in micro-service applications |
US11681710B2 (en) * | 2018-12-23 | 2023-06-20 | Microsoft Technology Licensing, Llc | Entity extraction rules harvesting and performance |
CN113111240A (zh) * | 2021-04-20 | 2021-07-13 | 康键信息技术(深圳)有限公司 | 日志监控方法、装置、电子设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114508A1 (en) * | 2003-11-26 | 2005-05-26 | Destefano Jason M. | System and method for parsing, summarizing and reporting log data |
US20060155725A1 (en) * | 2004-11-30 | 2006-07-13 | Canon Kabushiki Kaisha | System and method for future-proofing devices using metaschema |
CN1956583A (zh) * | 2005-10-29 | 2007-05-02 | 华为技术有限公司 | 记录及输出呼叫日志信息的方法及应用及系统 |
US20110246467A1 (en) * | 2006-06-05 | 2011-10-06 | Accenture Global Services Limited | Extraction of attributes and values from natural language documents |
US20110320493A1 (en) * | 2006-01-20 | 2011-12-29 | Thales | Method and device for retrieving data and transforming same into qualitative data of a text-based document |
US20130166568A1 (en) * | 2011-12-23 | 2013-06-27 | Nou Data Corporation | Scalable analysis platform for semi-structured data |
US20130185286A1 (en) * | 2007-10-02 | 2013-07-18 | Boris Galitsky | Searching for associated events in log data |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276616A (en) * | 1989-10-16 | 1994-01-04 | Sharp Kabushiki Kaisha | Apparatus for automatically generating index |
US7174507B2 (en) * | 2003-02-10 | 2007-02-06 | Kaidara S.A. | System method and computer program product for obtaining structured data from text |
US9483583B2 (en) * | 2007-10-22 | 2016-11-01 | Check Point Software Technologies Ltd. | Syslog parser |
JP5370159B2 (ja) * | 2008-01-07 | 2013-12-18 | 日本電気株式会社 | 情報抽出装置及び情報抽出システム |
US20100274770A1 (en) * | 2009-04-24 | 2010-10-28 | Yahoo! Inc. | Transductive approach to category-specific record attribute extraction |
US8386498B2 (en) * | 2009-08-05 | 2013-02-26 | Loglogic, Inc. | Message descriptions |
US9384112B2 (en) | 2010-07-01 | 2016-07-05 | Logrhythm, Inc. | Log collection, structuring and processing |
EP2612260A1 (en) * | 2010-09-03 | 2013-07-10 | Loglogic, Inc. | Dynamic parsing rules |
US8533193B2 (en) * | 2010-11-17 | 2013-09-10 | Hewlett-Packard Development Company, L.P. | Managing log entries |
US20150161160A1 (en) * | 2011-08-31 | 2015-06-11 | Google Inc. | Application Localization |
US20130097125A1 (en) * | 2011-10-12 | 2013-04-18 | Vmware, Inc. | Automated analysis of unstructured data |
US9244903B2 (en) * | 2013-04-15 | 2016-01-26 | Vmware, Inc. | Efficient data pattern matching |
-
2013
- 2013-07-19 US US13/946,592 patent/US9336203B2/en active Active
-
2014
- 2014-07-10 WO PCT/US2014/046190 patent/WO2015009542A1/en active Application Filing
- 2014-07-10 CN CN201480040420.0A patent/CN105706045B/zh active Active
-
2016
- 2016-12-16 HK HK16114342A patent/HK1226160A1/zh not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114508A1 (en) * | 2003-11-26 | 2005-05-26 | Destefano Jason M. | System and method for parsing, summarizing and reporting log data |
US20060155725A1 (en) * | 2004-11-30 | 2006-07-13 | Canon Kabushiki Kaisha | System and method for future-proofing devices using metaschema |
CN1956583A (zh) * | 2005-10-29 | 2007-05-02 | 华为技术有限公司 | 记录及输出呼叫日志信息的方法及应用及系统 |
US20110320493A1 (en) * | 2006-01-20 | 2011-12-29 | Thales | Method and device for retrieving data and transforming same into qualitative data of a text-based document |
US20110246467A1 (en) * | 2006-06-05 | 2011-10-06 | Accenture Global Services Limited | Extraction of attributes and values from natural language documents |
US20130185286A1 (en) * | 2007-10-02 | 2013-07-18 | Boris Galitsky | Searching for associated events in log data |
US20130166568A1 (en) * | 2011-12-23 | 2013-06-27 | Nou Data Corporation | Scalable analysis platform for semi-structured data |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599244A (zh) * | 2016-12-20 | 2017-04-26 | 飞狐信息技术(天津)有限公司 | 通用的原始日志清洗装置及方法 |
CN106599244B (zh) * | 2016-12-20 | 2024-01-05 | 飞狐信息技术(天津)有限公司 | 通用的原始日志清洗装置及方法 |
CN113396395A (zh) * | 2018-12-20 | 2021-09-14 | 皇家飞利浦有限公司 | 有效评估日志模式的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150025875A1 (en) | 2015-01-22 |
HK1226160A1 (zh) | 2017-09-22 |
CN105706045B (zh) | 2019-04-23 |
WO2015009542A1 (en) | 2015-01-22 |
US9336203B2 (en) | 2016-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105706045A (zh) | 对日志消息内容的面向语义分析 | |
US8756244B2 (en) | Metadata as comments for search problem determination and analysis | |
EP2282449B1 (en) | Message descriptions | |
US7577641B2 (en) | Computer-implemented system and method for analyzing search queries | |
US7983900B2 (en) | Method, computer program and apparatus for analysing symbols in a computer system | |
CN104699737A (zh) | 用于管理搜索的方法和系统 | |
US20090240694A1 (en) | Techniques for application data scrubbing, reporting, and analysis | |
US11888874B2 (en) | Label guided unsupervised learning based network-level application signature generation | |
US8489631B2 (en) | Distributing a query | |
CN106446113A (zh) | 移动大数据解析方法及装置 | |
CN111767573A (zh) | 数据库安全管理方法、装置、电子设备及可读存储介质 | |
CN114153980A (zh) | 知识图谱构建方法和装置、检查方法、存储介质 | |
CN108563629A (zh) | 一种日志解析规则自动生成方法和装置 | |
CN110020161B (zh) | 数据处理方法、日志处理方法和终端 | |
CN113792554A (zh) | 一种基于知识图谱的变更影响评估方法和装置 | |
CN108388606B (zh) | 一种校验Sql语句中库表字段名的方法以及计算机设备 | |
CN113706176A (zh) | 一种结合云计算的信息反欺诈处理方法及服务平台系统 | |
US9600644B2 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
KR102189127B1 (ko) | 행위 기반 룰 처리 장치 및 그 처리 방법 | |
CN105719072A (zh) | 关联多段组件交易的系统及方法 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN107633094B (zh) | 一种集群环境中数据检索的方法和装置 | |
WO2022111209A1 (zh) | 数据采集方法、装置、数据采集设备及可读存储介质 | |
CN115913655A (zh) | 一种基于流量分析和语义分析的Shell命令注入检测方法 | |
CN112527497B (zh) | 一种序列化多线程数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1226160 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |