APP下载

基于CNN和Bi-LSTM的无监督日志异常检测模型

2023-11-29尹春勇张杨春

计算机应用 2023年11期
关键词:日志语义向量

尹春勇,张杨春

基于CNN和Bi-LSTM的无监督日志异常检测模型

尹春勇*,张杨春

(南京信息工程大学 计算机学院、网络空间安全学院,南京 210044)( ∗ 通信作者电子邮箱yinchunyong@hotmail.com)

日志能记录系统运行时的具体状态,而自动化的日志异常检测对网络安全至关重要。针对日志语句随时间演变导致异常检测准确率低的问题,提出一种无监督日志异常检测模型LogCL。首先,通过日志解析技术将半结构化的日志数据转换为结构化的日志模板;其次,使用会话和固定窗口将日志事件划分为日志序列;再次,提取日志序列的数量特征,使用自然语言处理技术对日志模板进行语义特征提取,并利用词频-词语逆频率(TF-IWF)算法生成加权的句嵌入向量;最后,将特征向量输入一个并列的基于卷积神经网络(CNN)和双向长短期记忆(Bi-LSTM)网络的模型中进行检测。在两个公开的真实数据集上的实验结果表明,所提模型较基准模型LogAnomaly在异常检测的F1‑score上分别提高了3.6和2.3个百分点。因此LogCL能够对日志数据进行有效的异常检测。

异常检测;深度学习;日志分析;词嵌入;卷积神经网络;双向长短期记忆网络

0 引言

随着移动通信设备和互联网行业的快速发展,计算机软件系统的规模越来越大,各种漏洞和故障频繁发生,外部故障如恶意攻击和内部故障如内存过载等都有可能导致系统中止,而系统中极小的问题可能会影响用户的体验,甚至造成巨大的经济损失,因此准确、及时地检测异常对于提高大型系统的可用性和可靠性至关重要。异常检测[1]以数据为基础,通过模型和算法对偏离值进行检测,旨在发现异常数据。为了方便故障的识别,大多数系统都会在控制台生成日志[2]。日志数据记录系统运行期间的详细信息和应用程序的行为,当系统发生故障时,操作人员可以通过日志记录的事件检测和调试故障维护系统的安全,因此日志是异常检测最重要的信息源之一。

虽然系统日志对故障诊断有很大的帮助,但是当前计算机系统具有高度复杂性,产生的日志数量非常大,例如商业云程序每小时大约产生十亿字节的数据[3]。处理日志异常的传统方法是靠操作人员匹配正则表达式或搜索关键词如“failure”来手动分析日志,这种方法非常耗时且容易出错,因此依赖人工分析海量数据不现实。多年来,研究者提出了一系列基于数据驱动的方法,通过分析日志数据自动检测异常,和手动检测相比,这些方法实现了更高效的检测。例如,文献[4-5]中将每种日志事件视为一个独立的维度,通过机器学习技术挖掘日志序列的数量特征进行异常检测,此类方法反映了序列的模式特征,但没有考虑日志文本的语义信息,容易将新类型模板错误地标记为异常,导致了较高的误报率。文献[6-7]中基于日志模板提取语义特征,在一定程度上提高了异常检测的准确率。日志由单词组成,因此单词的语义决定了日志的语义,但现有方法只是简单地采用词嵌入模型将单词映射到词向量中,忽略了单词和日志语句之间的关系。当前,如何高效地检测系统异常仍然是一个巨大的挑战,这是由系统运行的特点决定的。首先,计算机系统大部分时间都处于正常运行的状态,异常状态比较罕见,这使正常日志和异常日志的分布并不均匀,导致日志数据不平衡问题,因此普通的二元分类机制难以在异常检测中取得较好的效果。其次,在软件的开发和维护中,会产生各种各样的日志和复杂的异常模式,日志语句会不断发生变化,日志语句的这种不稳定性导致异常检测准确率较低。最后,当训练数据平衡且足够时,监督方法通常非常准确,但由于缺乏足够的异常数据而不适用于异常检测;而无监督方法因对未知异常的感知而适用于异常检测,但是大多数方法需要提高准确性,因此本文重点研究无监督日志异常检测。为了提高算法性能,提出一种无监督日志异常检测模型LogCL。LogCL包括三个阶段:日志解析、特征提取和异常检测。实验结果表明,LogCL具有通用性和优异的检测性能,弥补了传统方法的不足。

本文的主要工作如下:

1)提出一种新型的端到端日志异常检测模型,只需要使用部分正常的日志数据进行训练,模型就能较好地学习到正常日志流的执行模式,避免了异常检测中数据不平衡的问题,不需要异常日志来构建检测模型,能减少模型构建的工作量;

2)设计了两种特征提取方式,分别提取日志序列的数量特征和语义特征,在语义表示中,充分考虑单词的重要性程度对日志语句的影响,使模型对日志语言的演变具有鲁棒性;

3)结合卷积神经网络(Convolutional Neural Network, CNN)和双向长短期记忆(Bi-directional Long Short-Term Memory, Bi-LSTM)网络构建了一个并列的异常检测模型,并对两个真实环境下收集的日志数据集进行评估,结果验证了LogCL能够有效检测到各种故障。

1 相关工作

在生产实践中,系统日志已经被广泛用于异常检测,目前在日志异常检测方面的主要技术是传统的机器学习和深度学习。

传统的机器学习技术能够从各种数据中挖掘隐藏信息。Lou等[4]首次将不变量挖掘(Invariants Mining, IM)使用到日志异常检测中,通过算法从事件计数向量中挖掘稀疏整数值的不变量,挖掘出的不变量能够揭示程序工作流程中固有的线性特征,若检测的日志序列不遵循不变量原则就被判定为异常。Lin等[5]使用凝聚层次聚类技术将类似的日志序列分组到集群中并且创建知识库,通过检查新集群中的代表日志序列是否和已有集群中的代表序列相同来判定异常。Xu等[8]使用主成分分析法检测异常,把日志事件矢量化为事件计数向量,将日志序列投影到正常空间和异常空间。对于传入的日志序列,根据投影后日志序列所属的空间将它识别为正常或异常。Liang等[9]训练支持向量机(Support Vector Machine, SVM)分类器来检测日志事件故障。在高维空间中构造决策超平面,使超平面和不同类别中最近的数据点之间的距离最大化,分离出不同的类,从而检测异常。最近,Han等[10]提出鲁棒性在线改进异常检测框架ROEAD(Robust Online Evolving Anomaly Detection)和OES(Online Evolving SVM)算法,利用自然语言处理技术去除噪声的影响,提高了SVM算法在日志异常检测中的性能。

为解决基于机器学习的方法通常依赖人工设计的特征表示日志数据的问题,深度学习逐渐受到研究者的广泛关注,基于深度学习的日志异常检测技术迅速发展。当前,学术界提出了一系列基于监督学习的方法,监督方法将异常检测视为正常和异常之间的二分类任务。Lu等[11]利用CNN自动学习系统日志中的事件,CNN能够利用多个过滤器挖掘日志上下文中的关系以及捕获日志模板语义嵌入中的相关性。Li等[12]提出的SwissLog模型利用BERT(Bidirectional Encoder Representation from Transformers)语言模型编码日志模板,将语义信息和日志之间的时间间隔信息相结合,训练了一个基于注意力机制的Bi-LSTM网络检测异常。该模型通过对不同事件赋予权重,自动分析事件的重要性,能够解决日志格式变化的问题。Huang等[13]首次将Transformer模型应用到日志异常检测的任务中,利用分层Transformer对日志模板序列和参数值进行建模,设计注意力机制将语义信息和参数值合并以进行分类,对不稳定的日志数据具有鲁棒性。虽然监督方法能够正确地诊断系统的状况,但它最大的缺陷是在训练阶段需要大量的正常和异常数据,而人工标注数据是非常耗时的一项工作,这在现实生产环境中不易实现;而且人工标注数据有可能出现标注错误,这会导致模型在检测时产生误报,无法达到很好的效果。

由于监督学习存在无法克服的缺点,相关研究者也进行了无监督和半监督方法的研究。Du等[14]提出的DeepLog框架把日志信息当作自然语言序列处理,从正常执行流中自动学习日志模式,通过确定传入的日志事件是否违反堆叠式LSTM模型的预测结果来检测异常。Meng等[6]设计了一种基于同义词和反义词的模板表示方法template2vec,将传入的日志事件与现有的模板匹配,而不是直接将它们标记为异常,从而提高了准确性。Yang等[15]提出了基于概率标签估计的半监督学习框架PLELog,采用聚类方法HDBSCAN[16]对未标记日志序列的标签进行概率估计,解决了标签不足的问题;并设计了一种基于注意力机制的门控循环单元神经网络进行异常检测。Li等[17]使用深度时间卷积网络从日志事件中提取细粒度特征,并开发了一个新型联邦学习框架以支持互联网设备建立更全面的异常检测模型。Duan等[18]使用一种基于值函数的强化学习方法Q‑learning[19]构建异常检测模型,从正常执行中学习日志模式的有向非循环图,求解每个日志执行路径的Q值,并使用Q值确定日志序列是否异常。

考虑到日志语句会随着时间而改变,现有的方法无法充分利用日志的语义特征,当系统更新引入新类型日志模板时,现有的模型难以准确检测出新类型的日志模板,为此,提出了LogCL模型解决这一问题。

2 无监督日志异常检测模型LogCL

本文LogCL模型的框架如图1所示,主要包括离线训练和在线检测两个阶段,每个阶段主要包括三个步骤:预处理、特征提取和异常检测。

2.1 预处理

日志数据详细记录系统的状态和性能指标,而不同系统产生的日志形式区别大、异构复杂性高,这给异常检测带来了一定的困难,图2显示了3种不同的系统日志。

可以看出,一条日志由HEADER和MESSAGE两部分组成。其中,HEADER包含不同的字段如时间戳、消息类型、消息级别如“INFO”等。MESSAGE是一种没有格式约束的文本,由常量部分和变量部分组成:常量部分即描述日志事件的关键字,变量部分是随着系统运行而动态变化的参数。使用原始日志事件难以从海量日志数据中提取出有价值的信息,因此需要日志解析技术从半结构化日志数据中提取出结构化的日志模板,去除无关的冗余信息和噪声。日志解析通过删除变量参数保留常量关键字提取日志模板,这一过程可以由式(1)表示:

其中:F表示映射函数,将日志事件Li映射到日志模板Ti。当前日志解析方法基于数据挖掘技术可以分为三类:基于频繁模式挖掘、启发式和聚类。例如,Logram[20]利用n-gram字典实现高效的日志解析;LogStamp[21]考虑到了语义,将日志解析问题转换为序列标记问题,能够在线自动解析日志。基于启发式的方法认为日志和一般的文本数据相比具有一些独有的特征,在准确性和时间效率方面优于其他技术,因此本文使用基于启发式方法的日志解析器Drain[22]。Drain利用固定深度解析树维护日志组,通过遍历树中的叶节点形成日志模板,能够以流式的方式解析日志。图3展示了将HDFS日志事件映射到模板的过程,一条日志“Verification succeeded for blk_-2827716238972737794”被替换为模板“Verification succeeded for<*>”,其中参数被抽象为<*>符号。

图2 日志示例

图3 HDFS日志解析过程

此后,对解析出来的日志模板进行数据处理,以便后续进行特征提取。首先删除非字母的内容,包括标点符号、空格、下画线、换行符等。未登录词(Out Of Vocabulary, OOV)是指训练语料库中没有出现过的词,又称为集外词。日志模板中存在一些罕见的长词难以提取信息,为了更好地解决OOV问题,使用自然语言处理中的子词分割方法来减少词汇量,例如长词“addStoredBlock”被拆分为3个频繁出现的子词“add”“stored”“block”,通过这种方法可以有效减少OOV单词的数量。停用词是在信息检索工作中为了提高搜索效率而忽略掉的某些词,例如“is”“the”等,这些词对日志数据的处理没有价值,利用Python中的NLTK库去除停用词。

2.2 特征提取

预处理之后,以日志模板作为输入来提取特征。本文从两个方面进行特征提取,即数量特征提取和语义特征提取。

2.2.1数量特征提取

2.2.2语义特征提取

日志事件的大部分内容是英文单词,这些单词自身都有语义,例如“succeeded”和“failed”的语义完全不同,“finished”和“completed”有着相近的语义。随着计算机系统的升级等,日志事件的语法会产生改变,但是发生异常时的语义是相同或者相近的。因此日志的向量表示需要满足两个条件:一方面应当使语义相似的单词具有空间上相近的向量,即向量之间的余弦相似度较高;另一方面应该具备可区分性,即能够表示出不同日志事件之间的语义差异。在大量文本语料库上预先训练过的通用语言模型可以保留一般的文本结构,当前部分工作如PLELog[15]和CNN-BiLSTM[23]利用Word2Vec或GloVe来提取词向量,这两种模型都是以单词作为基本单位进行训练的,这种方式仅能对词库中的单词进行向量表示而无法处理OOV的情况,并且也难以处理同一单词的变形如ing形式。而FastText[24]使用更小的单位即字母来训练词向量,考虑了局部词序特征,可以有效处理长词和OOV单词,使同一单词的不同形式拥有相似的词向量。因此本文使用自然语言模型FastText在Common Crawl和维基百科语料库预训练的词向量,从预处理后的日志事件中提取每个单词的语义信息。

FastText算法可以快速捕获自然语言中单词之间的内在关系,该模型首先使用-gram方法,考虑字符级别的信息,生成用来表示语料的向量,并且使用分层softmax线性分类器计算概率分布,大幅减少了模型训练的时间。损失函数为:

其中:为样本个数;为第个样本的正则化特征,为第个样本对应的特征标签;和是权重矩阵;为softmax函数。

在获取每个单词的词嵌入向量之后,将每一条日志事件都看作自然语言中的句子。采用词频-词语逆频率(Term Frequency-Inverse Word Frequency, TF-IWF)算法[25]表示每个单词和日志事件的关系。TF-IWF改进了词频-逆向文件频率算法,是一种广泛应用于信息检索和数据挖掘的加权技术,可以有效地衡量单词在句子中的重要性,其中,TF词频矩阵度量一个单词与给定文本的关联,IWF度量该单词的重要性,计算公式如下:

每个日志事件的句嵌入向量都有相同的维度,语义特征提取模块使LogCL能够区分不同的日志事件,处理不稳定的日志数据。

2.3 异常检测

本文基于CNN和Bi-LSTM构造了并列异常检测模型CL,如图1所示,其中CL1负责处理日志计数向量,CL2负责处理语义特征向量,将CL1和CL2的输出结果进行合并操作之后输入到全连接层进行线性变换得到预测的结果。异常检测的网络结构具体如图4所示。

图4 异常检测网络结构

由于CNN的卷积层可以提取局部特征信息,在日志序列中,相邻的日志具有一定的相关性,因此本文采用一维卷积1D-CNN[26]来学习日志序列内部的模式,1D-CNN只执行一维卷积即标量的乘法和加法,它的配置简单且有效,适合用于从固定长度的片段中提取特征。使用一维卷积核扫描日志序列的嵌入向量,采用两端补0的方式解决维度不平衡问题。

2.4 复杂度分析

3 实验与结果分析

3.1 实验环境与数据集

本实验开发语言为Python 3.8,使用深度学习框PyTorch 1.10.2构建模型,在Windows 11 (64 bit)、AMD Ryzen 7 5800 8‑Core处理器、16 GB内存的环境下运行,使用GeForce RTX 3060 GPU加速模型训练。

为了训练和评估所提方法,使用了2个从真实应用环境中采集的数据集:HDFS和BGL,以上数据集均从开放的日志数据集合Loghub(https://github.com/logpai/loghub)中获得,具体信息如表1所示。

表1 两个数据集的统计信息

HDFS:该数据集从亚马逊EC2平台上203个节点的集群收集,共包含11 175 629条日志事件,由Hadoop领域专家按照block_id标识符分组进行标记,共分成575 061条序列,其中异常序列16 838条,HDFS的block_id记录每个数据块操作如写入、复制、删除等。

BGL:该数据集由劳伦斯利弗莫尔国家实验室的BlueGene/L超级计算机系统记录,包含4 747 963条日志信息,其中有348 460条异常日志。

3.2 评估指标

采用精确度、召回率和F1-score(1)作为评价指标:精确度是指正确识别为异常的日志序列占模型识别为异常的所有序列的比值;召回率是正确识别为异常的日志序列占所有实际异常的比值;F1-score是精确度和召回率的调和平均数。它们的计算公式如下:

其中:(True Positive)表示异常日志序列被模型判定为异常的数量;(False Negative)表示异常日志序列被模型判定为正常的数量;(False Positive)表示正常日志序列被模型判定为异常的数量。

3.3 实验设置

3.4 实验结果

本文选择三种基于机器学习的方法(LogCluster[5]、ADR[28]和OES[10])和五种基于深度学习的方法(DeepLog[14]、LogAnomaly[6]、LogBERT[7]、CNN-BiLSTM[23]和LogRobust[29])作为基准模型,详情如表2所示。

表2 基准模型详情

实验结果如表3所示,可以看出,使用日志语义表示的方法的鲁棒性普遍较好,而只提取数量特征的方法LogCluster效果较差,这表明从语义角度理解日志序列的内容可以提高对异常的检测率。在两个数据集上,LogCL的F1-score指标都超过了0.98,领先所有的无监督方法,比使用语义特征提取的基准模型LogAnomaly分别高出3.6和2.3个百分点。这是由于LogAnomaly仅仅构造同义词和反义词集,无法识别到专业领域的词,从而只能捕获到有限的语义特征;而LogCL使用的FastText不需要操作人员手动更新词库,并且考虑到了单词的重要性程度对日志语句的影响,使日志语句的语义特征表示更加准确,从而能获得最佳的性能。CNN-BiLSTM方法在异常检测部分同样结合了CNN和Bi‑LSTM,不同的是该方法使用的是并行结构,利用CNN和Bi‑LSTM分别来处理参数和日志模板;而本文使用的是串行结构,同时学习日志的局部特征和前后依赖性特征。CNN‑BiLSTM方法采用Word2Vec提取词向量,但Word2Vec只能对词库中的单词进行向量化,难以处理OOV的情况,并且仅仅表示了单词的词向量,忽略了单词和日志语句之间的联系,因此该方法的性能不佳。

表3 HDFS和BGL数据集上的实验结果

在HDFS数据集上,LogCL表现出了较好的检测效果,精确度和召回率达到了0.985以上,LogCluster取得了最高的精确度,但是召回率过低,导致F1-score较低,说明该方法遗漏了很多异常,而对异常检测而言,召回率是比精确度更重要的指标,因为漏检异常可能会导致巨大的经济损失和其他的潜在危险。虽然监督方法LogRobust总体上比无监督方法表现好,但是监督方法需要标记大量的异常数据,标记工作需要系统领域的专业知识,而LogCL只需要使用正常的数据进行训练,这在实际生产中非常容易收集,因为当系统正常运行而没有任何警报时,所产生的日志都可以视为正常日志,因此更具有实用性。在BGL数据集上,LogCL表现出了最好的异常检测效果,F1-score达到了0.983,比ADR高出1.6个百分点。ADR的召回率达到了1.000,说明该方法可以追踪所有的异常,但是它的精确度不高,错误地将正常日志序列判定为异常,导致模型产生假警报,从而浪费操作人员大量的时间。在这个数据集上,LogRobust的效果不如部分无监督方法,说明该方法通用性不强。

为了研究LogCL对新类型日志的检测效果,统计了训练数据中出现的日志模板数量,如表1所示。HDFS的训练数据中共出现15种模板,占总数的50.0%,BGL的训练数据中共出现185种模板,占总数的48.9%,可以看出测试数据中的新类型模板数量都在总数的一半或以上,对于日志数据的这种不稳定性,LogCL可以通过学习OOV词的语义特征来判定新类型模板是否异常。为了进一步评估模型对新类型模板的有效性,在HDFS上使用3 000~6 000条序列进行训练,表4统计了新模板的比例和检测结果,可以看到随着训练比率的增加,在测试集上新类型模板的占比从56.7%降低到46.7%,模型表现出了出色的效果,即使在新模板占比高达56.7%时,F1-score也达到了0.969,由于经过语义表示的正常日志事件在发生变化后,它的语义向量仍然可以被表示为和原始事件相似的向量,而异常事件的向量和正常事件的向量相差较大,因此LogCL对不稳定的日志事件具有鲁棒性。

3.5 参数分析

图5展示了两个数据集中候选模板数对检测效果的影响,将其他参数设置为默认值。可以看出当过小时,模型可以检测到所有的异常数据,但代价是将大量正常日志也判定为异常,当过大时会遗漏很多异常。在HDFS数据集上,当参数在6~16时,模型表现出了较高的性能,在BGL数据集上,=20时达到了很好的效果,超过100时检测效率下降。实验结果表明,通过合理设置参数可以平衡精确度和召回率,从而得到最优的F1-score。

表4 对新类型日志的评估结果

图5 候选模板数对模型性能的影响

3.6 消融实验

为了评估每个模块对实验结果的影响,在HDFS数据集上进行了三个方面的消融实验,结果如表5所示,其中:A模型是在LogCL中去除语义特征提取模块;B模型是在LogCL中去除日志计数向量即数量特征提取模块;C模型是在异常检测算法中去除1D-CNN层。可以看出语义特征提取使模型检测的F1-score性能提高了4.1个百分点,这表明将日志事件视为自然语言来处理效果很好。日志计数向量和1D‑CNN使模型的F1-score分别提高了0.9和0.7个百分点,消融实验的结果表明这三个模块对异常检测都有一定的作用。

表5 消融实验结果

4 结语

为了解决日志数据的类不平衡问题,本文提出了一种无监督异常检测模型LogCL,通过判定数据是否符合正常日志流运行模式来检测异常。针对日志语句随时间演变导致异常检测准确率低的问题,使用自然语言处理技术提取日志中单词的语义特征,通过TF-IWF算法得到加权的句嵌入向量,语义特征提取使得模型能够应对新类型的日志模板。结合CNN和Bi-LSTM的神经网络能够同时学习到日志的局部特征和内部的前后依赖性特征,实验结果表明,LogCL在异常检测任务上具有较好的效果。本文语义特征提取的重点对象是单条日志语句,在生产实际中,操作人员有时会基于多条日志一起分析故障,因此在以后的工作中将研究多类型日志的语义特征表示。当前大型系统日志的规模不断扩大,日志模板数量随之增加,未来也将探索更高效的语义提取方法从而减少日志异常检测的执行时间和内存计算成本。

[1] RUFF L, KAUFFMANN J R, VANDERMEULEN R A, et al. A unifying review of deep and shallow anomaly detection[J]. Proceedings of the IEEE, 2021, 109(5): 756-795.

[2] HE S, HE P, CHEN Z, et al. A survey on automated log analysis for reliability engineering[J]. ACM Computing Surveys, 2022, 54(6): No.130.

[3] LE V H, ZHANG H. Log-based anomaly detection with deep learning: how far are we?[C]// Proceedings of the 44th International Conference on Software Engineering. New York: ACM, 2022: 1356-1367.

[4] LOU J G, FU Q, YANG S, et al. Mining invariants from console logs for system problem detection[C]// Proceedings of the 2010 USENIX Annual Technical Conference. Berkeley: USENIX Association, 2010: 1-14.

[5] LIN Q, ZHANG H, LOU J G, et al. Log clustering based problem identification for online service systems[C]// Proceedings of the IEEE/ACM 38th International Conference on Software Engineering Companion. New York: ACM, 2016: 102-111.

[6] MENG W, LIU Y, ZHU Y, et al. LogAnomaly: unsupervised detection of sequential and quantitative anomalies in unstructured logs[C]// Proceedings of the 28th International Joint Conference on Artificial Intelligence. California: ijcai.org, 2019: 4739-4745.

[7] GUO H, YUAN S, WU X. LogBERT: log anomaly detection via BERT[C]// Proceedings of the 2021 International Joint Conference on Neural Networks. Piscataway: IEEE, 2021: 1-8.

[8] XU W, HUANG L, FOX A, et al. Detecting large-scale system problems by mining console logs[C]// Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles. New York: ACM, 2009: 117-132.

[9] LIANG Y, ZHANG Y, XIONG H, et al. Failure prediction in IBM BlueGene/L event logs[C]// Proceedings of the 7th IEEE International Conference on Data Mining. Piscataway: IEEE, 2007: 583-588.

[10] HAN S, WU Q, ZHANG H, et al. Log-based anomaly detection with robust feature extraction and online learning[J]. IEEE Transactions on Information Forensics and Security, 2021, 16: 2300-2311.

[11] LU S, WEI X, LI Y, et al. Detecting anomaly in big data system logs using convolutional neural network[C]// Proceedings of the IEEE 16th International Conference on Dependable, Autonomic and Secure Computing/ IEEE 16th International Conference on Pervasive Intelligence and Computing/ IEEE 4th International Conference on Big Data Intelligence and Computing/ IEEE 3rd Cyber Science and Technology Congress. Piscataway: IEEE, 2018: 151-158.

[12] LI X, CHEN P, JING L, et al. SwissLog: robust and unified deep learning based log anomaly detection for diverse faults[C]// Proceedings of the IEEE 31st International Symposium on Software Reliability Engineering. Piscataway: IEEE, 2020: 92-103.

[13] HUANG S, LIU Y, FUNG C, et al. HitAnomaly: hierarchical transformers for anomaly detection in system log[J]. IEEE Transactions on Network and Service Management, 2020, 17(4): 2064-2076.

[14] DU M, LI F, ZHENG G, et al. DeepLog: anomaly detection and diagnosis from system logs through deep learning[C]// Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2017: 1285-1298.

[15] YANG L, CHEN J, WANG Z, et al. Semi-supervised log-based anomaly detection via probabilistic label estimation[C]// Proceedings of the IEEE/ACM 43rd International Conference on Software Engineering. Piscataway: IEEE, 2021: 1448-1460.

[16] McINNES L, HEALY J, ASTELS S. HDBSCAN: hierarchical density based clustering[J]. The Journal of Open Source Software, 2017, 2(11): No.205.

[17] LI B, MA S, DENG R, et al. Federated anomaly detection on system logs for the internet of things: a customizable and communication-efficient approach[J]. IEEE Transactions on Network and Service Management, 2022, 19(2): 1705-1716.

[18] DUAN X, YING S, YUAN W, et al. QLLog: a log anomaly detection method based on Q-learning algorithm[J]. Information Processing and Management, 2021, 58(3): No.102540.

[19] CLIFTON J, LABER E. Q-learning: theory and applications[J]. Annual Review of Statistics and Its Application, 2020, 7: 279-301.

[20] DAI H, LI H, CHEN C S, et al. Logram: efficient log parsing using-gram dictionaries[J]. IEEE Transactions on Software Engineering, 2022, 48(3): 879-892.

[21] TAO S, MENG W, CHENG Y, et al. LogStamp: automatic online log parsing based on sequence labelling[J]. ACM SIGMETRICS Performance Evaluation Review, 2022, 49(4): 93-98.

[22] HE P, ZHU J, ZHENG Z, et al. Drain: an online log parsing approach with fixed depth tree[C]// Proceedings of the 2017 IEEE International Conference on Web Services. Piscataway: IEEE, 2017: 33-40.

[23] 孙嘉,张建辉,卜佑军,等.基于CNN-BiLSTM模型的日志异常检测方法[J].计算机工程,2022,48(7):151-158. (SUN J, ZHANG J H, BU Y J, et al. Log anomaly detection method based on CNN-BiLSTM model[J]. Computer Engineering, 2022, 48(7): 151-158.)

[24] GRAVE E, BOJANOWSKI P, GUPTA P, et al. Learning word vectors for 157 languages[C]// Proceedings of the 11th International Conference on Language Resources and Evaluation. [S.l.]: European Language Resources Association, 2018: 3483-3487.

[25] 王小林,杨林,王东,等. 改进的TF-IDF关键词提取方法[J]. 计算机科学与应用, 2013, 3(1): 64-68.(WANG X L, YANG L, WANG D, et al. Improved TF-IDF keyword extraction algorithm[J]. Computer Science and Application, 2013, 3(1): 64-68.)

[26] KIRANYAZ S, AVCI O, ABDELJABER O, et al. 1D convolutional neural networks and applications: a survey[J]. Mechanical Systems and Signal Processing, 2021, 151: No.107398.

[27] LINDEMANN B, MASCHLER B, SAHLAB N, et al. A survey on anomaly detection for technical systems using LSTM networks[J]. Computers in Industry, 2021, 131: No.103498.

[28] ZHANG B, ZHANG H, MOSCATO P, et al. Anomaly detection via mining numerical workflow relations from logs[C]// Proceedings of the 2020 International Symposium on Reliable Distributed Systems. Piscataway: IEEE, 2020: 195-204.

[29] ZHANG X, XU Y, LIN Q, et al. Robust log-based anomaly detection on unstable log data[C]// Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. New York: ACM, 2019: 807-817.

Unsupervised log anomaly detection model based on CNN and Bi-LSTM

YIN Chunyong*, ZHANG Yangchun

(,,210044,)

Logs can record the specific status of the system during the operation, and automated log anomaly detection is critical to network security. Concerning the problem of low accuracy in anomaly detection caused by the evolution of log sentences over time, an unsupervised log anomaly detection model LogCL was proposed. Firstly, the log parsing technique was used to convert semi-structured log data into structured log templates. Secondly, the sessions and fixed windows were employed to divide log events into log sequences. Thirdly, quantitative characteristics of the log sequences were extracted, natural language processing technique was used to extract semantic features of log templates, and Term Frequency-Inverse Word Frequency (TF-IWF) algorithm was utilized to generate weighted sentence embedding vectors. Finally, the feature vectors were input into a parallel model based on Convolutional Neural Network (CNN) and Bi-directional Long Short-Term Memory (Bi-LSTM) network for detection. Experimental results on two public real datasets show that the proposed model improves the anomaly detection F1-score by 3.6 and 2.3 percentage points respectively compared with the baseline model LogAnomaly. Therefore, LogCL can perform effectively on log anomaly detection.

anomaly detection; deep learning; log analysis; word embedding; Convolutional Neural Network (CNN); Bi-directional Long Short-Term Memory (Bi-LSTM) network

1001-9081(2023)11-3510-07

10.11772/j.issn.1001-9081.2022111738

2022⁃11⁃22;

2023⁃03⁃19;

尹春勇(1977—),男,山东潍坊人,教授,博士生导师,博士,主要研究方向:网络空间安全、大数据挖掘、隐私保护、人工智能、新型计算; 张杨春(1999—),女,江苏南通人,硕士研究生,主要研究方向:异常检测、深度学习、日志分析。

TP391.1

A

2023⁃03⁃23。

YIN Chunyong, born in 1977, Ph. D., professor. His research interests include cyberspace security, big data mining, privacy protection, artificial intelligence, new computing.

ZHANG Yangchun, born in 1999, M. S. candidate. Her research interests include anomaly detection, deep learning, log analysis.

猜你喜欢

日志语义向量
向量的分解
一名老党员的工作日志
聚焦“向量与三角”创新题
扶贫日志
语言与语义
游学日志
“上”与“下”语义的不对称性及其认知阐释
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
认知范畴模糊与语义模糊