本发明涉及人工智能决策,尤其涉及一种系统异常检测方法、装置、设备及存储介质。
背景技术:
随着系统规模的变大、复杂度的提高、监控覆盖的完善,监控数据量越来越大,运维人员无法从海量监控数据中发现质量问题。智能化的异常检测就是要通过ai算法,自动、实时、准确地从监控数据中发现异常,为后续的诊断、自愈提供基础。异常检测是aiops(algorithmicitoperations,智能运营)系统中的一项非常基础但是十分重要的功能,主要是通过算法和模型去自动的挖掘发现kpi时间序列数据中的异常行为,为后续的报警,自动止损,根因分析等提供必要的决策依据。
但是在实际的应用场景下,由于正常数据一般占总数据量的很大比例,而异常点的数据十分稀少,给异常检测带来了极大的困难。在检测模型的训练阶段,为了保证模型训练样本的正负均衡,传统的解决思路主要是:在模型检测的过程中对正常样本欠采样(丢弃一部分数据)和异常样本过采样(重复一部分数据),前者会丢失大量样本信息,造成模型过拟合,泛化能力不佳;对于后者,简单的随机抽样,也会使模型产生过拟合风险。故无论是本身异常点的数据量稀少,还是用于异常点的数据检测模型的准确构建难度大,都使得智能运营系统中的数据检测难度增加。
技术实现要素:
本发明的主要目的在于解决智能运营系统的异常检测难度大的问题。
本发明第一方面提供了一种系统异常检测方法,包括:
获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级标记,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
可选的,在本发明第一方面的第一种实现方式中,所述对所述无标记日志进行扩充,得到扩充日志包括:
解析所述无标记日志,得到多个带有不同语义的日志字段;
根据预置语义结构先验知识和所述日志字段的出现频率,从所述日志字段中筛选与异常等级相关的关键字段;
获取所述关键字段对应的一个或多个同义字段,并以所述同义字段替换对应的关键字段;
根据随机字段处理策略,对所述同义字段与除所述关键字段外的其他日志字段进行拼接,得到多个对应的扩充日志,其中,所述随机字段处理策略包括对所述其他日志字段进行替换、删除、插入或交换。
可选的,在本发明第一方面的第二种实现方式中,所述将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布包括:
将所述标记日志、所述无标记日志、所述扩充日志中的各日志数据的长度统一调整为预设长度,并构建对应的数据向量;
根据所述数据向量的长度,确定所述数据向量的特征维度,并根据所述特征维度对所述数据向量进行语义特征提取,得到初始语义特征;
对所述初始语义特征进行突出特征的筛选及组合,得到最终语义特征,并根据所述最终语义特征计算所述标记日志、所述无标记日志与所述扩充日志的异常等级的概率分布并输出。
可选的,在本发明第一方面的第三种实现方式中,所述计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失包括:
根据第一概率分布与所述标记日志的预设异常等级标记,计算各标记日志的异常等级的正确预测概率;
根据预置模型训练参数与所述正确预测概率,计算所述第一概率分布的交叉熵损失,以用于衡量分类模型对所述标记日志的异常等级预测与所述标记日志的真实异常等级之间的差异。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型包括:
根据所述交叉熵损失确定各标记日志对应的正确预测概率;
判断是否存在大于预设概率阈值的正确预测概率;
若是,则删除大于所述概率阈值的正确预测概率对应的第一概率分布,并继续对所述日志异常检测模型进行迭代,否则直接对所述日志异常检测模型进行迭代,并在所述日志异常检测模型迭代后更新所述模型训练参数;
计算所述交叉熵损失与所述一致性损失的和,得到对应的最终损失值,并判断所述最终损失值是否小于预设的最终损失阈值;
若所述最终损失值小于所述最终损失阈值,则所述异常等级训练模型集收敛并停止迭代,得到日志异常检测模型。
可选的,在本发明第一方面的第五种实现方式中,所述正确预测概率的计算公式为:
当所述标记日志中的数据量小于预设正常数据量范围时,
当所述标记日志中的数据量大于所述正常数据量范围时,所述
可选的,在本发明第一方面的第六种实现方式中,所述获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果包括:
获取待检测系统的待检测日志,其中所述待检测日志中包含多条日志信息,所述日志信息包含系统运行管理优先级的标识信息;
将所述待检测日志输入所述日志异常检测模型进行检测,并通过所述日志异常检测模型预测所述待检测日志的异常等级;
筛选异常等级高于预设异常等级阈值的待检测日志,并根据所述标识信息,从筛选的待检测日志中确定优先级大于预设优先级阈值的日志信息;
将所述优先级大于预设优先级阈值的日志信息进行高亮显示,并将所述高亮显示的日志信息与除高亮显示的日志信息外的其他日志信息对应的异常等级作为当前系统运行状态的分析结果。
本发明第二方面提供了一种系统异常检测装置,包括:
获取模块,用于获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
训练模块,用于将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
计算模块,用于计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
生成模块,用于根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级标记,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
检测模块,用于获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
可选的,在本发明第二方面的第一种实现方式中,所述获取模块还用于:
解析所述无标记日志,得到多个带有不同语义的日志字段;
根据预置语义结构先验知识和所述日志字段的出现频率,从所述日志字段中筛选与异常等级相关的关键字段;
获取所述关键字段对应的一个或多个同义字段,并以所述同义字段替换对应的关键字段;
根据随机字段处理策略,对所述同义字段与除所述关键字段外的其他日志字段进行拼接,得到多个对应的扩充日志,其中,所述随机字段处理策略包括对所述其他日志字段进行替换、删除、插入或交换。
可选的,在本发明第二方面的第二种实现方式中,所述训练模块还包括:
构建单元,用于将所述标记日志、所述无标记日志、所述扩充日志中的各日志数据的长度统一调整为预设长度,并构建对应的数据向量;
特征提取单元,用于根据所述数据向量的长度,确定所述数据向量的特征维度,并根据所述特征维度对所述数据向量进行语义特征提取,得到初始语义特征;
概率分布生成单元,用于对所述初始语义特征进行突出特征的筛选及组合,得到最终语义特征,并根据所述最终语义特征计算所述标记日志、所述无标记日志与所述扩充日志的异常等级的概率分布并输出。
可选的,在本发明第二方面的第三种实现方式中,所述计算模块还包括:
第一计算单元,用于根据第一概率分布与所述标记日志的预设异常等级标记,计算各标记日志的异常等级的正确预测概率;
第二计算单元,用于根据预置模型训练参数与所述正确预测概率,计算所述第一概率分布的交叉熵损失,以用于衡量分类模型对所述标记日志的异常等级预测与所述标记日志的真实异常等级之间的差异。
可选的,在本发明第二方面的第四种实现方式中,所述生成模块还包括:
迭代单元,用于根据所述交叉熵损失确定各标记日志对应的正确预测概率;判断是否存在大于预设概率阈值的正确预测概率;若是,则删除大于所述概率阈值的正确预测概率对应的第一概率分布,并继续对所述日志异常检测模型进行迭代,否则直接对所述日志异常检测模型进行迭代,并在所述日志异常检测模型迭代后更新所述模型训练参数;
模型生成单元,用于计算所述交叉熵损失与所述一致性损失的和,得到对应的最终损失值,并判断所述最终损失值是否小于预设的最终损失阈值;若所述最终损失值小于所述最终损失阈值,则所述异常等级训练模型集收敛并停止迭代,得到日志异常检测模型。
可选的,在本发明第二方面的第五种实现方式中,所述正确预测概率的计算公式为:
当所述标记日志中的数据量小于预设正常数据量范围时,
当所述标记日志中的数据量大于所述正常数据量范围时,所述
可选的,在本发明第二方面的第六种实现方式中,所述检测模块还包括:
获取单元,用于获取待检测系统的待检测日志,其中所述待检测日志中包含多条日志信息,所述日志信息包含系统运行管理优先级的标识信息;
检测单元,用于将所述待检测日志输入所述日志异常检测模型进行检测,并通过所述日志异常检测模型预测所述待检测日志的异常等级;
筛选单元,用于筛选异常等级高于预设异常等级阈值的待检测日志,并根据所述标识信息,从筛选的待检测日志中确定优先级大于预设优先级阈值的日志信息;
分析结果生成单元,用于将所述优先级大于预设优先级阈值的日志信息进行高亮显示,并将所述高亮显示的日志信息与除高亮显示的日志信息外的其他日志信息对应的异常等级作为当前系统运行状态的分析结果。
本发明第三方面提供了一种基于优先级的资源分配设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互联;所述至少一个处理器调用所述存储器中的所述指令,以使得所述系统异常检测设备执行上述的系统异常检测方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的系统异常检测方法。
本发明提供的技术方案中,通过获取待检测系统的标记日志、无标记日志及扩充日志分别输入异常等级训练模型集中三个相同的异常等级训练模型中进行训练,输出三者的各异常等级的概率分布;然后计算异常等级训练模型输出的交叉熵损失、一致性损失;再根据一致性损失预测无标记日志与扩充日志的异常等级,以及根据交叉熵损失对所述异常等级训练模型集进行迭代,直到异常等级训练模型集收敛,得到日志异常检测模型;最后通过日志异常检测模型对系统运行中的异常日志进行检测。优化模型训练方式,防止模型过拟合,降低检测模型对系统中异常点的检测难度。
附图说明
图1为本发明中系统异常检测方法的第一个实施例示意图;
图2为本发明中系统异常检测方法的第二个实施例示意图;
图3为本发明中系统异常检测方法的第三个实施例示意图;
图4为本发明中系统异常检测方法的第四个实施例示意图;
图5为本发明中系统异常检测装置的一个实施例示意图;
图6为本发明中系统异常检测装置的另一个实施例示意图;
图7为本发明中系统异常检测设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种系统异常检测方法、装置、设备及存储介质,包括获取待检测系统的标记日志、无标记日志及扩充日志分别输入异常等级训练模型集中三个相同的异常等级训练模型中进行训练,输出三者的各异常等级的概率分布;然后计算异常等级训练模型输出的交叉熵损失、一致性损失;再根据一致性损失预测无标记日志与扩充日志的异常等级,以及根据交叉熵损失对所述异常等级训练模型集进行迭代,直到异常等级训练模型集收敛,得到日志异常检测模型;最后通过日志异常检测模型对系统运行中的异常日志进行检测。优化模型训练方式,防止模型过拟合,降低检测模型对系统中异常点的检测难度。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中系统异常检测方法的第一个实施例包括:
101、获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
可以理解的是,本发明的执行主体可以为系统异常检测装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。需要强调的是,为进一步保证上述标记日志、无标记日志与扩充日志的私密和安全性,上述标记日志、无标记日志与扩充日志还可以存储于一区块链的节点中。
本实施例中,可从系统存储器中获取在系统过往运行过程中产生的日志,该日志是用于记录系统状态和运行状态的文本信息,内容包括时间戳和指示发送内容的文本信息。
本实施例中的实际应用场景,我们使用少量的标记日志,以预测大量的未标记日志,得到其异常等级。获取系统过往生成的日志作为无标记日志,然后从无标记日志中筛选少量的日志进行异常等级标记以作为标记日志;而另一方面,在模型训练过程中,由于正常样本比异常样本的数量明显高出很多,而为保证训练样本的正负均衡,以有利于模型训练的稳定性,故需要对未标记日志进行扩充,增加负样本的数量,此处通过对标记日志中,描述系统运行状态的关键词,作相同语义词的替换,得到扩充日志。
优选的,可采用回译和td-idf(termfrequency–inversedocumentfrequency,词频-逆文本频率指数)替换单词法进行异常未标记日志的扩充,首先通过td-idf评估无标记日志中每一个字段的对该无标记日志的重要程度,具体先将无标记日志中出现频率高的字段作为无标记日志的关键字段,再以dbpedia先验知识对不同无标记日志中关键字段根据语义进行分类,得到多个类别的关键字段,并以语义相同的同义词对关键字段进行替换,最后再其他非关键字段进行处理,包括替换、删除、插入、交换等方式,即可扩充异常未标记日志的数量,在存在信息内容异常的同时保证语义相同,得到扩充日志。
102、将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
本实施例中,异常等级训练模型集由三个相同的异常等级训练模型堆叠而成,而每一个异常等级训练模型的训练过程具体包括:
将所述标记日志、所述无标记日志、所述扩充日志中的各日志数据的长度统一调整为预设长度,并构建对应的数据向量;
根据所述数据向量的长度,确定所述数据向量的特征维度,并根据所述特征维度对所述数据向量进行语义特征提取,得到初始语义特征;
对所述初始语义特征进行突出特征的筛选及组合,得到最终语义特征,并根据所述最终语义特征计算所述标记日志、所述无标记日志与所述扩充日志的异常等级的概率分布并输出。
本实施例中,对于将标记日志输入异常等级训练模型中进行训练属于监督学习的训练方式,将无标记日志、扩充日志输入异常等级训练模型、异常等级训练模型中进行训练属于非监督学习的训练方式。值得一提的是,此处根据系统日志的不同字段的特征分布,对应输出其不同异常等级的概率,最后再选择异常等级概率最高的作为该系统日志的异常等级,而非直接输出异常等级。
优选的,此处使用text-cnn(text-convolutionalneuralnetwork,文本卷积神经网络)同时以监督学习的方式训练标记日志对应的异常等级训练模型、以非监督学习的方式训练未标记日志与扩充数据对应的异常等级训练模型。具体包括:
输入层,将输入text-cnn模型中的标记日志、无标记日志或扩充日志中的文本词汇调节为相同长度l,得到每一条文本词汇的词向量;
卷积层,通过异常等级的类别数作为异常等级训练模型维度,使用多个不同尺寸的卷积核,对词向量进行描述等级异常的特征词汇的提取;
池化层,以max-pool(最大值池化)对卷积层得到的不同特征词汇进行组合,以作为不同系统日志的分类特征;
全连接层,将分类特征输入到lr((logisticregression,逻辑回归)分类器中进行分类,比如设置的输出规则中异常等级包括:重大异常、普通异常、轻微异常、正常,则输出不同系统日志的前述每个异常等级概率。
最后再根据模型输出的各个异常等级概率,将概率最高的异常等级作为当前系统日志的异常等级的预测结果。比如输入text-cnn的无标记日志a异常等级中,重大异常、普通异常、轻微异常、正常的概率分别为[0.5,0.2,0.2,0.1],则通过模型预测无标记日志a的异常等级为重大异常。
103、计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
本实施例中,交叉熵损失表示标记日志的第一个概率分布的预测与其真实等级之间的差异值,一致性损失表示未标记日志与对应的扩充日志之间的差异值。最后可直接输入未标记的待检测日志,即可直接预测其异常等级。
具体的,先对未标记日志与扩充日志对应的异常等级训练模型进行堆叠,并进行一致性训练,通过一致性损失函数对该异常等级训练模型集的迭代升级进行控制,随着模型训练与迭代,无标记日志与对应的扩充日志的特征越集中,相似度越高,表示两个模型的相似距离越小,则对应的一致性损失降低,当降到预设的阈值时,则将相应的异常等级标签传播到该扩充日志中,得到未标记日志的异常等级。其中,一致性损失的计算通过以下函数进行计算:
另外,使用交叉熵损失衡量标记日志对应的异常等级训练模型输出的异常等级概率分布的预测结果与实际异常等级的差异;该交叉熵通过以下交叉熵函数计算:
104、根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级标记,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
本实施例中,结合一致性损失与交叉熵损失来评价日志异常检测模型,即
当一致性损失小于预设的一致性损失阈值时,即可确定无标记日志与扩充日志的异常等级标记预测可信;而当交叉熵损失小于预设的交叉熵损失阈值时,即可确定步骤102输出的各异常等级的概率分布可信,当两者相加得到的最终损失小于最终损失阈值时,即可表明整个异常等级训练模型集的输出结果可信。
105、获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
本实施例中,待检测日志可从一个或多个系统中获取得到,不同的系统不同运行状态分优先级管理,监控过程中重点关注容易发生重大异常的运行情况,对于优先级高的异常日志,一旦出现重大异常情况,需及时采取应急措施,快速响应,定位到具体的故障原因,并加以排除。故待检测日志中带有优先级的标识信息,在输入日志异常检测模型输出的异常等级较高时,判断是否为标识优先级高的待检测日志,若是,则记录在分解结果中时,进行高亮显示,必要时发出警报。
本发明实施例中,通过获取标记日志与未标记日志,并对未标记日志进行扩充,得到扩充日志,再分别输入异常等级训练模型集中的三个对应的异常等级训练模型中进行训练,以用于预测三者的各异常等级概率分布;通过逐步减少标记信息的方式对该异常等级训练模型集进行迭代训练,最后生成的异常日志检测模型可用于预测系统运行过程中产生的待检测日志对应的异常等级,得到系统运行状态的分析结果,使模型抵抗过拟合强度提升,检察模型的检测难度下降。
请参阅图2,本发明实施例中系统异常检测方法的第二个实施例包括:
201、获取待检测系统的标记日志、无标记日志;
202、解析所述无标记日志,得到多个带有不同语义的日志字段;
本实施例主要介绍对无标记日志进行扩充得到扩充日志。无标记日志可以为系统异常状态下产生的系统日志,日志内容包含时间、会话标识、功能标识、精炼内容、其他信息,如系统版本号、线程号、日志级别,如debug、info、warm、error等,此处将无标记日志的各个不同语义的字段进行解析,得到多种语义字段,很明显,该日志内容中的日志级别是我们欲获取的目标关键字段。
203、根据预置语义结构先验知识和所述日志字段的出现频率,从所述日志字段中筛选与异常等级相关的关键字段;
本实施例中,预置语义结构先验知识对每个无标记日志中的相同语义的关键字段进行关联,其中,相同语义指表达的相同异常等级的内容含义;然后统计每种语义字段在同一个无标记日志中出现频率,与每种字段在所有无标记日志中出现的频率,再计算两者的乘积,根据计算结果与设置的阈值,即可筛选哪些字段为关键字段,即表示无标记日志的异常级别的字段,需注意的是,当同一类型字段在所有无标记日志中都出行过,即该字段亦没有代表性,则不予考虑。
优选的,可使用tf-idf(termfrequency-inversedocumentfrequency,词频-逆文本频率指数)技术来确定关键字段,若无标记日志为系统日志,当该系统日志中包含有100个字段,而字段a出现次数为15,则该字段的tf为:15/100=0.15;而本次训练采用的系统日志数量为10万分,该字段a在1千份系统日志中出现过,则该字段a的idf为:lg(100000/1000)=3,则该字段a的tf-idf为:0.15x3=0.45,若设置成为关键字段的tf-idf阈值为0.4,则可确定字段a为关键字段。
204、获取所述关键字段对应的一个或多个同义字段,并以所述同义字段替换对应的关键字段;
205、根据随机字段处理策略,对所述同义字段与除所述关键字段外的其他日志字段进行拼接,得到多个对应的扩充日志,其中,所述随机字段处理策略包括对所述其他日志字段进行替换、删除、插入或交换;
本实施例中,在确认无标记日志中的关键字段后,通过回译的方式对无标记日志进行扩充。首先需保持无标记日志内容表达相同,通过其他多个同义字段来实现,然后需保证扩充的扩充日志与无标记日志整体内容存在差异,故需对关键字段外的其他语义字段进行处理,包括替换、删除、插入、交换等方式。然后将处理后的关键字段与其他字段进行拼接,即可得到多个含义相同,内容存在差异的扩充日志。
206、将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
207、计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
208、根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级标记,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
209、获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
本发明实施例中,介绍了系统异常情况下产生的未标记日志进行扩充,在保证数据差异性的情况下,增加异常的未标记日志的数量,在后面检测模型的训练过程中增加模型抵抗过拟合的能力,降低检测模型训练的难度。
请参阅图3,本发明实施例中系统异常检测方法的第三个实施例包括:
301、获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
302、将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
303、根据所述第一概率分布与所述标记日志的预设异常等级标记,计算各标记日志的异常等级的正确预测概率;
本实施例中,以异常等级训练模型对标记日志进行预测的异常等级概率分布与该标记日志的真实异常等级,来计算预测正确的概率,计算公式为:
其中,p(yi)为标记日志中的第i个异常等级概率,q(yi)为标记日志中第i个异常等级概率,需注意的是,此处真实异常等级概率为1,而其他异常等级概率为0,故具体计算方式为:-log(q(yi))。
具体的,若异常等级的分类为:重大异常、普通异常、轻微异常、正常,并分别以1、2、3、4表示,z为标记日志的异常等级概率分布,若z~p中取值1、2、3、4的概率分别为[0.5,0.2,0.2,0.1],而该标记日志的真实异常等级为重大异常,则对应的正确预测概率为:-1xlog(0.5)=.0301。
304、根据预置模型训练参数与所述正确预测概率,计算所述第一概率分布的交叉熵损失,以用于衡量分类模型对所述标记日志的异常等级预测与所述标记日志的真实异常等级之间的差异;
本实施例中,对所有第一概率分布对应的正确预测概率累加并求均值,即可得到该第一概率分布的交叉熵损失。即可通过该交叉熵损失评价标记日志对应的异常等级训练模型的分类准确度,即分类结果与真实结果之间的量化差异指标。
305、计算所述第二概率分布与所述第三概率分布之间的一致性损失;
306、根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
307、获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
本发明实施例中,通过计算第一概率分布的交叉熵损失,以用于后续结合一致性损失计算最终损失,评价异常日志检测模型,作为衡量异常日志检测模型的指标之一。
请参阅图4,本发明实施例中系统异常检测方法的第四个实施例包括:
401、获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
402、将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
403、计算所述第一概率分布与所述标记日志的预设异常等级之间的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
404、根据所述交叉熵损失确定各标记日志对应的正确预测概率,并判断是否存在大于预设概率阈值的正确预测概率;
本实施例中,在日志异常检测模型迭代训练过程中,需要逐步删除标记的标记日志,以训练信号退火的方式防止模型过拟合,增加其泛化能力。当正确预测概率大于设置的概率阈值时,则将该正确预测概率对应的标记日志删除。
具体的,在标记日志中带标记数据量正常的情况下,该概率阈值计算公式为:
405、若是,则删除大于所述概率阈值的正确预测概率对应的第一概率分布,并继续对所述日志异常检测模型进行迭代,否则直接对所述日志异常检测模型进行迭代,并在所述日志异常检测模型迭代后更新所述模型训练参数;
本实施例中,通过训练信号退火的方式对日志异常检测模型进行迭代,逐步删除容易导致模型过拟合的标记日志,直到最终损失小于设置的阈值,即可确认该日志异常检测模型可用于检测的实践。
406、计算所述交叉熵损失与所述一致性损失的和,得到对应的最终损失值,并判断所述最终损失值是否小于预设的最终损失阈值;
407、若所述最终损失值小于所述最终损失阈值,则所述异常等级训练模型集收敛并停止迭代,得到日志异常检测模型;
本实施例中,结合交叉熵损失与一致性损失来评估日志异常检测模型的正确预测概率,以作为模型迭代的判别依据,此处只需将两者相加即可,即:
408、获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
本发明实施例中,在日志异常检测模型的迭代训练过程中,随着未标记数据的增加,逐步删除训练的第一概率分布,通过该训练信号退火法可有效抵抗过拟合风险。
上面对本发明实施例中系统异常检测方法进行了描述,下面对本发明实施例中系统异常检测装置进行描述,请参阅图5,本发明实施例中系统异常检测装置一个实施例包括:
获取模块501,用于获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
训练模块502,用于将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
计算模块503,用于计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
生成模块504,用于根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级标记,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
检测模块505,用于获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
本发明实施例中,通过获取待检测系统的标记日志、无标记日志及扩充日志分别输入异常等级训练模型集中三个相同的异常等级训练模型中进行训练,输出三者的各异常等级的概率分布;然后计算异常等级训练模型输出的交叉熵损失、一致性损失;再根据一致性损失预测无标记日志与扩充日志的异常等级,以及根据交叉熵损失对所述异常等级训练模型集进行迭代,直到异常等级训练模型集收敛,得到日志异常检测模型;最后通过日志异常检测模型对系统运行中的异常日志进行检测。优化模型训练方式,防止模型过拟合,降低检测模型对系统中异常点的检测难度。
请参阅图6,本发明实施例中系统异常检测装置的另一个实施例包括:
获取模块501,用于获取待检测系统的标记日志、无标记日志,并对所述无标记日志进行扩充,得到扩充日志;
训练模块502,用于将所述标记日志、所述无标记日志、所述扩充日志分别输入三个相同的异常等级训练模型中进行训练,对应输出所述标记日志的各异常等级的第一概率分布、所述无标记日志的各异常等级的第二概率分布、所述扩充日志的各异常等级的第三概率分布,其中,所述三个相同的异常等级训练模型组成异常等级训练模型集;
计算模块503,用于计算第一概率分布与所述标记日志的预设异常等级标记对应的交叉熵损失,以及计算所述第二概率分布与所述第三概率分布之间的一致性损失;
生成模块504,用于根据所述一致性损失预测所述无标记日志与所述扩充日志的异常等级标记,以及根据所述交叉熵损失对所述异常等级训练模型集进行迭代,直到所述异常等级训练模型集收敛,得到日志异常检测模型;
检测模块505,用于获取待检测系统的待检测日志,并将所述待检测日志输入所述日志异常检测模型进行检测,输出所述待检测日志对应的异常等级,并将待检测日志对应的异常等级作为当前系统运行状态的分析结果。
具体的,所述获取模块501还用于:
解析所述无标记日志,得到多个带有不同语义的日志字段;
根据预置语义结构先验知识和所述日志字段的出现频率,从所述日志字段中筛选与异常等级相关的关键字段;
获取所述关键字段对应的一个或多个同义字段,并以所述同义字段替换对应的关键字段;
根据随机字段处理策略,对所述同义字段与除所述关键字段外的其他日志字段进行拼接,得到多个对应的扩充日志,其中,所述随机字段处理策略包括对所述其他日志字段进行替换、删除、插入或交换。
具体的,所述训练模块502还包括:
构建单元5021,用于将所述标记日志、所述无标记日志、所述扩充日志中的各日志数据的长度统一调整为预设长度,并构建对应的数据向量;
特征提取单元5022,用于根据所述数据向量的长度,确定所述数据向量的特征维度,并根据所述特征维度对所述数据向量进行语义特征提取,得到初始语义特征;
概率分布生成单元5023,用于对所述初始语义特征进行突出特征的筛选及组合,得到最终语义特征,并根据所述最终语义特征计算所述标记日志、所述无标记日志与所述扩充日志的异常等级的概率分布并输出。
具体的,所述计算模块503还包括:
第一计算单元5031,用于根据第一概率分布与所述标记日志的预设异常等级标记,计算各标记日志的异常等级的正确预测概率;
第二计算单元5032,用于根据预置模型训练参数与所述正确预测概率,计算所述第一概率分布的交叉熵损失,以用于衡量分类模型对所述标记日志的异常等级预测与所述标记日志的真实异常等级之间的差异。
具体的,所述生成模块504还包括:
迭代单元5041,用于根据所述交叉熵损失确定各标记日志对应的正确预测概率;判断是否存在大于预设概率阈值的正确预测概率;若是,则删除大于所述概率阈值的正确预测概率对应的第一概率分布,并继续对所述日志异常检测模型进行迭代,否则直接对所述日志异常检测模型进行迭代,并在所述日志异常检测模型迭代后更新所述模型训练参数;
模型生成单元5042,用于计算所述交叉熵损失与所述一致性损失的和,得到对应的最终损失值,并判断所述最终损失值是否小于预设的最终损失阈值;若所述最终损失值小于所述最终损失阈值,则所述异常等级训练模型集收敛并停止迭代,得到日志异常检测模型。
具体的,所述正确预测概率的计算公式为:
当所述标记日志中的数据量小于预设正常数据量范围时,
当所述标记日志中的数据量大于所述正常数据量范围时,所述
具体的,所述检测模块505还包括:
获取单元5051,用于获取待检测系统的待检测日志,其中所述待检测日志中包含多条日志信息,所述日志信息包含系统运行管理优先级的标识信息;
检测单元5052,用于将所述待检测日志输入所述日志异常检测模型进行检测,并通过所述日志异常检测模型预测所述待检测日志的异常等级;
筛选单元5053,用于筛选异常等级高于预设异常等级阈值的待检测日志,并根据所述标识信息,从筛选的待检测日志中确定优先级大于预设优先级阈值的日志信息;
分析结果生成单元5054,用于将所述优先级大于预设优先级阈值的日志信息进行高亮显示,并将所述高亮显示的日志信息与除高亮显示的日志信息外的其他日志信息对应的异常等级作为当前系统运行状态的分析结果。
本发明实施例中,通过获取标记日志与未标记日志,再对系统异常情况下产生的未标记日志进行扩充,在保证数据差异性的情况下,增加异常的未标记日志的数量,在后面检测模型的训练过程中增加模型抵抗过拟合的能力;将标记日志、未标记日志、扩充日志分别输入异常等级训练模型集中的三个对应的异常等级训练模型中进行训练,以用于预测三者的各异常等级概率分布;在日志异常检测模型的迭代训练过程中,随着未标记数据的增加,逐步删除训练的第一概率分布,最后生成的异常日志检测模型可用于预测系统运行过程中产生的待检测日志对应的异常等级,得到系统运行状态的分析结果,使模型抵抗过拟合强度提升,检察模型的检测难度下降。
上面图5和图6从模块化功能实体的角度对本发明实施例中的系统异常检测装置进行详细描述,下面从硬件处理的角度对本发明实施例中设备进行详细描述。
图7是本发明实施例提供的一种系统异常检测设备的结构示意图,该系统异常检测设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对系统异常检测设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在系统异常检测设备700上执行存储介质730中的一系列指令操作。
系统异常检测设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图7示出的系统异常检测设备结构并不构成对系统异常检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述系统异常检测方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。