CN118093325B - 一种日志模板获取方法、电子设备和存储介质 - Google Patents
一种日志模板获取方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN118093325B CN118093325B CN202410518808.2A CN202410518808A CN118093325B CN 118093325 B CN118093325 B CN 118093325B CN 202410518808 A CN202410518808 A CN 202410518808A CN 118093325 B CN118093325 B CN 118093325B
- Authority
- CN
- China
- Prior art keywords
- log
- current
- regular expression
- logs
- max
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000014509 gene expression Effects 0.000 claims abstract description 122
- 230000011218 segmentation Effects 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
Landscapes
- Machine Translation (AREA)
Abstract
本发明涉及计算机技术应用领域,特别是涉及一种日志模板获取方法、电子设备和存储介质,包括:从原始日志数据集中获取多个初始关键日志,接着,对数据集中的词类型进行初步标识,并基于初始关键日志生成表征非数字变量的第一正则表达式和含数字常量的第二正则表达式,以及利用生成的表达式对初步标识的词类型进行修正,并基于修改后的词类型得到对应的日志模板,接着,判断当前的日志模板是否满足预设条件,如果满足,则将当前的日志模板作为目标日志模板,否则,对当前的表达式进行调整,并利用新表达式对当前数据集中的词类型进行调整,得到新的日志模板,并重复之前的判断步骤,直到满足预设条件。本发明能够提高日志模板的生成效率和准确性。
Description
技术领域
本发明涉及计算机技术应用领域,特别是涉及一种日志模板获取方法、电子设备和存储介质。
背景技术
在现代软件的开发和维护中,日志提供有关***和网络活动的关键信息,帮助开发者和运维工程师理解***行为并追溯***问题根源,检测和响应安全事件,进行故障排除和漏洞分析。在实践中,运维工程师通常采用基于规则的日志解析方法,通过人工编写并使用正则表达式匹配整个日志模板的方式进行日志解析,例如Logstash采用的Grok过滤器技术。Grok 是一种将日志行与正则表达式匹配、将日志行的特定部分映射到专用字段并基于此映射执行操作的方法。这类方法的问题是,每项Grok过滤器规则对应一类日志事件,这意味着对于包含大量异构日志事件类型、并且在持续更新的现代软件***中,Grok规则库难以维护和扩展。其次,每项新增的Grok规则都会导致额外一次对整个日志行的正则匹配。现代软件***的日志可能包含数以百千计的日志模板,人工给出匹配所有日志模板的正则表达式的代价难以接受,并且完全无法适应新日志模板的出现。另一类日志解析方法基于预定义的启发式规则,由研究者发现日志数据中固有的某类特征,算法利用这些特征进行模板获取。例如,基于频繁词统计的SLCT(Simple Log Cluster Tool)认为在日志文件中出现次数较多的词是常量。这种方法在初步解析中可能有效,但很难识别出现频率低、罕见的日志模板。在此基础上,LFA(Log File Analyzer)考虑词的位置进行统计,Logram则采用n-gram类方法作为统计指标,从而将词的上下文信息纳入考虑。IPLoM(Iterative PartitionLog Mining)提出了迭代划分的思路,通过基于日志长度和词的位置特征不断将日志划分为小的聚类。Drain是近年来广泛使用的日志解析算法,它基于日志的前缀解析树,实质上是迭代划分算法的树形表达。这类策略存在两个问题:
a)相似度阈值这一超参数对算法性能有巨大影响且难以调节得到最优值;
b)当日志集合的相似度高时可以执行合并操作,这一策略来源于算法设计者对大多数日志性质的观察,并不对全部日志都合适。
再一类的日志解析方法为利用深度学习技术从大量标注好的日志数据集中学习日志的常/变量特征。其中,UniParser采用了基于对比学习策略的LSTM网络进行日志的上下文编码,而LogPPT则直接利用RoBERTa网络进行日志序列的特征获取。然而神经网络方法对***提出了额外的GPU硬件要求,并且其运行效率难以与庞大的日志产生速率相匹配。
综上,现有的日志模板获取方法或者依赖于大量规则,或者需要采用复杂的深度学习算法,导致获取成本过大,难以适应大规模日志数据集实时处理需求。
发明内容
针对上述技术问题,本发明采用的技术方案为:
根据本发明第一方面,提供了一种日志模板获取方法,所述方法包括如下步骤:
S100,获取需要处理的原始日志数据集D={D1,D2,……,Di,……,Dn},Di为D中的第i条日志,i的取值为1到n,n为D中的日志数量。
S200,对D进行抽样处理,得到k个初始关键日志。
S300,基于所述k个初始关键日志,获取分词符号集、初始的第一正则表达式和初始的第二正则表达式;其中,第一正则表达式为非数字变量对应的正则表达式,第二正则表达式为含数字常量对应的正则表达式。
S400,利用所述分词符号集对D进行分词处理,得到对应的分词结果集W={W1,W2,……,Wi,……,Wn};Wi为Di对应的分词结果,Wi={Wi1,Wi2,……,Wij,……,Wif(i)},Wij为Wi中的第j个词,j的取值为1到f(i),f(i)为Wi中的词数量。
S500,对于Wi中的Wij,如果Wij包含数字,将Wij对应的类型标识标记为变量标识,如果Wij不包含数字,将Wij对应的类型标识标记为常量标识。
S600,基于当前的第一正则表达式和当前的第二正则表达式,对Wi中的Wij对应的类型标识进行调整,得到调整了类型标识的D,作为当前日志数据集。
S700,基于当前日志数据集获取对应的当前日志模板集,如果当前日志模板集与上一次日志模板集相同,则将当前日志模板集作为D对应的目标日志模板,并退出当前控制程序,否则,执行S800。
S800,对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式,以及对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式,执行S600。
根据本发明第二方面,提供一种电子设备,包括处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行本发明第一方面所述方法的步骤。
根据本发明第三方面,提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行本发明第一方面所述方法的步骤。
本发明至少具有以下有益效果:
本发明实施例提供的技术方案,首先从原始日志数据集中获取k个初始关键日志,接着,对数据集中的词类型进行初步标识,并基于这k个初始关键日志生成表征非数字变量的第一正则表达式和含数字常量的第二正则表达式,以及利用生成的表达式对初步标识的词类型进行修正,得到修正后的词类型,并基于修改后的词类型得到对应的日志模板,接着,判断当前的日志模板是否满足预设条件,如果满足,则将当前的日志模板作为目标日志模板,否则,对当前的第一正则表达式和第二正则表达式进行调整,并利用新的正则表达式对当前数据集中的词类型进行调整,得到新的日志模板,并重复之前的判断步骤,直到满足预设条件。本发明能够提高日志模板的生成效率和准确性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的日志模板获取方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例提供一种日志模板获取方法,如图1所示,所述方法可包括如下步骤:
S100,获取需要处理的原始日志数据集D={D1,D2,……,Di,……,Dn},Di为D中的第i条日志,i的取值为1到n,n为D中的日志数量。
在本发明实施例中,原始日志数据集可为用户输入的日志数据集。在本发明实施例中,日志数据集可包括分布式***(HDFS、Hadoop、Zookeeper、OpenStack、Spark)、超级计算机(BGL、HPC)、客户端应用(Proxifier、Thunderbird)、服务器应用(Apache、OpenSSH)、移动应用(HealthApp)、操作***(Windows、Linux、Mac、Andriod)等产生的日志数据集。
S200,对D进行抽样处理,得到k个初始关键日志。
在本发明实施例中,k可基于实际需要进行设置,例如可为32、64或者128等。
进一步地,在本发明实施例中,S200可具体包括:
S201,对于Di,利用通用分割符对Di进行分词,得到对应的分词结果W0i,以及获取Di对应的特殊符号集合Mi;其中,W0i={W0i1,W0i2,……,W0ir,……,W0ig(i)};W0ir为W0i中的第r个分词,r的取值为1到g(i),g(i)为W0i中的分词数量;Mi={Mi1,Mi2,……,Mis,……,Mih(i)},Mis为Mi中的第s个特殊符号,s的取值为1到h(i),h(i)为Mi中的特殊符号的数量。
在本发明实施例中,通用分隔符可为现有的通用分隔符,例如空格等。特殊符号可为现有定义,例如处数字和字母之外的符号。
S202,基于日志长度和特殊符号集合,将D中的所有日志进行初步分类,得到m个初始日志簇。
在本发明实施例中,日志长度为日志对应的分词数量。每一个日志簇中的所有日志具有相同的日志长度和相同的特殊符号。
S203,设置计数器t=1。
S204,如果t≤k,执行S205,否则,执行S208。
S205,从当前未被抽取过的初始日志簇中随机抽取一个日志簇,作为第t个样本日志簇Ct,并从Ct中随机抽取d个日志作为第t个日志样本候选集PCt={PCt1,PCt2,……,PCta,……,PCtd};PCta为PCt中的第a个日志样本,a的取值为1到d。
在本发明实施例中,d可基于实际需要进行设置,例如可为32、64或者128等。本领域技术人员知晓的是,如果Ct中日志数量小于d,则将Ct中所有日志作为日志样本。
S206,获取min(St1,St2,……,Sta,……,Std)对应的日志样本作为第t个关键日志并加入当前的关键日志集中;其中,Sta为PCta与当前的关键日志集中的日志之间的最大相似度,Sta=max(S1 ta,S2 ta,……,Su ta,……,Sp ta),Su ta为PCta与当前的关键日志集中的第u个日志之间的相似度,u的取值为1到p,p为当前的关键日志集中的日志数量;关键日志集的初始值为空集;min()表示取最小值,max()表示取最大值。
在本发明实施例中,Su ta基于PCta与当前的关键日志集中的第u个日志之间的最长公共子序列确定。具体地,Su ta满足如下条件:Su ta=LPta-u max/Lta-u max,其中,LPta-u max为PCta与当前的关键日志集中的第u个日志之间的最长公共子序列的长度, Lta-u max=max(Lta,Lu),Lta为PCta的长度,Lu为当前的关键日志集中的第u个日志的长度,max()表示取最大值,即Lta-u max为PCta的长度和当前的关键日志集中的第u个日志的长度中的最大者。
S207,设置t=t+1,执行S204。
S208,将当前的关键日志集中的k个日志作为所述k个初始关键日志。
S300,基于所述k个初始关键日志,获取分词符号集、初始的第一正则表达式和初始的第二正则表达式;其中,第一正则表达式为非数字变量对应的正则表达式,第二正则表达式为含数字常量对应的正则表达式。
在本发明实施例中,分词符号集可为k个初始关键日志对应的分词符号的并集。
在本发明实施例中,第一正则表达式和第二正则表达式可基于人工或者经训练的神经网络模型获取得到。具体地,可基于人工或者经训练的神经网络模型获取每条关键日志中属于非数字变量和含数字常量的词,例如,日志“Invalid user test from52.80.34.196”中的“test”为非数字变量的词,日志“…… available networkconnection on network<>via interface alt0”中的“alt0”为含数字常量的词。本领域技术人员知晓的是,任何基于人工或者经训练的神经网络模型获取每条关键日志中属于非数字变量和含数字常量的词的方法均属于本发明的保护范围。
在获取到关键日志中的所有属于非数字变量和含数字常量的词之后,将上下文类似的词使用同一个正则表达式进行表示,例如,日志“Invalid user test from52.80.34.196”对应的正则表达式为“(?<=user )\b\w+\b”,日志“…… availablenetwork connection on network<>via interface alt0”对应的正则表达式为“(?<=interface )[^\s]+”。最后,基于实际需求,获取预设数量的正则表达式。本领域技术人员知晓的是,任何获取词对应的正则表达式的方法均属于本发明的保护范围。
S400,利用所述分词符号集对D进行分词处理,得到对应的分词结果集W={W1,W2,……,Wi,……,Wn};Wi为Di对应的分词结果,Wi={Wi1,Wi2,……,Wij,……,Wif(i)},Wij为Wi中的第j个词,j的取值为1到f(i),f(i)为Wi中的词数量。
尽管分词是日志解析的一个关键环节,但却很少受到重视。本发明的发明人通过研究发现,分词对日志解析结果有着重要影响。在某些情况下,一些无法被正确识别的日志模板,可能在另一种特定的分词方式下被准确地识别。因此,需要更加深入地探究分词技术的优化,以提高日志解析的准确性和效率。以日志“StackScrollAlgorithm:overlapAmount:220.0”和“StackScrollAlgorithm: state.clipTopAmount:204”为例,如果不使用冒号作为分词符号,则每条日志将会被分隔成三个词。然而,由于后两个词中都包含数字,算法在分类时无法考虑这些词,两类日志将被映射到同一组("StackScrollAlgorithm"),无法被区分。相反,如果使用冒号作为分词符号,两类日志将分别映射到("StackScrollAlgorithm", "overlapAmount")和("StackScrollAlgorithm", "state.clipTopAmount")。即使是基于大量多种日志数据集训练的神经网络模型,也难以保证在新的数据集上不进行微调即可适用。因此,本发明中,将k个初始关键日志对应的分词符号的并集作为分词符号集,能够将原始日志尽可能地转化为更具格式化的形式,能够提高分词准确性。
S500,对于Wi中的Wij,如果Wij包含数字,将Wij对应的类型标识标记为变量标识即将Wij标记为变量,如果Wij不包含数字,将Wij对应的类型标识标记为常量标识即将Wij标记为常量。
在本发明实施例中,可使用现有的常量/变量判别器来获取每个词的类型标识。
S600,基于当前的第一正则表达式和当前的第二正则表达式,对Wi中的Wij对应的类型标识进行调整,得到调整了类型标识的D,作为当前日志数据集。
在本发明实施例中,当前的第一正则表达式的初始值为初始的第一正则表达式,当前的第二正则表达式的初始值为初始的第二正则表达式。
进一步地,在S600中,可使用得到的第一正则表达式和第二正则表达式分别对原始日志数据集中的每条日志进行匹配,如果匹配到对应的词,则将该词对应的类型标识调整为对应正则表达式所对应的类型标识,例如,以正则表达式为“(?<=user )\b\w+\b”进行匹配,如果匹配到了对应的词,则将匹配的词的类型标识调整为变量标识。
本领域技术人员知晓的是,使用正则表达式做匹配的过程可基于现有的正则匹配算法实现。
日志模板提取的理想目标是全面而正确地提取日志中的常量。在实际应用中,仅常量/变量判别器来实现高准确率的日志解析是一项非常困难的工作。考虑以下情况:假设某一常/变量分类器准确率为99%,而每条日志平均包含10个词,那么该分类器正确提取一条日志中全部常量的概率下降到0.99的10次方,即0.904;若常/变量分类器的准确率略低至95%,则该分类器在长度为10的整条日志上的准确率迅速下降至0.599。分类器上的微小偏差在日志模板判别中就会被放大。此外,实际应用中,日志的形式十分复杂多变,而大型***中日志规模的不断膨胀又限制了深度学习方法的应用。这些因素共同导致常量/变量判别器难以同时获得高准确率和高效率。鉴于此,本发明实施例中,基于关键日志,获取对应的第一正则表达式和第二正则表达式,用于对常/变量判别器的判别结果进行修正,从而能够使得生成的日志模板尽可能地准确。
S700,基于当前日志数据集获取对应的当前日志模板集,如果当前日志模板集与上一次日志模板集相同即日志模板没有发生变化,则将当前日志模板集作为D对应的目标日志模板,并退出当前控制程序,否则,执行S800。
在本发明实施例中,日志模板的生成可采用现有技术。例如,对于当前日志数据集中的每条日志,可将该日志的常量作为日志模板的静态部分,将日志中的变量作为日志模板的变量部分,然后将变量部分替换为通配符,得到对应的日志模板。最后,将对应日志模板相同的日志进行合并,得到当前日志模板集。
S800,对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式,以及对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式,执行S600。
S800的技术效果在于通过发现潜在的错误分类样本来弥补日志抽样模块在降低人力消耗方面可能带来的牺牲。这种循环迭代的方法不断优化规则集,使其能够更好地适应***的变化和日志数据的演化,从而提升运维人员在日志分析和故障排查方面的效率和准确性。
进一步地,在本发明实施例中,可基于最长公共子序列对过分类样本中的潜在变量进行识别,以及可基于词频统计的方式对过分类样本中的潜在常量进行识别。
进一步地,在本发明一示意性实施例中,在S800中,对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式可具体包括:
S810,获取当前日志模板集中任意两个日志模板LTb和LTv之间的相似度SLbv;b和v的取值为1到Q,Q为当前日志模板集中的日志模板的数量,b≠v。
在本发明实施例中,SLbv基于LTb和LTv之间的最长公共子序列的长度与两者间最短项长度的比值确定。具体地,SLbv满足如下条件:SLbv=LPbv max/Lbv max,其中,LPbv max为LTb和LTv之间的最长公共子序列的长度,LPbv max=max(Lb,Lv),Lb为LTb的长度,Lv为LTv的长度,max()表示取最大值,即LPbv max为LTb的长度和LTv的长度中的最大者。
S811,如果SLbv>ST0,执行S812;ST0为预设相似度阈值。
若归属于某一日志模板的变量被错误的划分为常量,则可能产生数个高度相似的日志模板,因此,如果SLbv>ST0,可能存在过分类样本。
在本发明实施例中,ST0可为经验值,可基于对应的日志种类确定。在一个示意性实施例中,0.5≤ST0≤0.7。本发明的发明人经过研究发现,如果ST0<0.5或者0.7<ST0,都不能有效的识别潜在的过分类样本。
S812,如果LTb不属于LTC,将LTb加入LTC中,否则,不将LTb加入LTC中;如果LTv不属于LTC,将LTv加入LTC中,否则,不将LTv加入LTC中;其中,LTC为当前的候选日志模板集,当前的候选日志模板集的初始值为空值。
S813,对于当前的候选日志模板集对应的每个日志簇,从该日志簇中抽取q个日志,作为新关键日志。
在本发明实施例中,q可基于实际需要进行设置,在一个非限制示意性实施例中,q可等于2或者3。S814,基于所述新关键日志,生成新的第一正则表达式。
在本发明实施例中,基于所述新关键日志,生成新的第一正则表达式可与前述的基于k个关键日志生成的第一正则表达式的方法相同。
S815,基于当前的第一正则表达式和所述新的第一正则表达式,生成修正的第一正则表达式。
具体地,将当前的第一正则表达式和所述新的第一正则表达式进行合并得到修正的第一正则表达式。如此,使得正则表达式更加丰富,即能够产生新的数字常量识别规则,在新一轮的迭代中发现潜在的过分类样本。
S816,分别将修正的第一正则表达式作为当前的第一正则表达式,执行S600。
进一步地,在S800中,对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式可具体包括:
S801,获取当前日志数据集对应的词频集WF和常量集CV;其中WF={WF1,WF2,……,WFe,……,WFx};WFe为当前日志数据集对应的词集WP中的第e个词We的词频,e的取值为1到x,x为WP中的词数量;WF=Wc 1∪Wc 2∪……∪Wc i∪……∪Wc n,Wc i为当前日志数据集中的第i条日志数据对应的分词结果;CV=CV1∪CV2∪……∪CVi∪……∪CVn,CVi为当前日志数据集对应的第i条日志数据对应的常量集。
S802,如果WFe>WF0,并且We不属于CV,从We对应的日志模板对应的日志中抽取q个日志,作为新关键日志; WF0为预设词频阈值。
如果WFe>WF0,并且We不属于CV,即该词出现的频率过高,但又不在常量集中,说明该词很可能是潜在的常量,可能为错误分类样本。
在本发明实施例中,q可基于实际需要进行设置,在一个非限制示意性实施例中,q可等于2或者3。
在本发明实施例中,WF0可为经验值,在一个示意性实施例中,WF0满足如下条件:WF0=f×WFmax,f为预设系数,0<f<1,WFmax为WF中的最大者。优选,f=0.2或者0.3。
本领域技术人员知晓的是,如果We对应的日志模板为多个,则从对应的日志模板中的每个模板对应的日志中抽取q个日志。
S803,基于所述新关键日志,生成新的第二正则表达式。
在本发明实施例中,基于所述新关键日志,生成新的第二正则表达式的方式可与前述的基于k个关键日志生成的第二正则表达式的方法相同。
S804,基于当前的第二正则表达式和所述新的第二正则表达式,生成修正的第二正则表达式。
具体地,将当前的第二正则表达式和所述新的第二正则表达式进行合并得到修正的第二正则表达式。如此,使得正则表达式更加丰富,即能够产生新的数字常量识别规则,在新一轮的迭代中发现潜在的欠分类样本。
S805,将修正的第二正则表达式作为当前的第二正则表达式,执行S600。
本发明实施例中,使用LogPai团队提供的16个日志数据集对本发明实施例提供的日志模板获取方法进行实验。这16个数据集涵盖分布式***(HDFS、Hadoop、Zookeeper、OpenStack、Spark)、超级计算机(BGL、HPC)、客户端应用(Proxifier、Thunderbird)、服务器应用(Apache、OpenSSH)、移动应用(HealthApp)、操作***(Windows、Linux、Mac、Andriod)。对于每类数据,LogPai团队采样了2000条具有代表性的日志并进行了人工标注。
通过实验发现,本发明实施例提供的日志模板获取方法能够达到与基于现代神经网络的日志解析方法相近的解析精度,这一结果有力地证明了通过人工给出少量词模式规则来提高日志解析性能这一策略的有效性。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
本发明实施例还提供一种非瞬时性计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明实施例所述的方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (9)
1.一种日志模板获取方法,其特征在于,所述方法包括如下步骤:
S100,获取需要处理的原始日志数据集D={D1,D2,……,Di,……,Dn},Di为D中的第i条日志,i的取值为1到n,n为D中的日志数量;
S200,对D进行抽样处理,得到k个初始关键日志;
S300,基于所述k个初始关键日志,获取分词符号集、初始的第一正则表达式和初始的第二正则表达式;其中,第一正则表达式为非数字变量对应的正则表达式,第二正则表达式为含数字常量对应的正则表达式;
S400,利用所述分词符号集对D进行分词处理,得到对应的分词结果集W={W1,W2,……,Wi,……,Wn};Wi为Di对应的分词结果,Wi={Wi1,Wi2,……,Wij,……,Wif(i)},Wij为Wi中的第j个词,j的取值为1到f(i),f(i)为Wi中的词数量;
S500,对于Wi中的Wij,如果Wij包含数字,将Wij对应的类型标识标记为变量标识,如果Wij不包含数字,将Wij对应的类型标识标记为常量标识;
S600,基于当前的第一正则表达式和当前的第二正则表达式,对Wi中的Wij对应的类型标识进行调整,得到调整了类型标识的D,作为当前日志数据集;
S700,基于当前日志数据集获取对应的当前日志模板集,如果当前日志模板集与上一次日志模板集相同,则将当前日志模板集作为D对应的目标日志模板,并退出当前控制程序,否则,执行S800;
S800,对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式,以及对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式,执行S600。
2.根据权利要求1所述的方法,其特征在于,S200具体包括:
S201,对于Di,利用通用分割符对Di进行分词,得到对应的分词结果W0i,以及获取Di对应的特殊符号集合Mi;其中,W0i={W0i1,W0i2,……,W0ir,……,W0ig(i)};W0ir为W0i中的第r个分词,r的取值为1到g(i),g(i)为W0i中的分词数量;Mi={Mi1,Mi2,……,Mis,……,Mih(i)},Mis为Mi中的第s个特殊符号,s的取值为1到h(i),h(i)为Mi中的特殊符号的数量;
S202,基于日志长度和特殊符号集合,将D中的所有日志进行初步分类,得到m个初始日志簇;
S203,设置计数器t=1;
S204,如果t≤k,执行S205,否则,执行S208;
S205,从当前未被抽取过的初始日志簇中随机抽取一个日志簇,作为第t个样本日志簇Ct,并从Ct中随机抽取d个日志作为第t个日志样本候选集PCt={PCt1,PCt2,……,PCta,……,PCtd};PCta为PCt中的第a个日志样本,a的取值为1到d;
S206,获取min(St1,St2,……,Sta,……,Std)对应的日志样本作为第t个关键日志并加入当前的关键日志集中;其中,Sta为PCta与当前的关键日志集中的日志之间的最大相似度,Sta=max(S1 ta,S2 ta,……,Su ta,……,Sp ta),Su ta为PCta与当前的关键日志集中的第u个日志之间的相似度,u的取值为1到p,p为当前的关键日志集中的日志数量;关键日志集的初始值为空集;min()表示取最小值,max()表示取最大值;
S207,设置t=t+1,执行S204;
S208,将当前的关键日志集中的k个日志作为所述k个初始关键日志。
3.根据权利要求2所述的方法,其特征在于,Su ta满足如下条件:Su ta=LPta-u max/Lta-u max,其中,LPta-u max为PCta与当前的关键日志集中的第u个日志之间的最长公共子序列的长度,Lta-u max=max(Lta,Lu),Lta为PCta的长度,Lu为当前的关键日志集中的第u个日志的长度,max()表示取最大值。
4.根据权利要求1所述的方法,其特征在于,在S800中,所述对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式,具体包括:
S810,获取当前日志模板集中任意两个日志模板LTb和LTv之间的相似度SLbv;b和v的取值为1到Q,Q为当前日志模板集中的日志模板的数量,b≠v;
S811,如果SLbv>ST0,执行S812;ST0为预设相似度阈值;
S812,如果LTb不属于LTC,将LTb加入LTC中,否则,不将LTb加入LTC中;如果LTv不属于LTC,将LTv加入LTC中,否则,不将LTv加入LTC中;其中,LTC为当前的候选日志模板集,当前的候选日志模板集的初始值为空值;
S813,对于当前的候选日志模板集中对应的每个日志簇,从该日志簇中抽取q个日志,作为新关键日志;
S814,基于所述新关键日志,生成新的第一正则表达式;
S815,基于当前的第一正则表达式和所述新的第一正则表达式,生成修正的第一正则表达式;
S816,将修正的第一正则表达式作为当前的第一正则表达式,执行S600。
5.根据权利要求4所述的方法,其特征在于,SLbv满足如下条件:SLbv=LPbv max/Lbv max,其中,LPbv max为LTb和LTv之间的最长公共子序列的长度,LPbv max=max(Lb,Lv),Lb为LTb的长度,Lv为LTv的长度,max()表示取最大值。
6.根据权利要求1所述的方法,其特征在于,在S800中,所述对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式,具体包括:
S801,获取当前日志数据集对应的词频集WF和常量集CV;其中WF={WF1,WF2,……,WFe,……,WFx};WFe为当前日志数据集对应的词集WP中的第e个词We的词频,e的取值为1到x,x为WP中词的数量;WF=Wc 1∪W c 2∪……∪W c i∪……∪W c n,W c i为当前日志数据集中的第i条日志数据对应的分词结果;CV=CV1∪CV2∪……∪CVi∪……∪CVn,CVi为当前日志数据集对应的第i条日志数据对应的常量集;
S802,如果WFe>WF0,并且We不属于CV,从We对应的日志模板对应的日志中抽取q个日志,作为新关键日志;WF0为预设词频阈值;
S803,基于所述新关键日志,生成新的第二正则表达式;
S804,基于当前的第二正则表达式和所述新的第二正则表达式,生成修正的第二正则表达式;
S805,将修正的第二正则表达式作为当前的第二正则表达式,执行S600。
7.根据权利要求6所述的方法,其特征在于,WF0满足如下条件:WF0=f×WFmax,f为预设系数,0<f<1,WFmax为WF中的最大者。
8.一种电子设备,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至7任一项所述方法的步骤。
9.一种非瞬时性计算机可读存储介质,其特征在于,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410518808.2A CN118093325B (zh) | 2024-04-28 | 2024-04-28 | 一种日志模板获取方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410518808.2A CN118093325B (zh) | 2024-04-28 | 2024-04-28 | 一种日志模板获取方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118093325A CN118093325A (zh) | 2024-05-28 |
CN118093325B true CN118093325B (zh) | 2024-06-21 |
Family
ID=91157854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410518808.2A Active CN118093325B (zh) | 2024-04-28 | 2024-04-28 | 一种日志模板获取方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093325B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579707A (zh) * | 2020-12-08 | 2021-03-30 | 西安邮电大学 | 一种日志数据的知识图谱构建方法 |
CN114201328A (zh) * | 2021-12-17 | 2022-03-18 | 中国平安财产保险股份有限公司 | 基于人工智能的故障处理方法、装置、电子设备及介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11003697B2 (en) * | 2018-11-08 | 2021-05-11 | Ho Chi Minh City University Of Technology (Hutech) | Cluster computing system and method for automatically generating extraction patterns from operational logs |
CN110569214B (zh) * | 2019-08-02 | 2023-07-28 | 杭州云纪网络科技有限公司 | 用于日志文件的索引构建方法、装置及电子设备 |
CN114610515B (zh) * | 2022-03-10 | 2022-09-13 | 电子科技大学 | 基于日志全语义的多特征日志异常检测方法及*** |
CN114816962B (zh) * | 2022-06-27 | 2022-11-04 | 南京争锋信息科技有限公司 | 基于attention-lstm的网络故障预测方法 |
CN115437877A (zh) * | 2022-08-18 | 2022-12-06 | 华南理工大学 | 多源日志的在线解析方法、***、电子设备及存储介质 |
CN115221013B (zh) * | 2022-09-21 | 2023-02-03 | 云智慧(北京)科技有限公司 | 一种日志模式的确定方法、装置及设备 |
CN115562645B (zh) * | 2022-09-29 | 2023-06-09 | 中国人民解放军国防科技大学 | 一种基于程序语义的配置故障预测方法 |
CN115545019A (zh) * | 2022-10-31 | 2022-12-30 | 北京火山引擎科技有限公司 | 日志模板提取方法、设备、存储介质及程序产品 |
CN115617953A (zh) * | 2022-11-15 | 2023-01-17 | 成都九洲电子信息***股份有限公司 | 一种网络业务链路故障智能诊断方法及*** |
CN115859932A (zh) * | 2022-11-30 | 2023-03-28 | 北京火山引擎科技有限公司 | 一种日志模板提取方法、装置、电子设备及存储介质 |
CN116841779A (zh) * | 2023-05-09 | 2023-10-03 | 广州亚信技术有限公司 | 异常日志检测方法、装置、电子设备和可读存储介质 |
CN117170724A (zh) * | 2023-08-16 | 2023-12-05 | 绿盟科技集团股份有限公司 | 用于检测业务异常的ai模型自动化更新方法、装置及设备 |
CN117407242B (zh) * | 2023-10-10 | 2024-04-05 | 浙江大学 | 基于大语言模型的低成本、零样本的在线日志解析方法 |
CN117827784A (zh) * | 2024-01-04 | 2024-04-05 | 先进新星技术(新加坡)控股有限公司 | 噪音日志的过滤方法、*** |
-
2024
- 2024-04-28 CN CN202410518808.2A patent/CN118093325B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579707A (zh) * | 2020-12-08 | 2021-03-30 | 西安邮电大学 | 一种日志数据的知识图谱构建方法 |
CN114201328A (zh) * | 2021-12-17 | 2022-03-18 | 中国平安财产保险股份有限公司 | 基于人工智能的故障处理方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118093325A (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544459B2 (en) | Method and apparatus for determining feature words and server | |
CN110569500A (zh) | 文本语义识别方法、装置、计算机设备和存储介质 | |
CN110457405B (zh) | 一种基于血缘关系的数据库审计方法 | |
CN109918498B (zh) | 一种问题入库方法和装置 | |
CN112395385B (zh) | 基于人工智能的文本生成方法、装置、计算机设备及介质 | |
US9606984B2 (en) | Unsupervised clustering of dialogs extracted from released application logs | |
CN111984792A (zh) | 网站分类方法、装置、计算机设备及存储介质 | |
CN112580346B (zh) | 事件抽取方法、装置、计算机设备和存储介质 | |
CN107357895B (zh) | 一种基于词袋模型的文本表示的处理方法 | |
CN112988753B (zh) | 一种数据搜索方法和装置 | |
CN109993216B (zh) | 一种基于k最近邻knn的文本分类方法及其设备 | |
CN111506726B (zh) | 基于词性编码的短文本聚类方法、装置及计算机设备 | |
CN115953123A (zh) | 机器人自动化流程的生成方法、装置、设备及存储介质 | |
CN114254636A (zh) | 文本处理方法、装置、设备及存储介质 | |
CN113869398A (zh) | 一种不平衡文本分类方法、装置、设备及存储介质 | |
CN118093325B (zh) | 一种日志模板获取方法、电子设备和存储介质 | |
CN114842982B (zh) | 一种面向医疗信息***的知识表达方法、装置及*** | |
CN115909376A (zh) | 文本识别方法、文本识别模型训练方法、装置及存储介质 | |
CN112651590B (zh) | 一种指令处理流程推荐的方法 | |
CN113095073B (zh) | 语料标签生成方法、装置、计算机设备和存储介质 | |
CN103744830A (zh) | 基于语义分析的excel文档中身份信息的识别方法 | |
CN112988699B (zh) | 模型训练方法、数据标签的生成方法及装置 | |
CN111199170B (zh) | 配方文件识别方法及装置、电子设备、存储介质 | |
CN114528378A (zh) | 文本分类方法、装置、电子设备及存储介质 | |
CN109947891B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |