一种日志模板获取方法、电子设备和存储介质

专利检索2025-05-26  10


本发明涉及计算机技术应用领域,特别是涉及一种日志模板获取方法、电子设备和存储介质。


背景技术:

1、在现代软件的开发和维护中,日志提供有关系统和网络活动的关键信息,帮助开发者和运维工程师理解系统行为并追溯系统问题根源,检测和响应安全事件,进行故障排除和漏洞分析。在实践中,运维工程师通常采用基于规则的日志解析方法,通过人工编写并使用正则表达式匹配整个日志模板的方式进行日志解析,例如logstash采用的grok过滤器技术。grok 是一种将日志行与正则表达式匹配、将日志行的特定部分映射到专用字段并基于此映射执行操作的方法。这类方法的问题是,每项grok过滤器规则对应一类日志事件,这意味着对于包含大量异构日志事件类型、并且在持续更新的现代软件系统中,grok规则库难以维护和扩展。其次,每项新增的grok规则都会导致额外一次对整个日志行的正则匹配。现代软件系统的日志可能包含数以百千计的日志模板,人工给出匹配所有日志模板的正则表达式的代价难以接受,并且完全无法适应新日志模板的出现。另一类日志解析方法基于预定义的启发式规则,由研究者发现日志数据中固有的某类特征,算法利用这些特征进行模板获取。例如,基于频繁词统计的slct(simple log cluster tool)认为在日志文件中出现次数较多的词是常量。这种方法在初步解析中可能有效,但很难识别出现频率低、罕见的日志模板。在此基础上,lfa(log file analyzer)考虑词的位置进行统计,logram则采用n-gram类方法作为统计指标,从而将词的上下文信息纳入考虑。iplom(iterative partitionlog mining)提出了迭代划分的思路,通过基于日志长度和词的位置特征不断将日志划分为小的聚类。drain是近年来广泛使用的日志解析算法,它基于日志的前缀解析树,实质上是迭代划分算法的树形表达。这类策略存在两个问题:

2、a)相似度阈值这一超参数对算法性能有巨大影响且难以调节得到最优值;

3、b)当日志集合的相似度高时可以执行合并操作,这一策略来源于算法设计者对大多数日志性质的观察,并不对全部日志都合适。

4、再一类的日志解析方法为利用深度学习技术从大量标注好的日志数据集中学习日志的常/变量特征。其中,uniparser采用了基于对比学习策略的lstm网络进行日志的上下文编码,而logppt则直接利用roberta网络进行日志序列的特征获取。然而神经网络方法对系统提出了额外的gpu硬件要求,并且其运行效率难以与庞大的日志产生速率相匹配。

5、综上,现有的日志模板获取方法或者依赖于大量规则,或者需要采用复杂的深度学习算法,导致获取成本过大,难以适应大规模日志数据集实时处理需求。


技术实现思路

1、针对上述技术问题,本发明采用的技术方案为:

2、根据本发明第一方面,提供了一种日志模板获取方法,所述方法包括如下步骤:

3、s100,获取需要处理的原始日志数据集d={d1,d2,……,di,……,dn},di为d中的第i条日志,i的取值为1到n,n为d中的日志数量。

4、s200,对d进行抽样处理,得到k个初始关键日志。

5、s300,基于所述k个初始关键日志,获取分词符号集、初始的第一正则表达式和初始的第二正则表达式;其中,第一正则表达式为非数字变量对应的正则表达式,第二正则表达式为含数字常量对应的正则表达式。

6、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中的词数量。

7、s500,对于wi中的wij,如果wij包含数字,将wij对应的类型标识标记为变量标识,如果wij不包含数字,将wij对应的类型标识标记为常量标识。

8、s600,基于当前的第一正则表达式和当前的第二正则表达式,对wi中的wij对应的类型标识进行调整,得到调整了类型标识的d,作为当前日志数据集。

9、s700,基于当前日志数据集获取对应的当前日志模板集,如果当前日志模板集与上一次日志模板集相同,则将当前日志模板集作为d对应的目标日志模板,并退出当前控制程序,否则,执行s800。

10、s800,对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式,以及对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式,执行s600。

11、根据本发明第二方面,提供一种电子设备,包括处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行本发明第一方面所述方法的步骤。

12、根据本发明第三方面,提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行本发明第一方面所述方法的步骤。

13、本发明至少具有以下有益效果:

14、本发明实施例提供的技术方案,首先从原始日志数据集中获取k个初始关键日志,接着,对数据集中的词类型进行初步标识,并基于这k个初始关键日志生成表征非数字变量的第一正则表达式和含数字常量的第二正则表达式,以及利用生成的表达式对初步标识的词类型进行修正,得到修正后的词类型,并基于修改后的词类型得到对应的日志模板,接着,判断当前的日志模板是否满足预设条件,如果满足,则将当前的日志模板作为目标日志模板,否则,对当前的第一正则表达式和第二正则表达式进行调整,并利用新的正则表达式对当前数据集中的词类型进行调整,得到新的日志模板,并重复之前的判断步骤,直到满足预设条件。本发明能够提高日志模板的生成效率和准确性。

15、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。



技术特征:

1.一种日志模板获取方法,其特征在于,所述方法包括如下步骤:

2.根据权利要求1所述的方法,其特征在于,s200具体包括:

3.根据权利要求2所述的方法,其特征在于,suta满足如下条件:suta=lpta-umax/lta-umax,其中,lpta-umax为pcta与当前的关键日志集中的第u个日志之间的最长公共子序列的长度,lta-umax=max(lta,lu),lta为pcta的长度,lu为当前的关键日志集中的第u个日志的长度,max()表示取最大值。

4.根据权利要求1所述的方法,其特征在于,在s800中,所述对当前的第一正则表达式进行调整,并将调整后的第一正则表达式作为当前的第一正则表达式,具体包括:

5.根据权利要求4所述的方法,其特征在于,slbv满足如下条件:slbv=lpbvmax/lbvmax,其中,lpbvmax为ltb和ltv之间的最长公共子序列的长度,lpbvmax=max(lb,lv),lb为ltb的长度,lv为ltv的长度,max()表示取最大值。

6.根据权利要求1所述的方法,其特征在于,在s800中,所述对当前的第二正则表达式进行调整,并将调整后的第二正则表达式作为当前的第二正则表达式,具体包括:

7.根据权利要求6所述的方法,其特征在于,wf0满足如下条件:wf0=f×wfmax,f为预设系数,0<f<1,wfmax为wf中的最大者。

8.一种电子设备,其特征在于,包括处理器和存储器;

9.一种非瞬时性计算机可读存储介质,其特征在于,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至7任一项所述方法的步骤。


技术总结
本发明涉及计算机技术应用领域,特别是涉及一种日志模板获取方法、电子设备和存储介质,包括:从原始日志数据集中获取多个初始关键日志,接着,对数据集中的词类型进行初步标识,并基于初始关键日志生成表征非数字变量的第一正则表达式和含数字常量的第二正则表达式,以及利用生成的表达式对初步标识的词类型进行修正,并基于修改后的词类型得到对应的日志模板,接着,判断当前的日志模板是否满足预设条件,如果满足,则将当前的日志模板作为目标日志模板,否则,对当前的表达式进行调整,并利用新表达式对当前数据集中的词类型进行调整,得到新的日志模板,并重复之前的判断步骤,直到满足预设条件。本发明能够提高日志模板的生成效率和准确性。

技术研发人员:顾兆军,张智凯,刘春波,岳文龙
受保护的技术使用者:中国民航大学
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1154216.html

最新回复(0)