CN116822491A - 日志解析方法及装置、设备、存储介质 - Google Patents

日志解析方法及装置、设备、存储介质 Download PDF

Info

Publication number
CN116822491A
CN116822491A CN202210878029.4A CN202210878029A CN116822491A CN 116822491 A CN116822491 A CN 116822491A CN 202210878029 A CN202210878029 A CN 202210878029A CN 116822491 A CN116822491 A CN 116822491A
Authority
CN
China
Prior art keywords
log
template
template library
templates
log template
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
Application number
CN202210878029.4A
Other languages
English (en)
Inventor
刘维友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202210878029.4A priority Critical patent/CN116822491A/zh
Publication of CN116822491A publication Critical patent/CN116822491A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请公开了日志解析方法及装置、设备、存储介质;其中,所述方法包括:将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,变量包括语义变量和/或非语义变量;不同的语义变量对应的第一标识符不同,不同的非语义变量对应的第二标识符相同;从预先构建的第一日志模板库中查找与第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的变量进行所述标识符替换得到的;根据所述目标日志模板,确定所述第一日志的解析结果;如此,减少了第二日志需要进行匹配的日志模板数量,提高了日志解析速度。

Description

日志解析方法及装置、设备、存储介质
技术领域
本申请涉及语言处理技术,涉及但不限于日志解析方法及装置、设备、存储介质。
背景技术
系统日志是由开发人员编写程序输出的文本,记录当前设备运行时期每个任务的信息,比如用户请求的事件类型、用户身份标识(Identity,ID)以及事件级别。通过挖掘系统日志可以完成异常检测、攻击溯源、故障诊断和用户画像的构建等,然而原始日志数据通常是非结构化数据或半结构化数据,因此需要设计合适的方法将日志解析为结构化数据。可见,日志解析是实现自动化和有效分析日志的关键步骤。随着软件系统的不断更新,日志的规模和复杂性都逐渐增加,然而一些日志解析方法对日志的解析速率较低。
发明内容
有鉴于此,本申请提供的日志解析方法及装置、设备、存储介质,对待解析的第一日志进行标识符替换得到第二日志后,与去重后的第一日志模板库进行匹配;如此,减少了第二日志需要匹配的日志模板数量,提高了日志解析速度。
根据本申请实施例的一个方面,提供一种日志解析方法,包括:将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,所述变量包括语义变量和/或非语义变量;不同的所述语义变量对应的第一标识符不同,不同的所述非语义变量对应的第二标识符相同;从预先构建的第一日志模板库中查找与所述第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的变量进行所述标识符替换得到的;根据所述目标日志模板,确定所述第一日志的解析结果。
本申请实施例提供的日志解析装置,包括:替换模块,用于将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,所述变量包括语义变量和/或非语义变量;不同的所述语义变量对应的第一标识符不同,不同的所述非语义变量对应的第二标识符相同;查找模块,用于从预先构建的第一日志模板库中查找与所述第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的所述变量进行所述标识符替换得到的;第一确定模块,用于根据所述目标日志模板,确定所述第一日志的解析结果。
本申请实施例提供的电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的方法。
本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为本申请实施例提供的日志解析方法的实现流程示意图;
图2为本申请实施例提供的第一日志模板库与第三日志模板库之间的模板映射关系的构建流程示意图;
图3a为本申请实施例提供的相似日志模板与合并后的第三日志模板示意图;
图3b为本申请实施例提供的相似日志模板与合并后的第四日志模板示意图;
图4为本申请实施例提供的日志解析流程示意图;
图5为本申请实施例提供的多源日志示意图;
图6为本申请实施例提供的不同日志解析方法对应的解析时间示意图;
图7为本申请实施例提供的日志解析装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
本申请实施例提供一种日志解析方法,该方法应用于电子设备,该电子设备在实施的过程中可以为各种类型的具有信息处理能力的设备,例如所述电子设备可以包括手机、平板电脑或台式机等。该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。
图1为本申请实施例提供的日志解析方法的实现流程示意图,如图1所示,该方法可以包括以下步骤101至步骤103:
步骤101,将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,所述变量包括语义变量和/或非语义变量;不同的所述语义变量对应的第一标识符不同,不同的所述非语义变量对应的第二标识符相同。
网络设备、电子设备、系统、模块及服务程序等,在运行时都会产生日志(Log),日志至少用于记录事件。其大多为非结构化或半结构化的文本数据,在进行分析前,需要从日志中提取结构化的字段,即从日志中提取日志模板,该过程可以称为日志解析。提取出的日志模板相比于原始日志更有助于快速了解日志概貌,以便后续根据提取出的日志模板进行异常检测及用户行为分析等操作。
在一些实施例中,日志至少可以包含常量和变量,其中,常量可以是开发人员编写的文本,用来描述当前程序的行为或功能等,其可以以单词等的形式出现;变量则反映程序运行过程中的动态信息;例如:IP地址、网站域名、文件路径、统一资源定位系统(UniformResource Locator,URL)、软件名称和用户ID(userid)等。
在一些实施例中,所述变量可以包括语义变量和非语义变量,其中,语义变量可以是能够表征第一日志的语义信息的变量,例如:IP地址、网站域名、URL、文件路径和软件名称等;非语义变量可以是不同于所述语义变量的其他变量,其没有特殊的含义和特定的规律,例如userid和乱码的变量等。
在一些实施例中,可以为不同的变量设计对应的正则表达式,以便用所述正则表达式识别第一日志和/或第三日志中的各个变量。
在一些实施例中,可以以空格分割第一日志,即将第一日志视为多个单词组成的句子,通过预先设计的正则表达式识别第一日志中的各个语义变量,将不同的语义变量用对应的第一标识符替换;示例性地,表1为本申请实施例提供的不同的语义变量对应的正则表达式以及第一标识符。
表1不同语义变量对应的正则表达式以及第一标识符
在一些实施例中,可以通过预先设计的正则表达式识别第一日志中的各个非语义变量,将不同的非语义变量用相同的第二标识符替换;例如,第二标识符可以是统一标识符<*>。
可以理解地,在本申请实施例中,对日志样本库中不同的语义变量用不同的第一标识符进行替换,对非语义变量用统一标识符进行替换,相比于传统日志解析方法中将所有变量用统一标识符替换,实现了细粒度地识别变量,较大程度地保留了原有日志语义信息。
步骤102,从预先构建的第一日志模板库中查找与所述第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的变量进行所述标识符替换得到的。
在一些实施例中,可以通过舍弃所述第二日志模板库中与任一所述第二日志模板相同的日志模板来对第二日志模板库进行去重处理,得到所述第一日志模板库。
在一些实施例中,可以利用预先设计的正则表达式识别第三日志中的语义变量和非语义变量,将不同的语义变量用对应的第一标识符替换,将不同的非语义变量用第二标识符替换,得到第二日志模板。
在一些实施例中,所述第三日志可以是大规模日志库中的日志,所述大规模日志库包含在各个系统,各个软件和各个模块等收集到的部分或全部日志。相应地,将所述大规模日志库中的每条第三日志中的变量进行标识符替换,得到与所述各条第三日志对应的第二日志模板,从而得到第二日志模板库。第二日志模板是通过对第三日志中的变量进行所述标识符替换得到的,也就是说,所述第二日志模板库是通过对大规模日志库中的每一条第三日志的变量进行所述标识符替换得到的。
在一些实施例中,所述第三日志还可以是生成第一日志的系统对应的日志库中的日志,所述生成第一日志的系统对应的日志库中包括在所述生成第一日志的系统上收集到的部分或全部日志。相应地,生成第一日志的系统对应的日志库中的每一条第三日志中的变量进行标识符替换,得到与所述各条第三日志对应的第二日志模板,从而得到第二日志模板库。所述第二日志模板是通过对第三日志中的变量进行所述标识符替换得到的,也就是说,所述第二日志模板库是通过对所述生成第一日志的系统对应的日志库中的每一条第三日志中的变量进行所述标识符替换得到的。
可以理解地,在本申请实施例中,对日志库中的每一第三日志利用设计好的正则表达式去识别不同的变量,生成第二日志模板,以便在去重后与第二日志进行匹配。即对变量设计正则表达式即可,相比于对每条日志设置正则表达式,根据所述正则表达式去匹配待解析的日志,在待匹配的日志样本较多时,能够避免大量使用正则表达式,从而减小计算复杂度。
进一步地,在本申请实施例中,对日志库中的第三日志进行所述标识符替换后,生成的第二日志模板由标识符和常量组成;如此,一些结构相同但日志内容不同的第三日志进行所述标识符替换后生成的第二日志模板可能相同,即进行所述标识符替换后能够生成包括大量重复模板的第二日志模板库;因此,可以对所述第二日志模板库进行去重后得到第一日志模板库,再利用第一日志模板库去匹配第二日志,能够减少第二日志需要匹配的日志模板数量,从而提高日志解析速度。
步骤103,根据所述目标日志模板,确定所述第一日志的解析结果。
在一些实施例中,可以根据所述第一日志模板库与预先构建的第三日志模板库之间的模板映射关系,从所述第三日志模板库中查找出与所述目标日志模板相映射的第三日志模板,将所述相映射的第三日志模板作为所述解析结果;其中,所述第三日志模板库是通过对所述第一日志模板库中的日志模板进行合并处理得到的。
在一些实施例中,可以将所述目标日志模板作为第一日志的解析结果。
在一些实施例中,可以通过如下实施例的步骤201至步骤203来构建所述模板映射关系,在此不再赘述。
在一些实施例中,构建模板映射关系的电子设备可以是对第一日志进行日志解析的电子设备,也可以是其它电子设备,其他电子设备与对第一日志进行日志解析的电子设备不同。
在一些实施例中,若根据所述模板映射关系,无法从所述第三日志模板库中查找出所述相映射的第三日志模板,则将所述第一日志添加至所述第三日志所在的日志库中,并更新所述第三日志所在的日志库,以及基于所述更新后的第三日志对应的日志库更新所述模板映射关系,以便根据更新后的模板映射关系进行所述日志解析。
在一些实施例中,如图2所示,第一日志模板库与第三日志模板库之间的模板映射关系的构建流程示意图包括以下步骤201至步骤203:
步骤201,确定第一日志模板库中两两日志模板之间的相似度。
在一些实施例中,可以利用预先训练得到的文本相似度模型,确定所述第一日志模板库中两两日志模板之间的相似度;其中,所述文本相似度模型是基于所述第一日志模板库训练得到的。
在一些实施例中,文本相似度模型的训练过程包括以下步骤2011至步骤2012(图中未示出):
步骤2011,基于以下式(1)确定第一日志模板库其中一个日志模板中每一单词的词频-逆文件频率(Term Frequency–Inverse Document Frequency,TF-IDF),以便根据所述每一单词的TF-IDF确定所述其中一个日志模板的日志模板向量。
其中,#word为所述其中一个日志模板中第一单词出现的次数;#total为第一日志模板库中第一单词出现的次数,#L是第一日志模板库的日志模板数量,#Lword是第一日志模板库中包括所述第一单词的日志模板的数量。
步骤2012,确定第一日志模板库中每一个日志模板的日志模板向量,计算所述第一日志模板库中两两日志模板向量的相似度,根据所述两两日志模板向量的相似度确定第一日志模板库中两两日志模板的文本相似度。
可以理解地,在本申请实施例中,将文本相似度模型应用到日志解析方法中,可以基于文本相似度模型确定第一日志模板库中两两模板的相似度,以便确定出结构相似的模板,从而将这些结构相似的模板进行合并,得到第三日志模板库。
步骤202,对所述第一日志模板库中的日志模板进行合并处理。
在一些实施例中,可以将所述第一日志模板库中所述相似度大于第一阈值的两个日志模板进行合并,得到所述第三日志模板库;
在又一些实施例中,可以将所述第一日志模板库中所述相似度大于第二阈值的两个日志模板进行合并,得到第四日志模板库;以及确定所述第四日志模板库中两两日志模板之间的相似度,将所述第四日志模板库中所述相似度大于第二阈值的两个日志模板进行合并,直至得到的日志模板库中每一所述相似度小于或等于第二阈值为止,得到所述第三日志模板库;
在一些实施例中,第一阈值和第二阈值可以根据实际需求预先设置;第一阈值和第二阈值可以相同,也可以不同。
在一些实施例中,可以将所述第一日志模板库中所述相似度大于第一阈值或第二阈值的两个日志模板理解为相似日志模板,或者可以将所述第一日志模板库中所述相似度大于第一阈值或第二阈值的两个日志模板称为一个相似模板对。
可以理解地,在本申请实施例中,一方面,可以将第一日志模板库中大于第一阈值的两个日志模板进行一次合并之后,得到第三日志模板库;另一方面,还可以将第一日志模板库中大于第二阈值的两个日志模板进行一次合并得到第四日志模板库后,再对第四日志模板库进行二次合并,或者对二次合并后的模板继续合并,直至得到的日志模板库中每一所述相似度小于或等于第二阈值为止,从而得到第三日志模板库;如此,经过多次合并,在保证第一日志模板库中结构相似的日志模板能够进行合并的同时,减少了第三日志模板库的数量,从而减少了第二日志所需要进行匹配的第三日志模板的数量,提高了解析速度。
在一些实施例中,将所述相似度大于第一阈值的两个日志模板进行合并,得到所述第三日志模板库,包括以下方式(1)至(2)之一:
方式(1)为:在所述相似度大于第一阈值的两个日志模板中有N个常量不一致的情况下,将其中的一个所述日志模板中的所述N个常量用所述第二标识符替换之后作为所述第三日志模板;其中,N小于或等于第三阈值。
在一些实施例中,第三阈值可以根据实际日志解析需求预先设定。
例如,图3a为本申请实施例提供的相似日志模板与合并后的第三日志模板示意图,其中,第一类示例为通过方式(1)将相似度大于第一阈值的两个日志模板合并得到第三日志模板库的一种示例。
在图3a的第一类示例中,假设第一阈值为1,第二标识符为<*>,相似度大于第一阈值的两个日志模板为模板X1和模板Y1;其中,X1为:Received block blk_src:<path>,Y1为:Receiving block blk_src:<path>,X1和Y1中有一个常量不一致,即X1中的常量Received和Y1中的常量Receiving不同,则将X1中的Received或Y1中的Receiving用第二标识符<*>替换,得到的第三日志模板Z1为:<*>block blk_src:<path>。
方式(2)为:在所述相似度大于第一阈值的两个日志模板存在至少一个重叠序列的情况下,将所述至少一个重叠序列中长度满足条件的重叠序列作为所述第三日志模板。
在一些实施例中,可以先确定出相似度大于第一阈值的两个日志模板中的相同的第一内容,所述内容包括常量和/或变量,再在第一内容中确定出符合所述大于第一阈值的两个日志模板中的其中一个日志模板的原有排列顺序的第二内容;然后根据第二内容确定出前i个不同长度的第三内容,将各个第三内容作为不同长度的重叠序列;其中,1≤i≤第二内容中的常量和变量的数量之和。
例如:大于第一阈值的两个日志模板为A1和A2;模板A1为a1 b1 c1 d1 e1,模板A2为a1 f1 d1 e1 c1。其中,a1,b1,c1,d1,e1和f1为常量或变量,不同常量或变量之间是用空格分隔的。A1和A2中相同的第一内容为:a1,d1,e1和c1;A1中a1,d1,e1和c1的排列顺序为a1c1 d1 e1,A2中a1,d1,e1和c1的排列顺序为a1 d1 e1 c1,假设将符合A1的原有排列顺序的内容作为第二内容,那么第二内容为:a1 d1 c1,则第二内容中的常量和变量的数量之和为3,则第三内容,即相似度大于第一阈值的两个日志模板的重叠序列为a1,a1 d1和a1 d1c1。
在一些实施例中,可以将最长的重叠序列作为所述第三日志模板;或者,可以将所述至少一个重叠序列中长度等于第一预设值的重叠序列作为所述第三日志模板;其中,第一预设值可以根据实际日志解析需求预先设定;
图3a中的第二类示例和第三类示例为通过方式(2)将相似度大于第一阈值的两个日志模板合并得到第三日志模板库的示例;其中,第二类示例为将最长的重叠序列作为第三日志模板的一种示例,第三类示例为将所述至少一个重叠序列中长度等于第一预设值的重叠序列作为所述第三日志模板的一种示例。
在图3a的第二类示例中,假设相似度大于第一阈值的两个日志模板为模板X2和模板Y2;其中,X2为:BLOCK*ask<ip>to repli cate blk_<*>to datanode(s)<ip>,Y2为BLOCK*ask<ip>to repli cate blk_<*>to datanode(s)<ip><ip>,X2和Y2存在至少一个重叠序列,例如,重叠序列BLOCK*ask<ip>to repli、重叠序列BLOCK*ask、BLOCK*ask<ip>torepli cate blk_<*>to datanode(s)<ip>、和重叠序列to datanode(s)<ip>等;可以将最长的重叠序列BLOCK*ask<ip>to repli cate blk_<*>to datanode(s)<ip>作为第三日志模板Z2。
在图3a的第三类示例中,假设相似度大于第一阈值的两个日志模板分别为X3和Y3;其中,X3为:PacketResponder blk_<*><*>Exception java.io.IOException:Brokenpipe,Y3为writeBlock blk_<*>received Exception java.io.IOException:Brokenpipe,X3和Y3存在至少一个重叠序列,例如,重叠序列bk_<*>Exceptionjava.io.IOException:Broken pipe、重叠序列IOException:Broken pipe等;若第一预设值为6,则第三日志模板Z3为根据X3和Y3确定出的所述第三内容中前6个常量或变量:即Z3为:blk_<*>Exception java.io.IOException:Broken pipe,其中,Z3中的6个常量或变量为:blk,<*>,Exception,java.io.IOException:,Broken和pipe。
在一些实施例中,将相似度大于第二阈值的两个日志模板合并得到第四日志模板的方法和将所述相似度大于第一阈值的两个日志模板进行合并得到第三日志模板的方法相同,将所述第一日志模板库中所述相似度大于第二阈值的两个日志模板进行合并,得到第四日志模板库,包括以下方式(3)至(4)之一:
方式(3)为:在所述相似度大于第二阈值的两个日志模板中有M个常量不一致的情况下,将其中的一个所述日志模板中的所述M个常量用所述第二标识符替换之后作为所述第三日志模板;其中,M小于或等于第四阈值;
在一些实施例中,第四阈值可以根据实际日志解析需求预先设定。
例如,图3b为本申请实施例提供的相似日志模板与合并后的第四日志模板示意图,其中,第一类示例为通过方式(3)将相似度大于第二阈值的两个日志模板合并得到第四日志模板库的一种示例。
在图3b的第一类示例中,假设第一阈值为1,第二标识符为<*>,相似度大于第一阈值的两个日志模板为模板X1和模板Y1;其中,X1为:Received block blk_src:<path>,Y1为:Receiving block blk_src:<path>,X1和Y1中有一个常量不一致,即X1中的常量Received和Y1中的常量Receiving不同,则将X1中的Received或Y1中的Receiving用第二标识符<*>替换,得到的第三日志模板Z1为:<*>block blk_src:<path>。
方式(4)为:在所述相似度大于第二阈值的两个日志模板存在至少一个重叠序列的情况下,将所述至少一个重叠序列中长度满足条件的重叠序列作为所述第四日志模板。
在一些实施例中,可以先确定出相似度大于第二阈值的两个日志模板中的相同的第四内容,所述内容包括常量和/或变量,再在第四内容中确定出符合所述大于第一阈值的两个日志模板中的其中一个日志模板的原有排列顺序的第五内容;然后根据第五内容确定出前i个不同长度的第六内容,将各个第六内容作为不同长度的重叠序列;其中,1≤i≤第五内容中的常量和变量的数量之和。
例如:大于第二阈值的两个日志模板为A1和A2;模板A1为a1 b1 c1 d1 e1,模板A2为a1 f1 d1 e1 c1。其中,a1,b1,c1,d1,e1和f1为常量或变量,不同常量或变量之间是用空格分隔的。A1和A2中相同的第四内容为:a1,d1,e1和c1;A1中a1,d1,e1和c1的排列顺序为a1c1 d1 e1,A2中a1,d1,e1和c1的排列顺序为a1 d1 e1 c1,假设将符合A1的原有排列顺序的内容作为第五内容,那么第五内容为:a1 d1 c1,则第五内容中的常量和变量的数量之和为3,则第六内容,即相似度大于第二阈值的两个日志模板的重叠序列为a1,a1 d1和a1 d1c1。
在一些实施例中,可以将最长的重叠序列作为所述第四日志模板;或者,将所述至少一个重叠序列中长度等于第二预设值的重叠序列作为所述第四日志模板;其中,第二预设值可以根据实际日志解析需求预先设定;
图3a中的第二类示例和第三类示例为通过方式(2)将相似度大于第二阈值的两个日志模板合并得到第三日志模板库的示例;其中,第二类示例为将最长的重叠序列作为第四日志模板的一种示例,第三类示例为将所述至少一个重叠序列中长度等于第二预设值的重叠序列作为所述第四日志模板的一种示例。
在图3b的第二类示例中,假设相似度大于第二阈值的两个日志模板为模板X2和模板Y2;其中,X2为:BLOCK*ask<ip>to repli cate blk_<*>to datanode(s)<ip>,Y2为BLOCK*ask<ip>to repli cate blk_<*>to datanode(s)<ip><ip>,X2和Y2存在至少一个重叠序列,例如,重叠序列BLOCK*ask<ip>to repli、重叠序列BLOCK*ask、BLOCK*ask<ip>torepli cate blk_<*>to datanode(s)<ip>、和重叠序列to datanode(s)<ip>等,可以将最长的重叠序列BLOCK*ask<ip>to repli cate blk_<*>to datanode(s)<ip>作为第四日志模板Z2。
在图3b的第三类示例中,假设相似度大于第二阈值的两个日志模板分别为X3和Y3;其中,X3为:PacketResponder blk_<*><*>Exception java.io.IOException:Brokenpipe,Y3为writeBlock blk_<*>received Exception java.io.IOException:Brokenpipe,X3和Y3存在至少一个重叠序列,例如,重叠序列bk_<*>Exceptionjava.io.IOException:Broken pipe、重叠序列IOException:Broken pipe等,若第二预设值为6,则第四日志模板Z3为根据X3和Y3确定出的所述第六内容中前6个常量或变量:即Z3为:blk_<*>Exception java.io.IOException:Broken pipe,其中,Z3中的6个常量或变量为:blk,<*>,Exception,java.io.IOException:,Broken和pipe。
步骤203,将合并后得到的日志模板与合并前的日志模板建立模板映射关系。
在一些实施例中,若一对相似日志模板经过一次合并之后得到第三日志模板,则将合并前的日志模板对中的每条日志模板分别与合并后的第三日志模板建立模板映射关系。若N对相似模板经过多次合并后得到第三日志模板,则将N对相似模板中的每条日志模板分别与合并后的第三日志建立模板映射关系。
示例性地,若模板A与模板B合并后得到模板C,则A与C建立模板映射关系,B与C建立模板映射关系;若A与B合并得到C,模板D与模板E合并得到模板F,C与F合并得到模板G,则A与G建立模板映射关系,B与G建立模板映射关系,D与G建立模板映射关系,E与G建立模板映射关系。
在一些实施例中,将合并后得到的日志模板与合并前的日志模板建立模板映射关系,可以理解为,合并前的日志模板与合并后得到的日志模板满足模板映射关系;或者,可以理解为,第三日志模板库中与所述合并前的日志模板所匹配的或者所对应的是所述合并后的日志模板。
需要说明的是,第一日志模板库中的每对相似日志模板包含的日志模板可以是各不相同的;示例性地,第一相似模板对模板A和模板B,与第二相似模板对模板C和模板D中包含的日志模板A、B、C和D是各不相同的;或者,所述第一日志模板库包含有相同日志模板的至少两个相似日志模板对;示例性地,第一日志模板库中包含第三相似模板对和第四相似模板对,其中,第三相似模板对A和B,与第四相似模板对A和C中包含相同的日志模板A。
在一些实施例中,确定经过所述合并处理后得到的所述模板映射关系的准确率;根据所述准确率对所述第一阈值或第二阈值进行调整。
在一些实施例中,可以根据预先标注的第一日志模板库与第三日志模板库的映射关系,确定所述合并后得到的日志模板与合并前的日志模板建立的模板映射关系的准确率。
在一些实施例中,可以标注第一日志模板库与第三日志模板库中不合适的模板映射关系,基于不合适的模板映射关系的数量与第一日志模板库和第三日志模板库的所有映射关系数量的比值来确定所述模板映射关系的准确率,以便根据所述准确率评估日志解析的效果。
可以理解地,在评估日志解析的效果时,对第一日志模板库和第三日志模板库不合适的第一映射关系进行标注即可,而不需要对日志库中大量第三日志与经过标识符替换以及合并后的第三日志模板是否匹配进行标注;如此,简化了日志解析效果的评估方案。
在一些实施例中,可以根据所述准确率对第一阈值或第二阈值进行调整。
可以理解地,若所述模板映射关系的准确率较低,则说明对日志库中的第三日志归类不合适或者不能将第三日志所在的日志库分类收敛;因此可以通过调整第一阈值和/或第二阈值来确定新的相似模板对,从而得到更为合适的合并后的第三日志模板。
基于此,下面将说明本申请实施例在一个实际的应用场景中的示例性应用。
系统日志是由开发人员编写程序(例如printf程序、logging.log程序和logger.info程序等)输出的文本,记录当前设备运行时期每个任务的信息,比如用户请求的事件类型、用户id以及事件级别。通过挖掘系统日志可以完成异常检测、攻击溯源、故障诊断和用户画像,然而原始日志数据通常是非结构化数据或半结构化数据,需要设计合适的方法将日志解析为结构化数据。日志解析是实现自动化和有效分析日志的关键步骤,在一些实施例中,日志解析方法,如下表2所示。
表2日志解析方法
模式是日志解析方法的重要特性,根据解析器使用的场景,可以分为两种模式:离线和在线。离线日志解析方法需要预先解析所有日志数据,并以批处理方式解析日志数据。为了应对频繁的系统更新,需要开发人员定期重新运行离线解析器来获取最新的日志模板。相比之下,在线解析器以流的方式解析日志数据,更好地与后续日志挖掘任务对接。
预处理指的是基于一定的领域知识,处理日志中所有变量的步骤,需要开发人员设计合理的正则表达式来逐条处理原始日志。示例性地,ip地址(例如10.86.169.121:62260)是各类日志中常见的变量。现有的解析方案采用统一标识符<*>来替换日志中所有变量,这虽然提高了提取日志模板的效率,但获取的日志模板缺失了部分语义信息。
决定日志解析方法效果的关键因素是提取日志模板的技术,其直接影响提取模板的效率和准确率。简单日志聚类工具(Simple Log Clustering Tool,SLCT)是通过聚类算法允许在两条日志之间有可变长度的参数。在一些实施例中,日志解析方法包括:日志关键字提取技术(Log Key Extraction,LKE),应用有限状态自动机从日志序列中提取系统任务流程,应用基于定制加权编辑距离的分层聚类算法识别异常日志序列。Sigmoid函数(LogSig)对LKE做出改进,应用启发式规则优化聚类算法,以多个词对的形式表示系统日志,根据相同词对提取日志模板。AECID-PG算法和Drain算法是基于树结构的日志解析算法,Drain利用日志长度来生成分区,以一个日志单词为一个树节点,生成与原始日志内容对应日志模板的树。Spell算法通过在线流模式解析日志,应用最长公共子序列算法匹配日志模板。IPLoM算法以分层方式将日志数据分组。
在相关技术中,日志解析过于依赖正则表达式来提取特定日志模板,随着规模和复杂性的增加,软件系统往往会产生大量具有不同日志模板的日志。因此,手工创建和维护正则表达式需要巨大的人力,并且随着软件版本的更新,会有大量新的日志模板产生,需要对日志解析方法进行频繁更新,主要有以下A)至C)3个缺点:
A)需要设计大量正则化表达式匹配对应日志模板,且粗粒度地识别日志中的变量参数会导致大量语义丢失;
B)数量在千万级以上的日志在生成模板库时需要大量时间,部分方法难以处理海量日志数据;
C)在评估日志解析效果时,需要手动对原始日志进行标注,这是一项耗时较大的重复性工作;
本申请实施例提供了一种基于文本相似度模型的日志解析方法,应用正则表达式识别第三日志以及待解析的第一日志中常见类型变量,并进行细粒度划分,例如精确识别第三日志以及待解析的第一日志中的ip地址、url、文件路径等。去除第二日志模板库中的重复日志模板,由于第三日志所在的日志库由大量结构相同或相似的第三日志组成,因此可将第二日志模板库中的日志模板数量由千万降至一百条左右。可将解析速度大幅提高,根据标注去重后的第一日志模板即可完成日志解析评估工作。
本申请实施例应用文本相似度识别结构形式日志,是一种数据驱动型的日志解析方法,具备解析多源异构日志能力,图4为本申请实施例提供的日志解析流程图:
参考图4,日志解析实现方案包括以下步骤401至步骤406:
步骤401,利用正则表达式细粒度地匹配第三日志中变量,以空格分割第三日志,将第三日志视为多个单词组成的句子。设计正则表达式匹配第三日志中的常见变量(即语义变量),如ip地址、url、文件路径等,如表1所示。最后再将其他无特殊含义的变量(即非语义变量)用统一标识符(<*>)替换,得到第二日志模板,区别于传统日志解析方法将所有变量用统一标识符替换,本方案实现细粒度地变量识别,最大程度保留原有日志语义信息。
步骤402,去除第二日志模板库中的重复日志(即对第一日志模板进行预处理),得到第一日志模板库,以在Hadoop分布式文件系统(Hadoop Distribute File System,HDFS)系统上收集到的第三日志为例,可将原来1100万条日志压缩至54条。
步骤403,以第一日志模板库作为语料库训练基于TF-IDF的文本相似度模型来筛选结构相似的日志模板,计算公式如式1所示。整个训练过程在5s内即可完成,当系统更新导致第三日志对应的日志库需要更新时,支持在线更新所述文本相似度模型。
步骤404,应用训练好的文本相似度模型计算第一日志模板库中两两日志模板的相似度,通过设置第一阈值来判定是否可以进行模板合并。相似度低于第一阈值的两两日志模板不需进行合并,直接作为第三日志模板。
步骤405,将待合并模板分为三类,如图3a或图3b所示。第一类有一个单词(常量的一种示例)不一致,将这个单词用第二标识符进行替换;第二类为两个日志模板存在子序列关系,则将子序列做为合并后的第三日志模板;第三类以最长公共子序列算法结果作为合并后的第三日志模板。并构建第一日志模板库与第三日志模板库对应的散列表(模板映射关系的一种示例),将第一日志模板库中的日志模板做为key,第三日志模板库中的模板为value建立散列表。
步骤406,当待解析的第一日志以流的形式进行解析时,经过所述标识符替换后得到第二日志,从第一日志模板库中查找与所述第二日志相匹配的目标日志模板,再根据散列表找到所述目标日志模板对应的第三日志模板。从而确定所述第一日志的解析结果。若系统更新导致无法根据散列表确定第一日志的解析结果,则重复步骤403至步骤405更新散列表。
在一些实施例中,在评估日志解析效果时,对散列表中不合适的模板映射关系进行标注再统计不合适的模板映射关系与所有模板映射关系的数量,即可完成准确率等指标计算。
由不同系统、软件生成的第三日志在结构上存在较大差异,图5为本申请实施例提供的多源日志,如图5所示。加粗部分为第三日志的主体内容,其中含有不同类型的变量,且同一类型的变量如时间在形式上也存在较大差异。因此针对多源日志需要为每个源的第三日志建立相应的日志模板库和散列表,并且需要根据解析效果的评估灵活调整第一阈值。
本申请实施例可以细粒度地识别日志中变量以保留语义;
本申请实施例应用文本相似度模型寻找第一日志模板模板库中结构相似的第一日志模板这是相关场景中未考虑和涉及到的。
本申请实施例构建了第一日志模板库与第三日志模板库对应的散列表。
本申请实施例在评估日志解析效果时,需对散列表中不合适的模板映射关系进行标注再统计不合适的模板映射关系与所有模板映射关系的数量,即可完成准确率等指标计算。
本申请实施例适用于解析大规模日志,在解析超过千万条日志时,效率提升四倍以上。图6为本申请实施例提供的不同日志解析方法对应的解析时间。
日志是一种频繁更新的数据,在一些实施例中,每次更新后都需要进行重复标注第三日志对应的第三日志模板,本申请实施例在评估阶段较少手动标注日志的工作量,减少人力消耗。
本申请实施例根据模板映射关系可灵活调整第一阈值,以适应不同类型日志,便于整个方案的优化。
本申请实施例适用于在线多源日志解析,并且第一日志模板中留存的语义信息丰富,有利于后续日志挖掘工作展开。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等;或者,将不同实施例中步骤组合为新的技术方案。
基于前述的实施例,本申请实施例提供一种日志解析装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图7为本申请实施例提供的日志解析装置的结构示意图,如图7所示,所述日志解析装置70包括替换模块71、查找模块72和第一确定模块73,其中:
替换模块71,用于将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,所述变量包括语义变量和/或非语义变量;不同的所述语义变量对应的第一标识符不同,不同的所述非语义变量对应的第二标识符相同;
查找模块72,用于从预先构建的第一日志模板库中查找与所述第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的所述变量进行所述标识符替换得到的;
第一确定模块73,根据所述目标日志模板,确定所述第一日志的解析结果。
在一些实施例中,日志解析装置70还包括去重模块,所述去重模块,用于舍弃所述第二日志模板库中与任一所述第二日志模板相同的日志模板,得到所述第一日志模板库。
在一些实施例中,日志解析装置70还包括第二确定模块,所述第二确定模块,用于根据所述第一日志模板库与预先构建的第三日志模板库之间的模板映射关系,从所述第三日志模板库中查找出与所述目标日志模板相映射的第三日志模板;其中,所述第三日志模板库是通过对所述第一日志模板库中的日志模板进行合并处理得到的;将所述相映射的第三日志模板作为所述解析结果。
在一些实施例中,日志解析装置70还包括第三确定模块、合并模块和建立模块,所述第三确定模块,用于确定所述第一日志模板库中两两日志模板之间的相似度;所述合并模块,用于将所述第一日志模板库中所述相似度大于第一阈值的两个日志模板进行合并,得到所述第三日志模板库;或者,将所述第一日志模板库中所述相似度大于第二阈值的两个日志模板进行合并,得到第四日志模板库;以及确定所述第四日志模板库中两两日志模板之间的相似度,将所述第四日志模板库中所述相似度大于第二阈值的两个日志模板进行合并,直至得到的日志模板库中每一所述相似度小于或等于第二阈值为止,得到所述第三日志模板库;所述建立模块,用于将合并后得到的日志模板与合并前的日志模板建立模板映射关系。
在一些实施例中,所述合并模块,用于在所述相似度大于第一阈值的两个日志模板中有N个常量不一致的情况下,将其中的一个所述日志模板中的所述N个常量用所述第二标识符替换之后作为所述第三日志模板;其中,N小于或等于第三阈值;在所述相似度大于第一阈值的两个日志模板存在至少一个重叠序列的情况系,将所述至少一个重叠序列中长度满足条件的重叠序列作为所述第三日志模板。
在一些实施例中,所述第三确定模块,用于利用预先训练得到的文本相似度模型,确定所述第一日志模板库中两两日志模板之间的相似度;其中,所述文本相似度模型是基于所述第一日志模板库训练得到的。
在一些实施例中,所述日志解析装置70还包括第四确定模块,所述第四确定模块,用于确定经过所述合并处理后得到的所述模板映射关系的准确率;所述日志解析装置70还包括调整模块,所述调整模块,用于根据所述准确率对所述第一阈值或第二阈值进行调整。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中图7所示的译码装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的日志解析方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例提供一种电子设备,图8为本申请实施例的电子设备的硬件实体示意图,如图8所示,所述电子设备80包括存储器81和处理器82,所述存储器81存储有可在处理器82上运行的计算机程序,所述处理器82执行所述程序时实现上述实施例中提供的方法中的步骤。
需要说明的是,存储器81配置为存储由处理器82可执行的指令和应用,还可以缓存在处理器82以及电子设备80中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(RandomAccess Memory,RAM)实现。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的日志解析方法中的步骤。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的日志解析方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象A和/或对象B,可以表示:单独存在对象A,同时存在对象A和对象B,单独存在对象B这三种情况。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种日志解析方法,其特征在于,所述方法包括:
将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,所述变量包括语义变量和/或非语义变量;不同的所述语义变量对应的第一标识符不同,不同的所述非语义变量对应的第二标识符相同;
从预先构建的第一日志模板库中查找与所述第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的所述变量进行所述标识符替换得到的;
根据所述目标日志模板,确定所述第一日志的解析结果。
2.根据权利要求1所述的方法,其特征在于,所述对第二日志模板库进行去重处理,包括:
舍弃所述第二日志模板库中与任一所述第二日志模板相同的日志模板,得到所述第一日志模板库。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标日志模板,确定所述第一日志的解析结果,包括:
根据所述第一日志模板库与预先构建的第三日志模板库之间的模板映射关系,从所述第三日志模板库中查找出与所述目标日志模板相映射的第三日志模板;其中,所述第三日志模板库是通过对所述第一日志模板库中的日志模板进行合并处理得到的;
将所述相映射的第三日志模板作为所述解析结果。
4.根据权利要求3所述的方法,其特征在于,对所述第一日志模板库中的日志模板进行所述合并处理,包括:
确定所述第一日志模板库中两两日志模板之间的相似度;以及将所述第一日志模板库中所述相似度大于第一阈值的两个日志模板进行合并,得到所述第三日志模板库;或者,
将所述第一日志模板库中所述相似度大于第二阈值的两个日志模板进行合并,得到第四日志模板库;以及确定所述第四日志模板库中两两日志模板之间的相似度,将所述第四日志模板库中所述相似度大于所述第二阈值的两个日志模板进行合并,直至得到的日志模板库中每一所述相似度小于或等于所述第二阈值为止,得到所述第三日志模板库;
其中,
所述方法还包括:将合并后得到的日志模板与合并前的日志模板建立模板映射关系。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一日志模板库中所述相似度大于第一阈值的两个日志模板进行合并,得到所述第三日志模板库,包括以下之一:
在所述相似度大于所述第一阈值的两个日志模板中有N个常量不一致的情况下,将其中的一个所述日志模板中的所述N个常量用所述第二标识符替换之后作为所述第三日志模板;其中,N小于或等于第三阈值;
在所述相似度大于所述第一阈值的两个日志模板存在至少一个重叠序列的情况下,将所述至少一个重叠序列中长度满足条件的重叠序列作为所述第三日志模板。
6.根据权利要求4所述的方法,其特征在于,所述确定所述第一日志模板库中两两日志模板之间的相似度,包括:
利用预先训练得到的文本相似度模型,确定所述第一日志模板库中两两日志模板之间的相似度;其中,所述文本相似度模型是基于所述第一日志模板库训练得到的。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
确定经过所述合并处理后得到的所述模板映射关系的准确率;
根据所述准确率对所述第一阈值或所述第二阈值进行调整。
8.一种日志解析装置,其特征在于,包括:
替换模块,用于将待解析的第一日志中的变量进行标识符替换,得到第二日志;其中,所述变量包括语义变量和/或非语义变量;不同的所述语义变量对应的第一标识符不同,不同的所述非语义变量对应的第二标识符相同;
查找模块,用于从预先构建的第一日志模板库中查找与所述第二日志相匹配的目标日志模板;其中,所述第一日志模板库是通过对第二日志模板库进行去重处理后得到的,所述第二日志模板库包括至少一条第二日志模板,所述第二日志模板是通过对第三日志中的所述变量进行所述标识符替换得到的;
第一确定模块,用于根据所述目标日志模板,确定所述第一日志的解析结果。
9.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202210878029.4A 2022-07-25 2022-07-25 日志解析方法及装置、设备、存储介质 Pending CN116822491A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210878029.4A CN116822491A (zh) 2022-07-25 2022-07-25 日志解析方法及装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210878029.4A CN116822491A (zh) 2022-07-25 2022-07-25 日志解析方法及装置、设备、存储介质

Publications (1)

Publication Number Publication Date
CN116822491A true CN116822491A (zh) 2023-09-29

Family

ID=88124535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210878029.4A Pending CN116822491A (zh) 2022-07-25 2022-07-25 日志解析方法及装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN116822491A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112780A (zh) * 2023-10-23 2023-11-24 北京安信天行科技有限公司 一种基于文本摘要模型的非结构化日志解析方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112780A (zh) * 2023-10-23 2023-11-24 北京安信天行科技有限公司 一种基于文本摘要模型的非结构化日志解析方法及装置
CN117112780B (zh) * 2023-10-23 2023-12-26 北京安信天行科技有限公司 一种基于文本摘要模型的非结构化日志解析方法及装置

Similar Documents

Publication Publication Date Title
US20230334254A1 (en) Fact checking
US10725836B2 (en) Intent-based organisation of APIs
US11468342B2 (en) Systems and methods for generating and using knowledge graphs
CN110968684A (zh) 一种信息处理方法、装置、设备及存储介质
CN110321437B (zh) 一种语料数据处理方法、装置、电子设备及介质
CN113434858B (zh) 基于反汇编代码结构和语义特征的恶意软件家族分类方法
CN112115232A (zh) 一种数据纠错方法、装置及服务器
Jain et al. A review of unstructured data analysis and parsing methods
CN116841779A (zh) 异常日志检测方法、装置、电子设备和可读存储介质
CN114676346A (zh) 新闻事件处理方法、装置、计算机设备和存储介质
WO2016093839A1 (en) Structuring of semi-structured log messages
CN116822491A (zh) 日志解析方法及装置、设备、存储介质
US9323721B1 (en) Quotation identification
CN110489740B (zh) 语义解析方法及相关产品
CN117077668A (zh) 风险画像展示方法、装置、计算机设备和可读存储介质
CN112231513A (zh) 一种学习视频推荐方法、装置及系统
US20160085760A1 (en) Method for in-loop human validation of disambiguated features
CN111753199B (zh) 用户画像构建方法及设备、电子设备和介质
CN115618873A (zh) 数据处理方法、装置、计算机设备及存储介质
CN112632229A (zh) 文本聚类方法及装置
Quille et al. Detecting Favorite Topics in Computing Scientific Literature via Dynamic Topic Modeling
CN111538898A (zh) 基于组合特征提取的Web服务包推荐方法及系统
CN113505889B (zh) 图谱化知识库的处理方法、装置、计算机设备和存储介质
US20240296231A1 (en) Automated attribute scraping for security feature implementation prediction
CN117573956B (zh) 元数据管理方法、装置、设备及存储介质

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