CN113297051B - 一种日志分析处理方法及装置 - Google Patents
一种日志分析处理方法及装置 Download PDFInfo
- Publication number
- CN113297051B CN113297051B CN202110841202.9A CN202110841202A CN113297051B CN 113297051 B CN113297051 B CN 113297051B CN 202110841202 A CN202110841202 A CN 202110841202A CN 113297051 B CN113297051 B CN 113297051B
- Authority
- CN
- China
- Prior art keywords
- log
- information
- type
- log information
- classification model
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种日志分析处理方法及装置,方法包括:获取来自多种中间组件的日志信息;对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;将所述日志信息的日志类型和所述异常类型中的至少一项输出。本发明的方案可以实现异常日志的准确检测,为系统运维人员进行故障定位提供有力支持。
Description
技术领域
本发明涉及日志处理技术领域,特别是指一种日志分析处理方法及装置。
背景技术
日志是一种半结构化的文本数据,网络设备、系统及服务程序等在运行时都会产生日志,用来记录日期、时间、使用者及动作、系统状态等相关信息的描述。这使得系统开发人员与运维人员能够通过日志来监控系统运行状态,并在系统故障时迅速定位故障。
现今,随着系统与服务规模越来越庞大,结构越来越复杂,不同系统与服务中通常包含多个不同的中间组件,而不同组件的日志格式不同,因此同一个系统或服务中通常会产生大规模不同格式的日志数据。
在大规模的日志数据中,正常日志占比极大且重复性高,异常日志数据量较小,但是占比较小的异常日志中往往包含巨大的信息量,对于系统维护至关重要。因此,异常日志的检测成为亟待解决的问题。
发明内容
本发明要解决的技术问题是如何提供一种日志分析处理方法及装置。解决现有技术中错误日志无法准确检测的问题。
为解决上述技术问题,本发明的技术方案如下:
一种日志分析处理方法,包括:
获取来自多种中间组件的日志信息;
对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;
对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;
将所述日志信息的日志类型和所述异常类型中的至少一项输出,所述异常类型包括:文件/文件夹操作异常。
可选的,日志分析处理方法,还包括:
对所述多种中间组件的日志信息,构建不同的正则表达式,分别作为不同组件的日志模式;
对所述日志模式通过模式匹配的方式,检测所述日志信息的来源,得到日志的来源信息;
将所述日志的来源信息输出。
可选的,对所述日志信息进行语义分析,得到至少一种日志类型的日志信息,包括:
对所述日志信息进行语义分析,得到日志描述信息;
根据所述日志描述信息,对所述日志信息进行向量化,得到日志向量;
将所述日志向量输入训练好的日志分类模型进行处理,得到至少一种日志类型的日志信息,所述日志类型包括:正常日志类型和错误日志类型。
可选的,所述日志分类模型通过以下过程进行训练:
获取日志信息数据训练集;
对所述日志信息数据训练集进行语义分析,得到用于训练的日志信息的日志描述信息;
根据所述用于训练的日志信息的日志描述信息,对所述日志信息数据训练集中的日志信息进行标注,得到包括正常日志信息的第一训练集以及包括错误日志信息的第二训练集;
对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量;
将所述第一日志向量输入所述第一预设分类模型进行训练,得到训练好的所述日志分类模型。
可选的,日志分析处理方法,还包括:
获取日志信息数据测试集;
根据所述日志信息数据测试集对所述训练好的所述日志分类模型进行测试,所述训练集的数据量大于所述测试集的数据量。
可选的,对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量,包括:
对所述第一训练集中的训练日志信息的日志描述信息进行预处理,得到第一预处理结果;
对所述第二训练集中的训练日志信息的日志描述信息进行预处理,得到第二预处理结果;
利用词向量库对所述第一预处理结果和所述第二预处理结果进行向量化,得到输入所述第一预设分类模型的第一日志向量;所述预处理包括命名实体识别、分词、停用词过滤、大小写转换中的至少一种处理。
可选的,对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型,包括:
对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行向量化,得到错误日志类型的日志向量;
将所述错误日志类型的日志向量输入训练好的异常分类模型进行处理,得到至少一种异常类型,所述异常类型还包括:网络异常、数据库异常、硬件异常、系统异常中的至少一种。
可选的,所述异常分类模型通过以下过程进行训练:
获取错误日志类型的日志信息数据训练集;
对所述错误日志类型的日志信息数据训练集进行预处理,得到第三预处理结果;
对所述第三预处理结果中的日志信息进行异常类型标注,得到至少一种异常类型训练集;
对所述至少一种异常类型训练集进行向量化处理,得到输入第二预设分类模型的第二日志向量;
将所述第二日志向量输入所述第二预设分类模型进行训练,得到训练好的所述异常分类模型。
本发明的实施例还提供一种日志分析处理装置,包括:
获取模块,用于获取来自多种中间组件的日志信息;
处理模块,用于对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;以及对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;
输出模块,用于将所述日志信息的日志类型和所述异常类型中的至少一项输出,所述异常类型包括:文件/文件夹操作异常。
本发明的实施例还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的日志分析处理方法。
本发明的上述方案至少包括以下有益效果:
通过获取来自多种中间组件的日志信息;对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;将所述日志信息的日志类型和所述异常类型中的至少一项输出,所述异常类型包括:文件/文件夹操作异常;基于语义信息将日志分为正常日志与错误日志,进一步基于语义信息检测错误日志中包含的异常类型,并结合日志来源模式对日志进行分析。建立了一个基于语义信息的完整日志分析模型,该模型为运维人员处理问题提供了足够的条件,并为进一步进行自动化和智能化的运维故障排查提供了良好的前提条件。
附图说明
图1是本发明实施例的日志分析处理方法的流程示意图;
图2是本发明实施例的日志分析处理装置的模块框示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明的实施例提供一种日志分析处理方法,包括:
步骤11,获取来自多种中间组件的日志信息;
步骤12,对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;
步骤13,对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;
步骤14,将所述日志信息的日志类型和所述异常类型中的至少一项输出,所述异常类型包括:文件/文件夹操作异常。
该实施例通过获取来自多种中间组件的日志信息;对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;将所述日志信息的日志类型和所述异常类型中的至少一项输出;基于语义信息将日志分为正常日志与错误日志,进一步基于语义信息检测错误日志中包含的异常类型,并结合日志来源模式对日志进行分析。建立了一个基于语义信息的完整日志分析模型,该模型为运维人员处理问题提供了足够的条件,并为进一步进行自动化和智能化的运维故障排查提供了良好的前提条件。
本发明的一可选的实施例中,日志分析处理方法,在上述步骤11至14的基础上,还可以包括:
步骤21,对所述多种中间组件的日志信息,构建不同的正则表达式,分别作为不同组件的日志模式;这里,正则表达式通常称为模式,是用于指定特定目的所需的字符串集的表达式;
步骤22,对所述日志模式通过模式匹配的方式,检测所述日志信息的来源,得到日志的来源信息;这里,通过模式匹配的方式检测日志来源;这样可以判断异常日志来源于系统的哪个组件,也为定位故障提供了有力支撑;
步骤23,将所述日志的来源信息输出。
该实施例中,日志的来源信息可以和上述实施例所述的日志类型和所述异常类型一起输出,也可以和其中一项一起输出,当然也可以单独输出。实现日志的来源检测,有利用日志异常检测的准确性的提高。
本发明的一可选的实施例中,步骤12可以包括:
步骤121,对所述日志信息进行语义分析,得到日志描述信息;这里,日志中通常包含多个字段,如时间戳、主机、进程id等,其中用来描述系统状态信息的字段叫做日志描述信息;
步骤122,根据所述日志描述信息,对所述日志信息进行向量化,得到日志向量;这里,具体实现时,可以对日志描述信息进行预处理,包括命名实体识别、分词、停用词过滤、大小写转换等中的至少一项;再利用通用数据集与日志信息混合训练词向量,以提高后续向量计算的准确性;利用训练好的词向量库将日志信息向量化表示;
步骤123,将所述日志向量输入训练好的日志分类模型进行处理,得到至少一种日志类型的日志信息,所述日志类型包括:正常日志类型和错误日志类型。
该实施例中,错误日志类型的日志为语义中包含错误信息的日志。反之,正常日志类型的日志为语义中不包含错误信息的日志。
本发明的一可选的实施例中,所述日志分类模型通过以下过程进行训练:
步骤31,获取日志信息数据训练集;
步骤32,对所述日志信息数据训练集进行语义分析,得到用于训练的日志信息的日志描述信息;这里,同样的,日志中通常包含多个字段,如时间戳、主机、进程id等,其中用来描述系统状态信息的字段叫做日志描述信息;
步骤33,根据用于训练的日志信息的日志描述信息,对所述日志信息数据训练集中的日志信息进行标注,得到包括正常日志信息的第一训练集以及包括错误日志信息的第二训练集;这里,根据日志描述信息进行日志分类,首先需要对日志信息进行标注。将日志信息数据训练集中的每一条日志标注为正常日志或错误日志。而日志数据规模大、重复多,因此首先对日志进行去重与模式识别,然后针对每一个日志模板进行标注;
步骤34,对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量;具体的,该步骤在实现时,可以包括:
步骤341,对所述第一训练集中的训练日志信息的日志描述信息进行预处理,得到第一预处理结果;具体实现时,对所述第一训练集中的训练日志信息的日志描述信息进行命名实体识别、分词、停用词过滤、大小写转换等中的至少一项处理;
步骤342,对所述第二训练集中的训练日志信息的日志描述信息进行预处理,得到第二预处理结果;具体实现时,对所述第二训练集中的训练日志信息的日志描述信息进行命名实体识别、分词、停用词过滤、大小写转换等中的至少一项处理;
步骤343,利用词向量库对所述第一预处理结果和所述第二预处理结果进行向量化,得到输入所述第一预设分类模型的第一日志向量;具体实现时,词向量库包括:通用语料(wikidata)+系统/中间件日志语料+业务日志语料训练词向量,向量维度为一预设维度,比如200维,词库大小可以为一预设值,比如可以为583511,利用该词向量库对日志数据进行向量化,以提高后续向量计算的准确性;利用训练好的词向量库将预处理后的日志向量化表示;
步骤35,将所述第一日志向量输入所述第一预设分类模型进行训练,得到训练好的所述日志分类模型。
所述日志分类模型的训练过程还可以包括:
步骤36,获取日志信息数据测试集;
步骤37,根据所述日志信息数据测试集对所述训练好的所述日志分类模型进行测试,所述训练集的数据量大于所述测试集的数据量。
该实施例中,第一预设分类模型可以选择机器学习或深度学习中的二分类算法如svm、随机森林、lstm、bert等训练日志分类模型。
日志分类模型的一种具体的训练过程如下:
准备日志信息数据集:
采集logpai的开源日志数据集,包括linux、mac、windows、android、apache、arangodb、clickhouse、hadoop、kafka、openstack、proxifier、redis、spark、ssh、tengine、zookeeper等16个来源的日志,原始数据共327725397条,以及相关业务系统日志共486658605条。而日志数据规模大、重复多,因此首先对日志进行去重与模式识别,然后针对每一个日志模板进行标注,获取到数据集中正常日志101061条,错误日志6502条。为了保证类别平衡,选择正常日志10000条,错误日志6502条。并以0.75:0.25的比例将数据切分为日志信息数据训练集与日志信息数据测试集。
对上述日志信息数据训练集与日志信息数据测试集的数据进行预处理:
A、命名实体识别:需要识别的实体包括:timestamp,url,ip,file,path,number,email等,利用entity_link进行识别;识别后,用实体tag代替原文中相应的字符串;
B、分词:通用英文分词+驼峰分割的方式进行分词;
C、过滤:停用词过滤;仅包含数字+符号的日志过滤;仅包含字母+数字的日志过滤等;
D、大小写转换:大写字母转为小写或者小写字母转换为大写;
E、向量化:利用通用语料(wikidata)+系统/中间件日志语料+业务日志语料训练词向量,向量维度为200维,词库大小为583511。并利用该词向量库对日志数据进行向量化;
二分类模型:选择机器学习或深度学习中的二分类算法如svm、随机森林、lstm、bert等训练日志分类模型。
以bert为例,在预训练好的bert模型上fine-tune,实现下游分类任务。
调整参数max_seq_length=128,train_batch_size=32,learning_rate=2e-5,num_train_epochs=3.0,其中max_seq_length为一条数据中包含的最大token数量,train_batch_size为训练过程中batch大小,learning_rate为学习率,num_train_epochs为fine-tune的轮数。在该参数设置下,模型效果达到最优。
模型输出:输出为日志类型:0为错误日志类型,1为正常日志类型。
本发明的一可选的实施例中,步骤13可以包括:
步骤131,对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行向量化,得到错误日志类型的日志向量;该步骤在实现时,同样的,利用词向量库对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行向量化,词向量库包括:通用语料(wikidata)+系统/中间件日志语料+业务日志语料训练词向量,向量维度为一预设维度,比如200维,词库大小可以为一预设值,比如可以为583511,利用该词向量库对日志数据进行向量化,以提高后续向量计算的准确性;利用训练好的词向量库将预处理后的日志向量化表示;
步骤132,将所述错误日志类型的日志向量输入训练好的异常分类模型进行处理,得到至少一种异常类型,所述异常类型还包括:网络异常、数据库异常、硬件异常、系统异常中的至少一种。
本发明的实施例中,异常日志是指发生异常时打印的日志,可能仅为异常发生时的某个状态或情况说明。通常日志信息中包含一个“日志等级”字段,即该日志为“debug”、“info”、“warning”、“error”等类型的日志,通常将等级为“error”及以上的日志称为异常日志。
本发明的一可选的实施例中,所述异常分类模型通过以下过程进行训练:
步骤41,获取错误日志类型的日志信息数据训练集;
步骤42,对所述错误日志类型的日志信息数据训练集进行预处理,得到第三预处理结果;具体实现时,对所述错误日志类型的日志信息数据训练集进行命名实体识别、分词、停用词过滤、大小写转换等中的至少一项处理;
步骤43,对所述第三预处理结果中的日志信息进行异常类型标注,得到至少一种异常类型训练集;具体实现时,对所述错误日志类型的日志信息数据训练集中的错误日志进行分析统计,将日志中包含的异常类型分为六类:文件/文件夹操作异常、网络异常、数据库异常、硬件异常、系统异常、其他异常;将每一条错误日志标注为确定的异常类型,同样是对去重后的日志模版进行标注;
步骤44,对所述至少一种异常类型训练集进行向量化处理,得到输入第二预设分类模型的第二日志向量;具体实现时,利用词向量库对所述至少一种异常类型训练集进行向量化处理,得到输入第二预设分类模型的第二日志向量;具体实现时,词向量库包括:通用语料(wikidata)+系统/中间件日志语料+业务日志语料训练词向量,向量维度为一预设维度,比如200维,词库大小可以为一预设值,比如可以为583511,利用该词向量库对日志数据进行向量化,以提高后续向量计算的准确性;利用训练好的词向量库将预处理后的日志向量化表示;
步骤45,将所述第二日志向量输入所述第二预设分类模型进行训练,得到训练好的所述异常分类模型。
该实施例中,该实施例中,第二预设分类模型可以选择机器学习或深度学习中的二分类算法如svm、随机森林、lstm、bert等训练日志分类模型。并根据评价指标选择分类效果最好的模型作为异常分类模型。
异常分类模型的一种具体的训练过程如下:
错误日志类型的日志信息数据集:
上述日志分类模型中输出的错误日志作为最终数据集,并将带有异常类别标签的日志按照0.75:0.25的比例切分为训练数据与测试数据;
数据预处理:
A、命名实体识别:需要识别的实体包括:timestamp,url,ip,file,path,number,email等,利用entity_link进行识别;识别后,用实体tag代替原文中相应的字符串;
B、分词:通用英文分词+驼峰分割的方式进行分词;
C、过滤:停用词过滤;仅包含数字+符号的日志过滤;仅包含字母+数字的日志过滤等;
D、大小写转换:大写字母转为小写或者小写字母转换为大写;
E、向量化:利用通用语料(wikidata)+系统/中间件日志语料+业务日志语料训练词向量,向量维度为200维,词库大小为583511。并利用该词向量库对日志数据进行向量化;
异常分类模型:选择机器学习或深度学习中的多分类算法如svm、随机森林、lstm、bert等训练日志分类模型,以随机森林为例。随机森林为集成学习方法,以决策树为弱分类器,多个弱分类器集成获得更好的分类效果。调整参数n_estimators=10,criterion='gini',其中n_estimators为随机森林中树的数量,criterion为特征选择方法;
模型的输出:输出为异常类型:其中,1为文件/文件夹操作异常、2为网络异常、3为数据库异常、4为硬件异常、5为系统异常、6为其他异常。
本发明上述日志分析处理方法的一具体实现流程包括:
输入:原始日志
日志来源检测:将原始日志在日志来源的模式中进行匹配,从而检测日志来源。
预处理:后续进行日志分类与异常分类时需要利用日志中的日志描述信息,因此需要对日志进行预处理。首先根据日志模式获取日志的描述信息,然后进行命名实体识别、分词、停用词过滤、大小写转换、向量化等预处理操作。
日志分类模型:将预处理后的数据输入日志分类模型,得到日志类别。若为正常日志,则直接输出,若为错误日志,则进入异常分类模型判断异常类型。
异常分类模型:将错误日志输入异常分类模型,得到异常类型。
输出:输出为一个三维标签<日志来源,日志类型,异常类型>。若日志类型为正常日志,则异常类型为“null”。
具体的实现实例中:
以logpai中收集的日志数据集为例,采集logpai的开源日志数据集,包括linux、mac、windows、android、apache、arangodb、clickhouse、hadoop、kafka、openstack、proxifier、redis、spark、ssh、tengine、zookeeper等16个来源的日志,原始数据共327725397条。
日志分类模型训练与选择:最终选择bert进行日志二分类,精确率、召回率、f1值分别达到0.989、0.992、0.99;
异常分类模型训练与选择:最终选择随机森林进行异常多分类,精确率、召回率、f1值分别达到0.966、0.901、0.932;
上述三个模型预定义与选择完成后,结合一条apache实际原始日志为例介绍该发明所提出的基于语义异常的日志分析方法整体流程。
1.原始日志:[Mon Feb 27 05:41:04 2006] [error] [client 212.34.140.103]File does not exist:/var/www/html/phpgroupware;
日志预处理:根据模式匹配得到日志描述信息,输出为:File does not exist: /var/www/html/phpgroupware;
命名实体识别,对日志中较常出现的时间、IP、Url、文件名、路径等字段构建正则表达式进行识别,并替换为相关tag,输出为:File does not exist:<path>;
分词:日志描述文本与传统的自然语言文本存在区别,不能仅通过空格等符号进行分割,需要根据大小写、缩写等进行分词,输出为:File does not exist : <path>;
停用词过滤,输出为:File does not exist <path>;
大小写转换,将大写字母转为小写,输出为:file does not exist <path>;
向量化,根据训练好的词向量库,将日志描述信息转换为200维的向量;
日志分类:将预处理后的日志输入到日志二分类模型中,输出日志类型为0,即错误日志。
异常类型分类:将预处理后的日志输入到异常多分类模型中,输出异常类型为1,即文件/文件夹操作异常。
输出:输出为<apache,错误日志,文件/文件夹操作异常>
本发明的上述实施例,基于语义信息将日志分为正常日志与错误日志,进一步基于语义信息检测错误日志中包含的异常类型,并结合日志来源模式对日志进行分析。建立了一个基于语义信息的完整日志分析模型,该模型为运维人员处理问题提供了足够的条件,并为进一步进行自动化和智能化的运维故障排查提供了良好的前提条件。
如图2所示,本发明的实施例还提供一种日志分析处理装置20,包括:
获取模块21,用于获取来自多种中间组件的日志信息;
处理模块22,用于对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;以及对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;
输出模块23,用于将所述日志信息的日志类型和所述异常类型中的至少一项输出,所述异常类型包括:文件/文件夹操作异常。
可选的,处理模块22还用于对所述多种中间组件的日志信息,构建不同的正则表达式,分别作为不同组件的日志模式;对所述日志模式通过模式匹配的方式,检测所述日志信息的来源,得到日志的来源信息;将所述日志的来源信息输出。
可选的,对所述日志信息进行语义分析,得到至少一种日志类型的日志信息,包括:
对所述日志信息进行语义分析,得到日志描述信息;
根据所述日志描述信息,对所述日志信息进行向量化,得到日志向量;
将所述日志向量输入训练好的日志分类模型进行处理,得到至少一种日志类型的日志信息,所述日志类型包括:正常日志类型和错误日志类型。
可选的,所述日志分类模型通过以下过程进行训练:
获取日志信息数据训练集;
对所述日志信息数据训练集进行语义分析,得到用于训练的日志信息的日志描述信息;
根据用于训练的日志信息的日志描述信息,对所述日志信息数据训练集中的日志信息进行标注,得到包括正常日志信息的第一训练集以及包括错误日志信息的第二训练集;
对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量;
将所述第一日志向量输入所述第一预设分类模型进行训练,得到训练好的所述日志分类模型。
可选的,处理模块22还用于获取日志信息数据测试集;根据所述日志信息数据测试集对所述训练好的所述日志分类模型进行测试,所述训练集的数据量大于所述测试集的数据量。
可选的,对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量,包括:
对所述第一训练集中的训练日志信息的日志描述信息进行预处理,得到第一预处理结果;
对所述第二训练集中的训练日志信息的日志描述信息进行预处理,得到第二预处理结果;
利用词向量库对所述第一预处理结果和所述第二预处理结果进行向量化,得到输入所述第一预设分类模型的第一日志向量;所述预处理包括命名实体识别、分词、停用词过滤、大小写转换中的至少一种处理。
可选的,对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型,包括:
对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行向量化,得到错误日志类型的日志向量;
将所述错误日志类型的日志向量输入训练好的异常分类模型进行处理,得到至少一种异常类型,所述异常类型还包括:网络异常、数据库异常、硬件异常、系统异常中的至少一种。
可选的,所述异常分类模型通过以下过程进行训练:
获取错误日志类型的日志信息数据训练集;
对所述错误日志类型的日志信息数据训练集进行预处理,得到第三预处理结果;
对所述第三预处理结果中的日志信息进行异常类型标注,得到至少一种异常类型训练集;
对所述至少一种异常类型训练集进行向量化处理,得到输入第二预设分类模型的第二日志向量;
将所述第二日志向量输入所述第二预设分类模型进行训练,得到训练好的所述异常分类模型。
需要说明的是,该装置是与上述方法对应的装置,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上所述的日志分析处理方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可 以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种日志分析处理方法,其特征在于,基于语义信息将日志分为正常日志与错误日志,进一步基于语义信息检测错误日志中包含的异常类型,并结合日志来源模式对日志进行分析,包括:
获取来自多种中间组件的日志信息,对所述多种中间组件的日志信息,构建不同的正则表达式,分别作为不同组件的日志模式,对所述日志模式通过模式匹配的方式,检测所述日志信息的来源,得到日志的来源信息;
对所述日志信息进行语义分析,得到至少一种日志类型的日志信息,
其中,对所述日志信息进行语义分析,得到至少一种日志类型的日志信息,包括:
对所述日志信息进行语义分析,得到日志描述信息,
根据所述日志描述信息,对所述日志信息进行向量化,得到日志向量,具体实现方式包括:对日志描述信息进行预处理,所述预处理包括命名实体识别、分词、停用词过滤、大小写转换中的至少一种处理,再利用通用数据集与日志信息混合训练词向量,利用训练好的词向量库将日志信息向量化表示,
将所述日志向量输入训练好的日志分类模型进行处理,得到至少一种日志类型的日志信息,所述日志类型包括:正常日志类型和错误日志类型,
其中,所述日志分类模型通过以下过程进行训练:
获取日志信息数据训练集,
对所述日志信息数据训练集进行语义分析,得到用于训练的日志信息的日志描述信息,
根据所述用于训练的日志信息的日志描述信息,对所述日志信息数据训练集中的日志信息进行标注,得到包括正常日志信息的第一训练集以及包括错误日志信息的第二训练集,其中,根据日志描述信息进行日志分类,首先对日志信息进行标注,将日志信息数据训练集中的每一条日志标注为正常日志或者错误日志,标注方式具体是:首先对日志进行去重与模式识别,然后针对每一个日志模板进行标注,
对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量,
将所述第一日志向量输入所述第一预设分类模型进行训练,得到训练好的所述日志分类模型,
其中,对所述第一训练集以及第二训练集中的日志信息进行向量化处理,得到输入第一预设分类模型的第一日志向量,包括:
对所述第一训练集中的训练日志信息的日志描述信息进行预处理,得到第一预处理结果,所述预处理包括命名实体识别、分词、停用词过滤、大小写转换中的至少一种处理,
对所述第二训练集中的训练日志信息的日志描述信息进行预处理,得到第二预处理结果,所述预处理包括命名实体识别、分词、停用词过滤、大小写转换中的至少一种处理,
利用词向量库对所述第一预处理结果和所述第二预处理结果进行向量化,得到输入所述第一预设分类模型的第一日志向量,其中,词向量库包括:通用语料+系统/中间件日志语料+业务日志语料训练词向量,向量维度为预设维度,词库大小为预设值,利用该词向量库对日志数据进行向量化,利用训练好的词向量库将预处理后的日志向量化表示;
对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型,
其中,对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型,包括:
对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行向量化,得到错误日志类型的日志向量,
将所述错误日志类型的日志向量输入训练好的异常分类模型进行处理,得到至少一种异常类型,
其中,所述异常分类模型通过以下过程进行训练:
获取错误日志类型的日志信息数据训练集,
对所述错误日志类型的日志信息数据训练集进行预处理,得到第三预处理结果,
对所述第三预处理结果中的日志信息进行异常类型标注,得到至少一种异常类型训练集,
对所述至少一种异常类型训练集进行向量化处理,得到输入第二预设分类模型的第二日志向量,
将所述第二日志向量输入所述第二预设分类模型进行训练,得到训练好的所述异常分类模型;
将所述日志信息的日志来源、日志类型和所述异常类型输出,所述异常类型包括:文件/文件夹操作异常、网络异常、数据库异常、硬件异常、系统异常。
2.根据权利要求1所述的日志分析处理方法,其特征在于:
第一预设分类模型选择机器学习或深度学习中的二分类算法训练日志分类模型;
和/或
第二预设分类模型选择机器学习或深度学习中的多分类算法训练日志分类模型;
和/或
日志来源模式包括linux、mac、windows、android、apache、arangodb、clickhouse、hadoop、kafka、openstack、proxifier、redis、spark、ssh、tengine和/或zookeeper。
4.根据权利要求3所述的日志分析处理方法,其特征在于,所述日志分类模型训练的过程中:
以0.75:0.25的比例将数据切分为日志信息数据训练集与日志信息数据测试集。
5.根据权利要求1所述的日志分析处理方法,其特征在于,还包括:
获取日志信息数据测试集;
根据所述日志信息数据测试集对所述训练好的所述日志分类模型进行测试,所述训练集的数据量大于所述测试集的数据量。
6.根据权利要求4所述的日志分析处理方法,其特征在于:
以bert算法训练日志分类模型时,在预训练好的bert模型上fine-tune,实现下游分类任务,调整参数max_seq_length=128,train_batch_size=32,learning_rate=2e-5,num_train_epochs=3.0,其中max_seq_length为一条数据中包含的最大token数量,train_batch_size为训练过程中batch大小,learning_rate为学习率,num_train_epochs为fine-tune的轮数。
7.根据权利要求3所述的日志分析处理方法,其特征在于,异常分类模型的训练过程中:
日志分类模型中输出的错误日志作为最终数据集,并将带有异常类别标签的日志按照0.75:0.25的比例切分为训练数据与测试数据。
8.根据权利要求7所述的日志分析处理方法,其特征在于,以随机森林算法训练日志分类模型时:
以决策树为弱分类器,多个弱分类器集成,调整参数n_estimators=10,criterion='gini',其中n_estimators为随机森林中树的数量,criterion为特征选择方法。
9.一种日志分析处理装置,其特征在于,包括:
获取模块,用于获取来自多种中间组件的日志信息,对所述多种中间组件的日志信息,构建不同的正则表达式,分别作为不同组件的日志模式,对所述日志模式通过模式匹配的方式,检测所述日志信息的来源,得到日志的来源信息;
处理模块,用于对所述日志信息进行语义分析,得到至少一种日志类型的日志信息;以及对所述至少一种日志类型的日志信息中的错误日志类型的日志信息进行分析处理,得到至少一种异常类型;
输出模块,用于将所述日志信息的日志来源、日志类型和所述异常类型输出,所述异常类型包括:文件/文件夹操作异常、网络异常、数据库异常、硬件异常、系统异常。
10.一种计算机可读存储介质,其特征在于,存储指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110841202.9A CN113297051B (zh) | 2021-07-26 | 2021-07-26 | 一种日志分析处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110841202.9A CN113297051B (zh) | 2021-07-26 | 2021-07-26 | 一种日志分析处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297051A CN113297051A (zh) | 2021-08-24 |
CN113297051B true CN113297051B (zh) | 2022-03-04 |
Family
ID=77330867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110841202.9A Active CN113297051B (zh) | 2021-07-26 | 2021-07-26 | 一种日志分析处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297051B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778874A (zh) * | 2021-09-08 | 2021-12-10 | 中国银行股份有限公司 | 测试结果判别方法及测试结果判别装置 |
KR102592093B1 (ko) * | 2021-12-02 | 2023-10-19 | 한동대학교 산학협력단 | 시스템 장애 예측용 딥러닝 모델 학습을 위한 학습 데이터 생성 방법 및 시스템 |
CN115828888A (zh) * | 2022-11-18 | 2023-03-21 | 贵州电网有限责任公司遵义供电局 | 一种针对多种网络日志进行语义解析及结构化的方法 |
CN115858325B (zh) * | 2023-01-17 | 2023-08-11 | 北京优特捷信息技术有限公司 | 一种项目日志的调整方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782472A (zh) * | 2020-06-30 | 2020-10-16 | 平安科技(深圳)有限公司 | 系统异常检测方法、装置、设备及存储介质 |
CN112182219A (zh) * | 2020-10-09 | 2021-01-05 | 杭州电子科技大学 | 一种基于日志语义分析的在线服务异常检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10379934B2 (en) * | 2017-07-31 | 2019-08-13 | Oracle International Corporation | System and method of providing post error analysis for instances of applications in cloud service environments on a per user basis |
-
2021
- 2021-07-26 CN CN202110841202.9A patent/CN113297051B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782472A (zh) * | 2020-06-30 | 2020-10-16 | 平安科技(深圳)有限公司 | 系统异常检测方法、装置、设备及存储介质 |
CN112182219A (zh) * | 2020-10-09 | 2021-01-05 | 杭州电子科技大学 | 一种基于日志语义分析的在线服务异常检测方法 |
Non-Patent Citations (1)
Title |
---|
面向云数据中心多语法日志通用异常检测机制;张圣林 等;《计算机研究与发展》;20201231;第57卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113297051A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113297051B (zh) | 一种日志分析处理方法及装置 | |
Huo et al. | Learning unified features from natural and programming languages for locating buggy source code. | |
CN109034368B (zh) | 一种基于dnn的复杂设备多重故障诊断方法 | |
US20110296244A1 (en) | Log message anomaly detection | |
CN107169572B (zh) | 一种基于Mahout的机器学习服务组装方法 | |
CN107111625A (zh) | 实现数据的高效分类和探索的方法和系统 | |
Necşulescu et al. | Reading between the lines: Overcoming data sparsity for accurate classification of lexical relationships | |
US11216512B2 (en) | Accessible machine learning backends | |
CN113609488B (zh) | 基于自监督学习及多通道超图神经网络的漏洞检测方法与系统 | |
CN108536673B (zh) | 新闻事件抽取方法及装置 | |
CN107516370A (zh) | 一种票据识别的自动化测试及评价方法 | |
CN114818643A (zh) | 一种保留特定业务信息的日志模板提取方法 | |
Zhang et al. | Zero-shot event detection based on ordered contrastive learning and prompt-based prediction | |
Shatnawi et al. | An Assessment of Eclipse Bugs' Priority and Severity Prediction Using Machine Learning | |
Bodík et al. | HiLighter: Automatically Building Robust Signatures of Performance Behavior for Small-and Large-Scale Systems. | |
CN109101487A (zh) | 对话角色区分方法、装置、终端设备及存储介质 | |
Hillebrand et al. | Towards automating numerical consistency checks in financial reports | |
Khritankov et al. | Discovering text reuse in large collections of documents: A study of theses in history sciences | |
CN115859191A (zh) | 故障诊断方法、装置、计算机可读存储介质及计算机设备 | |
Ebert et al. | Understanding text classification data and models using aggregated input salience | |
Singh et al. | A comparative analysis of text classification algorithms for ambiguity detection in requirement engineering document using WEKA | |
KR102265947B1 (ko) | 기계 학습 기반 정보 제공 방법 및 장치 | |
Mishra et al. | Fault Log Text Classification Using Natural Language Processing And Machine Learning For Decision Support | |
Bogatinovski et al. | Failure identification from unstable log data using deep learning | |
Suhud et al. | Recognizing Public Satisfaction Toward Kampus Mengajar Program with Naive Bayes |
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 |