现代计算系统产生了大量的日志数据,而日志数据描述记录着系统的内部操作,比如:一个服务的开始与停止、网络连接的检测、软件配置调整、异常信息等等。系统管理员或者有关专家就是利用这些日志数据来分析理解系统的行为操作。82699
大多数的系统日志都是以文本行的形式出现的,而且没有固定的结构,这两点也正是日志信息分析的难点所在。第一个难点是将日志文本行转化为事件类型,由于事件类型的种类有很多,另外由于参数的不同会产生很多类型相同的重复日志数据。由于很多研究对第二个难点提出了很多挖掘系统事件的算法,所以只要想办法解决第一个难点,本文主要解决第一个难点。传统的解决方案是对一个特定的系统开发一个特定的解析器,但是这需要用户能够完全的掌握系统的各方面。实际上这是一个很耗时的工程,如果拿到的是一个复杂的工程的时候这个方法几乎是不可行的,另外,特定的解析器是不通用的,完全没有办法将它用到其他类型的系统上。
最近一些研究运用聚类算法自动的将日志信息分成不同的组[1][2][3],每个信息组表示一种特别的事件类型。但是由于日志信息长度短且有类型繁多,传统的基于bag-of-word模型的聚类算法往往处理日志信息数据的效果并不好。所以最近提出了很多新的利用日志数据格式或结构信息的聚类算法[1][2],然而这些算法只有在格式或结构严格的日志信息上才能发挥效果,而且这些算法高度依赖日志数据的结构特点。为了解决这个问题,本文介绍了一种基于特征的logSig改进算法来从文本行抽象事件类型,它可以很好的处理很多类型的日志数据。
模式挖掘方面,近年来数据采集和存储技术发展十分迅速,从时序数据中发现隐藏的信息,已经成为很多研究人员的兴趣之一。时序数据是指带有时间的数据项集合,能够描述随着时间变化的状态变化或演化趋势。论文网
时序数据在很多不同类型的领域都有应用。下面是系统管理中的时序数据:
系统管理中的时序数据
系统监测组件的同事定时收集系统信息,如CPU使用率、内存使用情况、磁盘读写数据量、网络接收或发送数据量等,通过这些数据就能记录追踪系统的状态。每一条数据都具有时间戳。
根据数据项的不同类型,时序数据可以分为两大类:时间序列和事件数据,其中时间序列用于描述数据项值是连续的时序数据,而事件数据则用于描述数据项值是离散的时序数据。如上图例子中的CPU利用情况、内存使用、磁盘上读写数据量、网络接收或发送数据量都可以表示为时间序列,而应用程序服务器处理的请求和应答序列可以表示为事件数据。尽管这两类时序数据的数据挖掘都得到了广泛的关注,但是本文侧重于事件数据挖掘。
参考文献
[1] M。 Aharon, G。 Barash, I。 Cohen, and E。 Mordechai。 One graph is worth a thousand logs: Uncovering hidden structures in massive system event logs。 In Proceedings of ECML/PKDD, pages 227–243, Bled, Slovenia, September 2009。
[2] A。 Makanju, A。 N。 Zincir-Heywood, and E。 E。 Milios。 Clustering event logs using iterative partitioning。 In Proceedings of ACM KDD, pages 1255–1264, Paris, France, June 2009。
[3] Hamerly G, Elkan C。 Learning the K in K-Means[J]。 Advances in Neural Information Processing Systems, 2004, 17:2003。
[4] M。 A。 Stephens。 EDF statistics for goodness of fit and some comparisons。 American Statistical Association, 69(347):730–737, September 1974。
[5] Mike Chen, Alice X。 Zheng, Jim Lloyd, Michael I。 Jordan, and Eric 日志管理和分析系统研究现状和参考文献:http://www.youerw.com/yanjiu/lunwen_97062.html