2. 复旦大学 计算机科学技术学院, 上海 201203
2. School of Computer Science, Fudan University, Shanghai 201203, China
日志数据记录了互联网系统运行时的状态以及任务的开始与结束等重要事件,其易于获取且含有丰富的信息,已经成为系统运维领域的重要数据源。系统运行产生的日志数据可被视作时序事件序列,利用序列模式挖掘技术可从时序事件序列中发现有意义的序列模式。挖掘得到的模式结果能够有效帮助工程师理解系统行为,还可进一步用于异常检测、故障诊断与原因分析等任务。
序列模式挖掘是数据挖掘领域中的重要研究课题之一,由AGRAWAL和SRIKANT[1]于1995年提出。传统的序列模式挖掘算法致力于发现序列中频繁出现的序列模式,但是该类算法生成的模式结果集数目众多且信息冗余,不利于人工查看分析,因此从序列中挖掘出高质量低冗余的序列模式具有实际意义。为了减少模式结果的数目并降低模式结果冗余度,常用的方法是筛选出原始结果集中的部分模式作为最终结果返回,使得最终结果中的模式在充分代表原序列中典型行为模式的同时有效降低结果集数目。文本压缩中广泛使用的最小描述长度(Minimum Description Length,MDL)准则[2]是一种有效的筛选准则,该准则使得模式结果集中的复杂度和其代表序列的能力之间达到良好平衡。
目前,文献[3-5]将MDL准则应用于序列模式挖掘,该类算法的基本思路是通过设计编码方案,采用一组模式集合作为字典对原始序列进行编码。由于编码后所需的描述长度更少,因此该过程可视作对原始序列信息的压缩。通过寻找具有最佳压缩能力的集合作为结果返回,即可得到信息紧凑的模式结果。利用MDL准则筛选出的模式集合能够最大程度地压缩原始序列中的信息,因此该集合可以有效代表整个序列。然而,目前尚未有研究充分考虑时序序列中存在的时间规律性。日志数据记录的是系统运行过程中重复产生的行为,系统日志中事件与事件之间通常存在显著的时间规律性。相对于普通的序列模式而言,对相邻事件之间的时间关系进行总结的模式能够有效指示系统的运行状态,这说明发现具有时间规律的模式具有一定的实际意义和应用价值。
本文提出一种从时序日志序列中挖掘序列模式(Discovering sequential patterns from Temporal log Sequences,DTS)的算法,通过挖掘序列中能充分代表事件关系和时序关系的模式,有效增强模式结果集的表达能力。基于MDL准则设计一种编码方案,该方案以序列模式结果为字典集,在信息无损的前提下对原始时序序列进行编码,并通过计算编码前后的描述长度来衡量不同序列模式的有效性,从而发现高质量的序列模式结果集。
1 相关工作国内外有许多关于日志分析领域的研究工作,如文献[6]提出DeepLog算法,该算法将原始日志文本转换为事件序列,并利用日志序列对系统进行异常检测和原因分析。文献[7]提出CloudSeer算法,以日志序列为输入数据,并对系统运行时的工作流进行建模。文献[8]提出一种基于归一化特征判别的日志模板挖掘算法,将原始日志文本解析成不同的事件类型。文献[9]利用层次聚类算法挖掘频繁日志事件序列,并以此为基础对不同类型的故障进行预测。现有工作主要集中在通过日志分析进行自动化系统维护和故障分析[10]。本文旨在从原始日志序列中发现有意义的序列模式,且发现的模式可以用作在线监控和异常检测等任务。
序列模式挖掘问题作为数据挖掘领域广泛研究的重要课题之一,其具有很高的研究热度。传统的序列模式挖掘算法例如PrefixSpan算法[11]的生成模式结果集数目众多且信息冗余。为解决该问题,用于衡量模式结果质量的不同模式语义被提出,例如闭频繁模式集[12]、最大频繁模式集[13]、高效用模式集[14]以及top-k模式集[15]等。然而,上述算法挖掘得到的模式结果集依旧存在高度冗余。
为进一步降低结果集冗余度,Krimp算法[16]将MDL准则应用于模式挖掘,并以此为评价标准筛选出最能代表原始数据的模式结果集合。GoKrimp算法[4]进一步将MDL准则应用拓展到序列模式挖掘领域,后续的SQS算法[3]和CSC算法[5]均沿用了该思路。现有基于MDL准则的序列模式挖掘算法可以分为两类。GoKrimp算法[4]和SQS算法[3]仅考虑了事件与事件之间的关系,通过对长时间间隔惩罚的方式,选择事件间隔尽可能小的模式,得到的模式依旧存在一定的冗余且不能正确反映序列信息。CSC算法[5]将一条序列模式中相邻事件之间的事件间隔限制为固定长度,并且不允许同一条模式中出现两个同一类型的事件,极大地限制了模式的表达能力,且对于同一条序列需要更多的序列模式来表示。上述算法均未充分考虑处理时序序列中存在的时间规律性,相比之下,DTS利用模式中的事件关系以及相邻事件之间的时间规律性来获得更好的模式,并且能够发现冗余度较低的模式集合。
2 问题描述 2.1 相关定义定义1(时序日志序列) 一条时序日志序列是由n条具有时间戳的日志构成的有序序列
由于原始日志信息的形式为无结构文本,日志分析工作的一个常用预处理步骤是将无结构的日志文本解析为结构化的表示形式[17]。由同一条日志输出语句生成的日志信息具有高度相似的结构,反之亦然。基于此观察,一条原始日志文本可以被解析为事件类型和参数两个部分信息。其中,事件类型对应日志输出语句的文本常量部分,参数对应日志输出语句中变量部分的取值。由于Drain算法[18]与现有同类算法相比具有优异的性能,因此本文使用该算法解析原始日志序列。一条日志信息
定义2(事件类型集合) 事件类型集合
定义3(解析后时序日志序列) 通过对原始时序日志序列中的日志文本进行解析,得到解析后的时序日志序列
本文后续的模式挖掘工作以解析后的时序日志序列为输入数据。序列模式的相关定义如下:
定义4(序列模式) 一条序列模式
定义5(实例) 模式
定义6(支持度) 模式
定义7(时间间隔分布) 给定模式
定义8(单事件序列模式) 单事件序列模式
给定一条解析后时序日志序列
MDL准则的基本思想为:给定模型集合
对于本文的目标问题而言,模型
本节给出具体的编码方案和描述长度的计算方法。由于对序列编码是本文评价模式质量的手段而非目标,因此DTS更关注于编码后的描述长度而非具体的编码结果。
3.1 模式集合编码根据MDL准则,需要计算模型编码后的描述长度
$ L(\mathcal{P})=\sum\limits_{{P}_{i}\in \mathcal{P}}L({P}_{i}) $ | (1) |
下文介绍单条模式的描述长度
![]() |
下载CSV 表 1 模式集合的描述 Table 1 Description of the set of patterns |
以表 1中的模式
对于每个模式
对单条模式
根据前文所述,直方图的桶宽设置为序列
考虑相邻事件
$ L\left({h}_{k}^{i}\right)=\sum\limits_{j=0}^{\mathrm{c}\mathrm{n}{\mathrm{t}}_{\mathrm{b}\mathrm{i}\mathrm{n}\mathrm{s}}}\left(\mathrm{l}\mathrm{b}\mathrm{ }\mathrm{\Delta }\left(S\right)+\mathrm{l}\mathrm{b\;}\mathrm{s}\mathrm{u}\mathrm{p}{\mathrm{p}}_{i}+\left|C\right({h}_{i}^{k}\left[{b}_{j}\right]\left)\right|\right) $ | (2) |
对一条序列进行编码所需描述长度
$ L\left({P}_{i}\right)=m\times \mathrm{l}\mathrm{b}\left|\mathit \Sigma \right|+\left|C\right({P}_{i}\left)\right|+\sum\limits_{k=1}^{m-1}L\left({h}_{i}^{k}\right) $ | (3) |
假设表 1中模式集合描述的序列包含事件类型数目为
$ \begin{array}{l}L\left({P}_{1}\right)=3\mathrm{l}\mathrm{b\;}\mathrm{ }100+\left|C\left({P}_{1}\right)\right|+\left|C\left({h}_{1}^{1}\right[2]\right|+\\ \mathrm{l}\mathrm{b}\mathrm{ }\mathrm{\Delta }S+\mathrm{l}\mathrm{b}\mathrm{ }20+\left|C\left({h}_{1}^{1}\right[5]\right|+\mathrm{l}\mathrm{b}\mathrm{ }\mathrm{\Delta }S+\mathrm{l}\mathrm{b}\mathrm{ }20+\\ \left|C\left({h}_{1}^{2}\right[3]\right|+\mathrm{l}\mathrm{b}\mathrm{ }\mathrm{\Delta }S+\mathrm{l}\mathrm{b}\mathrm{ }20\end{array} $ | (4) |
给定模式集合
![]() |
Download:
|
图 1 时序事件序列编码结果 Fig. 1 Encoding result of a temporal event sequence |
使用模式集合
$ L\left(S\right|P)=\sum\limits_{{P}_{i}\in \mathcal{P}}\left[\mathrm{ }\right|C\left({P}_{i}\right)|+\mathrm{l}\mathrm{b}\mathrm{ }\mathrm{\Delta }(S)+\\ \sum\limits_{k=1}^{m-1}\left|C\right({h}_{i}^{k}\left[b\right]\left)\right|]\times \mathrm{s}\mathrm{u}\mathrm{p}{\mathrm{p}}_{i} $ | (5) |
文献[4]证明了基于MDL准则从序列
假定序列
定义9(添加操作) 将从序列中新发现的候选模式
定义10(改进操作) 给定集合
1)
2)
3)
若
一种常见的情况是候选模式
对于添加操作,被添加到
$ \mathrm{g}\mathrm{a}\mathrm{i}\mathrm{n}\left(P\right)=L(S, \mathcal{P})-L(S, \mathcal{P}\bigcup P) $ | (6) |
候选模式集
算法1 候选模式集初始化Initialize
输入 序列
输出 候选模式集
1.
2.for
3.创建模式
4.while(
5.
6.end while
7.若
8.end for
9.返回
子程序BestGrowth尝试将模式
对于改进操作,DTS维护了一个候选改进表
每次由添加操作或改进操作新生成的模式
$ \mathrm{g}\mathrm{a}\mathrm{i}\mathrm{n}\left(R{\left(P\right)}_{j}^{E}\right)=L(S, P)-L(S, \{PP\}\bigcup \{{P}_{m}, {P}_{r}\left\}\right) $ | (7) |
算法2 对模式
输入 模式
输出 候选改进表
1.for
2.
3.for
4.
5.若
6.end for
7.若
8.end for
9.返回更新后的
给定待改进模式
![]() |
Download:
|
图 2 Refine程序计算示例 Fig. 2 Example of the computation of Refine program |
DTS基于启发式的思路迭代地从序列中挖掘模式,算法描述如算法3所示。首先对算法涉及的数据结构初始化(第1行~第2行),模式集合
算法3 序列模式挖掘算法DTS
输入 序列
输出 模式集合
1.
2.
3.
4.将
5.ComputeRefining
6.while true do
7.
8.if
9.
10.if
11.
12.else
13.end if
14.更新
15.end while
16.使用
17.返回
如前文所述,DTS对
$ \mathrm{c}\mathrm{m}\mathrm{p}(P, R({P}^{\text{'}}{)}_{j}^{E})=\frac{\mathrm{g}\mathrm{a}\mathrm{i}\mathrm{n}\left(P\right)}{\left|P\right|\times \left|{O}_{P}\right|}-\frac{\mathrm{g}\mathrm{a}\mathrm{i}\mathrm{n}\left(R\right({P}^{\text{'}}{)}_{j}^{E})}{\left|{O}_{{P}_{r}^{\text{'}}}\right|} $ | (8) |
由于长模式或支持度较高的模式往往对描述长度有更多的优化,而改进操作的优化仅由单个事件贡献,为了保证比较的公平性,此处比较的是单个事件的优化能力。函数返回值为正则表明模式
在开始迭代过程之前,从候选模式集
以图 3为例说明算法核心思想,图 3(a)所示为当前待更新的模式集合
![]() |
Download:
|
图 3 模式集合的更新示例 Fig. 3 Update example of pattern collection |
本文所有实验在单机环境下运行,处理器为IntelⓇ CoreTM i7-3770 CPU @ 3.40 GHz,内存为24 GB,操作系统为64位Windows 10。
5.2 实验数据本文采用真实Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)环境运行生成的日志序列作为输入数据,共生成8条不同长度的日志序列,其中4条日志序列是HDFS系统的NameNode生成的,包含200种事件类型,4条日志序列是HDFS系统的DataNode生成的,包含106种事件类型。这两种日志数据有不同的特点,其中NameNode日志包含更丰富的事件类型和更复杂的系统行为,因此模式更为复杂,而DataNode日志包含相对更少的事件类型,其中的模式也相对更为简单规律。
5.3 算法对比分析实验对DTS与SQS[3]、GoKrimp[4]、CSC[5]、ISM[19]算法进行对比分析。其中,文献[3-5]都是基于MDL准则挖掘模式,ISM算法是一个基于概率的机器学习方法。对于CSC和DTS,输入数据即为整条序列,对于其他3种算法,将序列切分为长度为10的子序列作为输入数据。DTS由Java实现,其余算法的源代码由作者提供。
5.3.1 运行效率的评估本节使用不同长度的日志数据对算法的效率和可扩展性进行评估,5种算法所需运行时间如图 4所示。值得指出的是,尽管5种算法的结果呈现在一张图内,CSC、GoKrimp和DTS算法的时间单位为秒,SQS和ISM的时间单位为分钟,为了节省空间,本文将不同数量级的运行时间展示在同一张图片内。从图 4可以看出,DTS略慢于CSC和GoKrimp,这是因为CSC和GoKrimp在计算过程中通过设定间隔阈值的方式减枝,极大地减少了搜索空间,但后续实验证明这也限制了模式的表达能力。尽管DTS相对来说耗时较长,但也只需400 s即可处理长度为600 000的复杂日志序列,这是一个可以接受的耗时时间,说明DTS可以高效发现模式且有很好的可扩展性。相比之下,SQS和ISM算法效率不高,处理日志所需耗时从几十分钟到几小时不等,难以满足日常应用需求。
![]() |
Download:
|
图 4 不同数据集下的运行时间对比 Fig. 4 Comparison of processing time under different datasets |
本节使用不同长度的日志序列对模式结果的表达能力进行评估,使用到的评估指标为压缩率(Compression Ratio,CR)。基于MDL准则筛选模式挖掘出的模式结果可以用于对序列编码,与原序列所需描述长度相比,编码后的序列长度大幅减少。根据MDL准则描述长度越小,用于编码的模式集合表达能力越强。压缩率的计算为只使用单事件序列模式对序列编码所需描述长度和使用模式集合对序列编码所需描述长度的比值。
实验所涉及的基于MDL准则算法的压缩率如图 5所示。从图 5可以看出:对于NameNode日志,DTS在所有长度的日志序列上均取得了最高的压缩率。在对比算法中,SQS的压缩率最好,CSC和GoKrimp相对更差,如前所述,这两种算法的减枝和贪心策略使得它们不能很好地处理复杂的日志序列;对于DataNode日志,所有算法的压缩率都较低,这是因为该日志中的模式更为简短。DTS在部分序列上仍然拥有最高的压缩率,仅在两条序列上略逊于CSC,这与前文的分析一致,CSC更适合处理模式相对简短的序列数据,但是后续实验分析可以看出CSC结果的冗余度很高。DTS在大部分数据上取得了最好的压缩率,这表明DTS挖掘出的模式能更好地代表原序列。
![]() |
Download:
|
图 5 不同数据集下的压缩率对比 Fig. 5 Comparison of compression ratio under different datasets |
DTS挖掘出的模式集合能更好地对序列进行压缩,这并不意味着DTS的模式集合有很高的冗余度,本节对该结论加以实验验证。本文采用的评估指标如下:
1) 平均序列间编辑距离(Average inter-sequence Edit Distance,AED)[19]:用于评估模式与模式之间的文本相似度,计算方式为对模式集合
2) 平均序列间杰卡德距离(Average inter-sequence Jaccard Distance,AJD):用于评估模式与模式之间的杰卡德相似度,计算方式与AED类似。
3) 事件覆盖率(Event Coverge,EC)[20]:用于评估模式集合对事件类型的覆盖率,且EC越高,说明模式集合涵盖的事件类型越丰富。
表 2展示了5种算法在不同数据集下的3种评估指标结果。其中,最优结果加粗表示。由于空间限制,此处仅列出两个最长序列的结果。从表 2可以看出:DTS具有最大的AED和AJD;与其他算法相比,DTS发现的模式具有最低冗余度;此外,DTS在事件覆盖率方面也优于其他算法,这表明DTS挖掘出的模式结果在高质量的同时且低冗余,这对于人工分析和处理是非常便利的。
![]() |
下载CSV 表 2 5种算法在不同数据集下的模式冗余度对比 Table 2 Comparison of pattern redundancy of five algorithms under different datasets |
为从时序日志序列中发现高质量的序列模式,本文提出一种基于MDL的序列模式挖掘算法DTS。DTS能够以黑盒的方式处理日志数据,在不需要任何先验系统知识的情况下,从日志序列中发现有意义的行为序列用于日志分析。该算法结合系统行为在执行时间上存在一定规律性的特点,设计一种考虑事件关系以及时间规律性的编码方案,以编码前后描述长度的变化为衡量标准来评估序列模式质量,并从数据中迭代挖掘出可有效代表序列的模式。实验结果表明,DTS可以有效发现高质量且低冗余的模式结果集。下一步将对算法搜索策略进行改进,以有效减少计算开销,提高算法效率。
[1] |
AGRAWAL R, SRIKANT R.Mining sequentialp patterns[C]//Proceedings of the 11th International Conference on Data Engineering.Washington D.C., USA: IEEE Press, 1995: 3-14.
|
[2] |
NWALD P D. The minimum description length principle (adaptive computation and machine learning)[M]. Cambridge, USA: MIT Press, 2007.
|
[3] |
TATTI N, VREEKEN J.The long and the short of it: summarising event sequences with serial episodes[C]//Proceedings of the 18th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York, USA: ACM Press, 2012: 462-470.
|
[4] |
LAM H T, MÖRCHEN F, FRADKIN D, et al. Mining compressing sequential patterns[J]. Statistical Analysis and Data Mining:the ASA Data Science Journal, 2014, 7(1): 34-52. DOI:10.1002/sam.11192 |
[5] |
IBRAHIM A, SASTRY S, SASTRY P S. Discovering compressing serial episodes from event sequences[J]. Knowledge and Information Systems, 2016, 47(2): 405-432. DOI:10.1007/s10115-015-0854-3 |
[6] |
MIN D, 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, USA: ACM Press, 2017: 1285-1298.
|
[7] |
XIAO Y, JOSHI P, XU J, et al.CloudSeer: workflow monitoring of cloud infrastructures via interleaved logs[C]//Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems.New York, USA: ACM Press, 2016: 489-502.
|
[8] |
SHUANG Kai, LI Yiwen, LÜ Zhiheng, et al. Log template extraction algorithm based on normalized feature discrimination[J]. Journal of Beijing University of Posts and Telecommunications, 2020, 43(1): 68-73. (in Chinese) 双锴, 李怡雯, 吕志恒, 等. 基于归一化特征判别的日志模板挖掘算法[J]. 北京邮电大学学报, 2020, 43(1): 68-73. |
[9] |
WANG Weihua, YING Shi, JIA Xiangyang, et al. A multi-type failure prediction method based on log clustering[J]. Computer Engineering, 2018, 44(7): 67-73. (in Chinese) 王卫华, 应时, 贾向阳, 等. 一种基于日志聚类的多类型故障预测方法[J]. 计算机工程, 2018, 44(7): 67-73. |
[10] |
HE S L, ZHU J M, HE P J, et al.Experience report: system log analysis for anomaly detection[C]//Proceedings of the 27th International Symposium on Software Reliability Engineering.Washington D.C., USA: IEEE Press, 2016: 207-218.
|
[11] |
JIAN P, HAN J, MORTAZAVI-ASL B, et al.PrefixSpan: mining sequential patterns by prefix-projected growth[C]//Proceedings of the 17th International Conference on Data Engineering.New York, USA: ACM Press, 2001: 215-224.
|
[12] |
GOMARIZ A, CAMPOS M, MARIN R, et al.ClaSP: an efficient algorithm for mining frequent closed sequences[EB/OL].[2019-12-10].http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=30AC1EBBDC64DA97300F9BCB9A1606B1?doi=10.1.1.377.3720&rep=rep1&type=pdf.
|
[13] |
GUAN Enzheng, CHANG Xiaoyu, WANG Zhe, et al.Mining maximal sequential patterns[C]//Proceedings of International Conference on Neural Networks and Brain.Washington D.C., USA: IEEE Press, 2005: 525-528.
|
[14] |
HU J Y, MOJSILOVIC A. High-utility pattern mining:a method for discovery of high-utility item sets[J]. Pattern Recognition, 2007, 40(11): 3317-3324. DOI:10.1016/j.patcog.2007.02.003 |
[15] |
TZVETKOV P, YAN X, HAN J. TSP:mining top-k closed sequential patterns[J]. Knowledge and Information Systems, 2005, 7(4): 438-457. DOI:10.1007/s10115-004-0175-4 |
[16] |
VREEKEN J, VAN LEEUWEN M, SIEBES A. Krimp:mining itemsets that compress[J]. Data Mining and Knowledge Discovery, 2011, 23(1): 169-214. DOI:10.1007/s10618-010-0202-x |
[17] |
FU Q, LOU J G, WANG Y, et al.Execution anomaly detection in distributed systems through unstructured log analysis[C]//Proceedings of the 9th IEEE International Conference on Data Mining.Washington D.C., USA: IEEE Press, 2009: 149-158.
|
[18] |
HE P J, ZHU J M, ZHENG Z B, et al.Drain: an online log parsing approach with fixed depth tree[C]//Proceedings of 2017 IEEE International Conference on Web Services.Washington D.C., USA: IEEE Press, 2017: 33-40.
|
[19] |
FOWKES J, SUTTON C.A subsequence interleaving model for sequential pattern mining[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York, USA: ACM Press, 2016: 835-844.
|
[20] |
YAN Y, CAO L, MADDEN S, et al.SWIFT: mining representative patterns from large event streams[EB/OL].[2019-12-10].https://arxiv.org/pdf/1602.05012.pdf.
|