CN115344538A - 一种日志处理方法、装置、设备及可读存储介质 - Google Patents
一种日志处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115344538A CN115344538A CN202211025800.XA CN202211025800A CN115344538A CN 115344538 A CN115344538 A CN 115344538A CN 202211025800 A CN202211025800 A CN 202211025800A CN 115344538 A CN115344538 A CN 115344538A
- Authority
- CN
- China
- Prior art keywords
- log
- prefix tree
- prefix
- template
- nodes
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000001514 detection method Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 35
- 108091026890 Coding region Proteins 0.000 claims description 15
- 230000000694 effects Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了计算机技术领域内的一种日志处理方法、装置、设备及可读存储介质。本申请将日志集合中的每条日志数据视作处理对象,然后将处理对象中的系统生成字符替换为目标字符,得到日志模板;若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;在日志集合中的所有日志数据处理完成后,利用最后得到的前缀树检测任意系统产生的日志。该方案利用前缀树记录日志模板,能够同时保障日志检测的精度和效率。相应地,本申请提供的一种日志处理装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种日志处理方法、装置、设备及可读存储介质。
背景技术
目前,常用正则匹配、NLP方法、FT-tree和Drain等检测系统日志,但正则匹配的适用场景较少,需要维护庞大的正则库来匹配各种日志,而且随着库的增加,匹配效率会直线下降;NLP方法的建模需要大量的日志数据,实时应变能力较差,而且需要很多计算资源;FT-tree和Drain虽然保持了灵活性,但是模板分类结果过于粗糙。
因此,如何同时保障日志检测的精度和效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种日志处理方法、装置、设备及可读存储介质,以同时保障日志检测的精度和效率。其具体方案如下:
第一方面,本申请提供了一种日志处理方法,包括:
获取日志集合,并将所述日志集合中的每条日志数据分别作为处理对象;
将所述处理对象中的系统生成字符替换为目标字符,得到日志模板;
若当前已有前缀树且在所述前缀树中未查到所述日志模板的哈希值,则将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,并将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点;K为所述前缀树的深度;
若所述日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
可选地,所述将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,包括:
按照所述前K个词汇的先后顺序在所述前缀树中查询;
若在所述前缀树中查到所述前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在所述各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
可选地,以所述哈希值作为key,以所述日志模板作为value,构建所述键值对。
可选地,得到日志模板之后,还包括:
若当前已有前缀树且在所述前缀树中查到所述哈希值,则丢弃所述日志模板,并从所述日志集合中选择下一条日志数据进行处理。
可选地,得到日志模板之后,还包括:
若当前没有前缀树,则为所述前缀树创建根节点,并执行所述将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点的步骤。
可选地,所述哈希值的生成过程包括:
对所述日志模板中的所有词汇的首字母进行编码,得到编码序列;
计算所述编码序列的哈希值,得到所述哈希值。
可选地,所述利用最后得到的前缀树检测任意系统产生的日志,包括:
判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;
若是,则基于所述目标键值对中的日志模板提取所述日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;
若否,则输出未匹配到日志模板的通知消息。
第二方面,本申请提供了一种日志处理装置,包括:
获取模块,用于获取日志集合,并将所述日志集合中的每条日志数据分别作为处理对象;
替换模块,用于将所述处理对象中的系统生成字符替换为目标字符,得到日志模板;
生成模块,用于若当前已有前缀树且在所述前缀树中未查到所述日志模板的哈希值,则将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,并将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点;K为所述前缀树的深度;
检测模块,用于若所述日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
可选地,生成模块具体用于:
按照所述前K个词汇的先后顺序在所述前缀树中查询;
若在所述前缀树中查到所述前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在所述各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
可选地,以所述哈希值作为key,以所述日志模板作为value,构建所述键值对。
可选地,还包括:
迭代模块,用于若当前已有前缀树且在所述前缀树中查到所述哈希值,则丢弃所述日志模板,并从所述日志集合中选择下一条日志数据进行处理。
可选地,还包括:
创建模块,用于若当前没有前缀树,则为所述前缀树创建根节点,并执行所述将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点的步骤。
可选地,所述哈希值的生成过程包括:
对所述日志模板中的所有词汇的首字母进行编码,得到编码序列;
计算所述编码序列的哈希值,得到所述哈希值。
可选地,检测模块具体用于:
判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;若是,则基于所述目标键值对中的日志模板提取所述日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;若否,则输出未匹配到日志模板的通知消息。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的日志处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的日志处理方法。
通过以上方案可知,本申请提供了一种日志处理方法,包括:获取日志集合,并将所述日志集合中的每条日志数据分别作为处理对象;将所述处理对象中的系统生成字符替换为目标字符,得到日志模板;若当前已有前缀树且在所述前缀树中未查到所述日志模板的哈希值,则将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,并将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点;K为所述前缀树的深度;若所述日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
可见,本申请将日志集合中的每条日志数据视作处理对象,然后将处理对象中的系统生成字符替换为目标字符,得到日志模板;若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;如此本申请将各条日志数据构建为前缀树,并且前缀树中记录有众多日志模板,后续便可在日志集合中的所有日志数据处理完成后,利用最后得到的前缀树检测任意系统产生的日志。该方案无需维护庞大的正则库,也不需要建模,而是利用前缀树记录日志模板,前缀树不仅保持了灵活性,还能通过树节点使得模板分类更加细致,利用前缀树检测日志时,查询键值对即可完成,因此能够同时保障日志检测的精度和效率。
相应地,本申请提供的一种日志处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种日志处理方法流程图;
图2为本申请公开的一种前缀树示意图;
图3为本申请公开的另一种日志处理方法流程图;
图4为本申请公开的一种日志处理装置示意图;
图5为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
日志数据是一种广泛可用的数据资源,用于记录各种软件系统运行时的系统状态和关键事件。开发人员常常利用日志数据来查看系统运行状态、检测异常、推导故障发生原因。因此在日志数据中挖掘关键信息为分析系统问题提供了一个很好的视角,可以帮助增强系统的健康、稳定性和可用性。
随着现代计算机系统规模和复杂性的增加,日志数据爆炸式增长,故日志检测需要更高效。但目前常用的正则匹配检测方法需要维护庞大的正则库来匹配各种日志,而且随着库的增加,匹配效率会直线下降;NLP方法的建模需要大量的日志数据,实时应变能力较差,而且需要很多计算资源;FT-tree和Drain虽然保持了灵活性,但是模板分类结果过于粗糙。为此,本申请提供了一种日志处理方案,能够同时保障日志检测的精度和效率。
参见图1所示,本申请实施例公开了一种日志处理方法,包括:
S101、获取日志集合,并将日志集合中的每条日志数据分别作为处理对象。
其中,日志集合可以是一个服务器、一个软件系统或一个硬件控制系统等在一段时间内产生的日志的集合。
S102、将处理对象中的系统生成字符替换为目标字符,得到日志模板。
一般地,一条日志数据中的系统生成字符包括:虚拟机实例名称、变量名称、变量的数值、时间等。这些字符对于分析系统故障原因等没有实质意义,故可以忽视这些字符,本实施例将这些字符替换为目标字符。目标字符如x。例如:一条日志数据为:“Jun 7 18:01:43worker01 kernel:nf_conntrack:falling back to vmalloc”,将其中的时间Jun 718:01:43和实例名称worker01替换为x,那么该日志数据变换得到的日志模板为:x,x,x,x,kernel,nf_conntrack,falling,back,to vmalloc。
S103、若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点。
其中,K为前缀树的深度。在一种示例中,前缀树如图2所示,图2所示前缀树的深度K=2。如果当前已有前缀树是图2,某一条日志数据中的系统生成字符被替换后,得到的日志模板中有4个词汇:log、error、hello、world,那么按照深度2取前2个词汇log、error插入图2所示前缀树。参照图2,图2所示前缀树中已有词汇节点log和词汇error,故无需再往树中插入这两个词汇,而是直接为节点error创建其叶子节点(即图2中的key2),然后以哈希值作为key,以日志模板作为value,构建键值对,将该键值对填充至新创建的叶子节点。此时,尾节点即节点error。
当然,如果树深度K=3,那么为节点error创建子节点hello,然后为节点hello创建其叶子节点,使键值对填充至节点hello的叶子节点。此时,尾节点即节点hello。其中,在图2所示的前缀树中,key0:[log info x is timeout]的前缀节点为:log和info。
请参照图2,节点info连接有key0和key1,由此可看出:类似的日志模板在其key值不相同时,本实施例会同时记录这些key值和相应日志模板至前缀树,如此可使日志模板更精细。类似的日志模板如图2中的[log info x is timeout]和[log info x x x has diskerror]。
在一种具体实施方式中,将日志模板中的前K个词汇作为K个前缀节点插入前缀树,包括:按照前K个词汇的先后顺序在前缀树中查询;若在前缀树中查到前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
在一种具体实施方式中,一个日志模板的哈希值的生成过程包括:对日志模板中的所有词汇的首字母进行编码,得到编码序列;计算编码序列的哈希值,得到哈希值。例如:一个日志模板中的所有词汇为:log、error、hello、world,那么各词汇的首字符可组成字符序列为[l,e,h,w],对此字符序列进行ascii编码,可得到编码序列[108,101,104,119]。之后对该编码序列进行哈希,可得到该日志模板的哈希值。当然,可以选用其他方法进行编码。
S104、若日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
在一种具体实施方式中,得到日志模板之后,还包括:若当前已有前缀树且在前缀树中查到哈希值,则丢弃日志模板,并从日志集合中选择下一条日志数据进行处理。可见,同一日志模板在前缀树中只记录一次,不重复记录。
在本实施例中,得到日志模板之后,还包括:若当前没有前缀树,则为前缀树创建根节点,并执行将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;K为前缀树的深度的步骤,以完成前缀树的首次节点更新。
在一种具体实施方式中,利用最后得到的前缀树检测任意系统产生的日志,包括:判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;若是,则基于目标键值对中的日志模板提取日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;若否,则输出未匹配到日志模板的通知消息。可见,若不同日志都匹配到前缀树中的同一模板,则可以对比这些日志中的系统生成字符,以分析日志。若3条日志为:超时时间1秒;超时时间1秒;超时时间10秒,那么对比这3条日志的超时时间长短,有助于确定超时故障的发生时间点。
其中,判断某一日志在前缀树中是否有匹配的目标键值对时,也需要按照S102将该日志转换为日志模板,然后计算转换得到的日志模板的哈希值,之后在前缀树中查询该哈希值;若在前缀树中查到相同的哈希值,则确定前缀树中有匹配的目标键值对;否则,确定前缀树中没有匹配的目标键值对。
可见,本实施例将日志集合中的每条日志数据视作处理对象,然后将处理对象中的系统生成字符替换为目标字符,得到日志模板;若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;如此本申请将各条日志数据构建为前缀树,并且前缀树中记录有众多日志模板,后续便可在日志集合中的所有日志数据处理完成后,利用最后得到的前缀树检测任意系统产生的日志。该方案无需维护庞大的正则库,也不需要建模,而是利用前缀树记录日志模板,前缀树不仅保持了灵活性,还能通过树节点使得模板分类更加细致,利用前缀树检测日志时,查询键值对即可完成,因此能够同时保障日志检测的精度和效率。
下面对本申请做进一步详细介绍,具体可参照图3。如图3所示,本实施例首先设定了变量文本替换规则,然后进行日志分词及变量文本替换,进而构建并更新前缀树,计算日志语句向量、哈希值并进行模板判重,最后通过遍历前缀树可获取所有日志模板。
变量文本是指日志中由系统随机生成的、且相对系统故障无意义的文本字符串,比如一些实例名、变量名、变量的数值等。变量文本替换规则可根据实际业务场景进行调优。另外,变量文本替换规则能够过滤掉所有带数值和符号的字符串,以保留自然语言词汇,由此可避免前缀树爆炸式增长。
对于每一条日志,首先进行分词,提取出日志中的各个词汇,然后使用变量文本替换规则,将日志中的“变量文本”替换为“x”,以得到日志模板。之后将日志模板中的所有词汇汇总为词汇序列。其中,由于日志并非标准的自然语言文字,而是由文本、符号和变量构成的,因此在进行日志分词时,可以重点过滤各类符号,以保留自然语言词汇。
构建前缀树时,首先设定前缀树的深度K。深度K的设置可以考虑日志总体分词后的单条日志词汇平均数量,根据实践经验,推荐的树深为8-15。如果大多数日志的词汇较多,可以适当增加树深;反之,减小树深。另外,树深度过大时,容易导致前缀树过于臃肿,降低检索效率。
对于每一条日志,将其中的变量文本替换后,基于其前K个词汇(不足K个则使用所有词汇)更新前缀树,并为当前所确定的尾节点设定叶子节点来存储key-value结构。key-value结构用于存储相应前缀索引下的所有日志模板。
其中,在更新前缀树时,先计算日志语句向量、哈希值并进行模板判重。具体包括:针对日志模板中的所有词汇构成的词汇序列,提取每个词汇的首字符,构成一个字符序列,计算该字符序列中每个字符对应的ascii码值,构成日志语句向量。然后基于日志语句向量计算哈希值。具体的,哈希值的计算公式为:其中,veci为语句向量中的第i个ascii码值,n为语句向量中的ascii码值的个数;P是一个素数,可以取值为100007。计算得到哈希值后,对于新出现的哈希值,将相应日志模板存储于前缀树节中;若该哈希值出现过,则忽略掉该词汇序列。
处理所有日志数据得到前缀树后,对前缀树进行广度优先遍历,以提取前缀树所有叶子节点中的日志模板,即可获得日志模板集合。例如:对于图2中的树结构,广度优先遍历的节点顺序为[log,show,info,error,main],当遍历到节点[info,error,main]时,会将哈希值[key0,key1,key2,key3]所对应的模板分别提取出来。
本实施例可以对大型系统中产生的日志数据进行快速日志模板提取,为日志异常检测提供类别匹配支持。必要时,还可以按照上述过程并用最新的日志更新前缀树结构,因此可以支持日志的实时变化,在保持灵活性的同时,实现了高效的日志模板提取和分类。
下面对本申请实施例提供的一种日志处理装置进行介绍,下文描述的一种日志处理装置与上文描述的一种日志处理方法可以相互参照。
参见图4所示,本申请实施例公开了一种日志处理装置,包括:
获取模块401,用于获取日志集合,并将日志集合中的每条日志数据分别作为处理对象;
替换模块402,用于将处理对象中的系统生成字符替换为目标字符,得到日志模板;
生成模块403,用于若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;K为前缀树的深度;
检测模块404,用于若日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
在一种具体实施方式中,生成模块具体用于:
按照前K个词汇的先后顺序在前缀树中查询;
若在前缀树中查到前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
在一种具体实施方式中,以哈希值作为key,以日志模板作为value,构建键值对。
在一种具体实施方式中,还包括:
迭代模块,用于若当前已有前缀树且在前缀树中查到哈希值,则丢弃日志模板,并从日志集合中选择下一条日志数据进行处理。
在一种具体实施方式中,还包括:
创建模块,用于若当前没有前缀树,则为前缀树创建根节点,并执行将日志模板中的前K个词汇作为K个前缀节点插入前缀树,将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点的步骤。
在一种具体实施方式中,哈希值的生成过程包括:
对日志模板中的所有词汇的首字母进行编码,得到编码序列;
计算编码序列的哈希值,得到哈希值。
在一种具体实施方式中,检测模块具体用于:
判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;若是,则基于目标键值对中的日志模板提取日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;若否,则输出未匹配到日志模板的通知消息。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种日志处理装置,无需维护庞大的正则库,也不需要建模,而是利用前缀树记录日志模板,前缀树不仅保持了灵活性,还能通过树节点使得模板分类更加细致,利用前缀树检测日志时,查询键值对即可完成,因此能够同时保障日志检测的精度和效率。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种日志处理方法及装置可以相互参照。
参见图5所示,本申请实施例公开了一种电子设备,包括:
存储器501,用于保存计算机程序;
处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:获取日志集合,并将日志集合中的每条日志数据分别作为处理对象;将处理对象中的系统生成字符替换为目标字符,得到日志模板;若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;K为前缀树的深度;若日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:按照前K个词汇的先后顺序在前缀树中查询;若在前缀树中查到前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:以哈希值作为key,以日志模板作为value,构建键值对。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若当前已有前缀树且在前缀树中查到哈希值,则丢弃日志模板,并从日志集合中选择下一条日志数据进行处理。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若当前没有前缀树,则为前缀树创建根节点,并执行将日志模板中的前K个词汇作为K个前缀节点插入前缀树,将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点的步骤。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:对日志模板中的所有词汇的首字母进行编码,得到编码序列;计算编码序列的哈希值,得到哈希值。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;若是,则基于目标键值对中的日志模板提取日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;若否,则输出未匹配到日志模板的通知消息。
进一步的,本申请实施例还提供了一种服务器来作为上述电子设备。该服务器,具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的日志处理方法中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的日志处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括虚拟机等数据外,还可以包括虚拟机的开发商信息等数据。
进一步的,本申请实施例还提供了一种终端来作为上述电子设备。该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的日志处理方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种日志处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的日志处理方法。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:获取日志集合,并将日志集合中的每条日志数据分别作为处理对象;将处理对象中的系统生成字符替换为目标字符,得到日志模板;若当前已有前缀树且在前缀树中未查到日志模板的哈希值,则将日志模板中的前K个词汇作为K个前缀节点插入前缀树,并将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点;K为前缀树的深度;若日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:按照前K个词汇的先后顺序在前缀树中查询;若在前缀树中查到前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:以哈希值作为key,以日志模板作为value,构建键值对。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若当前已有前缀树且在前缀树中查到哈希值,则丢弃日志模板,并从日志集合中选择下一条日志数据进行处理。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若当前没有前缀树,则为前缀树创建根节点,并执行将日志模板中的前K个词汇作为K个前缀节点插入前缀树,将哈希值和日志模板构建的键值对创建为K个前缀节点的尾节点的叶子节点的步骤。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:对日志模板中的所有词汇的首字母进行编码,得到编码序列;计算编码序列的哈希值,得到哈希值。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;若是,则基于目标键值对中的日志模板提取日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;若否,则输出未匹配到日志模板的通知消息。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种日志处理方法,其特征在于,包括:
获取日志集合,并将所述日志集合中的每条日志数据分别作为处理对象;
将所述处理对象中的系统生成字符替换为目标字符,得到日志模板;
若当前已有前缀树且在所述前缀树中未查到所述日志模板的哈希值,则将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,并将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点;K为所述前缀树的深度;
若所述日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
2.根据权利要求1所述的方法,其特征在于,所述将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,包括:
按照所述前K个词汇的先后顺序在所述前缀树中查询;
若在所述前缀树中查到所述前K个词汇中的任一词汇,则在该词汇所在节点的各子节点位置查询该词汇的下一词汇,若在所述各子节点位置未查到该词汇的下一词汇,则将该词汇的下一词汇创建为该词汇所在节点的子节点。
3.根据权利要求1所述的方法,其特征在于,以所述哈希值作为key,以所述日志模板作为value,构建所述键值对。
4.根据权利要求1所述的方法,其特征在于,得到日志模板之后,还包括:
若当前已有前缀树且在所述前缀树中查到所述哈希值,则丢弃所述日志模板,并从所述日志集合中选择下一条日志数据进行处理。
5.根据权利要求1所述的方法,其特征在于,得到日志模板之后,还包括:
若当前没有前缀树,则为所述前缀树创建根节点,并执行所述将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点的步骤。
6.根据权利要求1所述的方法,其特征在于,所述哈希值的生成过程包括:
对所述日志模板中的所有词汇的首字母进行编码,得到编码序列;
计算所述编码序列的哈希值,得到所述哈希值。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述利用最后得到的前缀树检测任意系统产生的日志,包括:
判断任意系统产生的日志在最后得到的前缀树中是否有匹配的目标键值对;
若是,则基于所述目标键值对中的日志模板提取所述日志中的系统生成字符,对匹配所述目标键值对的多条日志的系统生成字符进行分析;
若否,则输出未匹配到日志模板的通知消息。
8.一种日志处理装置,其特征在于,包括:
获取模块,用于获取日志集合,并将所述日志集合中的每条日志数据分别作为处理对象;
替换模块,用于将所述处理对象中的系统生成字符替换为目标字符,得到日志模板;
生成模块,用于若当前已有前缀树且在所述前缀树中未查到所述日志模板的哈希值,则将所述日志模板中的前K个词汇作为K个前缀节点插入所述前缀树,并将所述哈希值和所述日志模板构建的键值对创建为所述K个前缀节点的尾节点的叶子节点;K为所述前缀树的深度;
检测模块,用于若所述日志集合中的所有日志数据处理完成,则利用最后得到的前缀树检测任意系统产生的日志。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211025800.XA CN115344538A (zh) | 2022-08-25 | 2022-08-25 | 一种日志处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211025800.XA CN115344538A (zh) | 2022-08-25 | 2022-08-25 | 一种日志处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344538A true CN115344538A (zh) | 2022-11-15 |
Family
ID=83953835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211025800.XA Pending CN115344538A (zh) | 2022-08-25 | 2022-08-25 | 一种日志处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115344538A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115630626A (zh) * | 2022-11-17 | 2023-01-20 | 国网湖北省电力有限公司信息通信公司 | 一种数据中心设备日志模板在线提取方法 |
-
2022
- 2022-08-25 CN CN202211025800.XA patent/CN115344538A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115630626A (zh) * | 2022-11-17 | 2023-01-20 | 国网湖北省电力有限公司信息通信公司 | 一种数据中心设备日志模板在线提取方法 |
CN115630626B (zh) * | 2022-11-17 | 2023-02-28 | 国网湖北省电力有限公司信息通信公司 | 一种数据中心设备日志模板在线提取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI729472B (zh) | 特徵詞的確定方法、裝置和伺服器 | |
CN104778158A (zh) | 一种文本表示方法及装置 | |
CN111831785A (zh) | 敏感词检测方法、装置、计算机设备及存储介质 | |
CN111581057B (zh) | 一种通用日志解析方法、终端设备及存储介质 | |
CN112395425A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN115828180A (zh) | 一种基于解析优化和时序卷积网络的日志异常检测方法 | |
CN115344538A (zh) | 一种日志处理方法、装置、设备及可读存储介质 | |
CN109144633A (zh) | 活动窗口的数据共享方法、装置、设备及存储介质 | |
CN116841779A (zh) | 异常日志检测方法、装置、电子设备和可读存储介质 | |
CN112559112B (zh) | 界面节点定位方法及装置 | |
WO2016093839A1 (en) | Structuring of semi-structured log messages | |
CN112765963B (zh) | 语句分词方法、装置、计算机设备及存储介质 | |
CN114124918A (zh) | 报文解析方法及装置 | |
CN111209158B (zh) | 服务器集群的挖矿监控方法及集群监控系统 | |
CN111512304A (zh) | 在二维方面立方体上对文本挖掘进行方面聚类 | |
CN113468866B (zh) | 非标准json串的解析方法及装置 | |
CN115016782A (zh) | vue组件生成方法及装置 | |
CN115017161A (zh) | 一种结合虚拟dom更新树形数据结构方法、装置及应用 | |
CN115328736A (zh) | 一种探针部署方法、装置、设备和存储介质 | |
CN114861003A (zh) | 一种指定目录下的对象列举方法、装置及其介质 | |
CN114296726A (zh) | 一种代码生成方法、装置、计算机设备和存储介质 | |
CN113569974B (zh) | 编程语句纠错方法、装置、电子设备及存储介质 | |
CN115718696B (zh) | 源码密码学误用检测方法、装置、电子设备和存储介质 | |
CN116737520B (zh) | 一种日志数据的数据编织方法、装置、设备及存储介质 | |
CN117171029B (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 |