论文部分内容阅读
随着云计算等技术的飞速发展与普及,应用系统正逐步迁移到以大型服务器集群为核心的分布式运行环境中,系统规模变得越来越大,复杂度越来越高。当系统出现故障时,系统维护人员面对大量的系统运行信息,系统异常行为检测将面临巨大挑战。应用系统的日志记录了系统的执行轨迹,并且存在于系统的所有组件中,因此可以通过挖掘大量包含丰富信息的日志来检测系统出现的异常行为。传统的日志分析和异常检测技术各有侧重,有些技术已日趋成熟,但解决相应问题的同时也隐藏着各自的缺点,往往针对某些特定场景或局部问题而难以面面俱到,因此需要一些新的观点,立足于现有成果,从不同角度和更深层次对该领域问题进行研究。基于上述背景,本文通过使用源代码分析、流程建模、数据挖掘、机器学习算法和异常值检测方法设计与实现了基于日志特征的异常行为检测系统。本系统基于较成熟的云环境,立足于日志分析,针对现有的技术难点进行改进,能够适应多样化的系统日志结构和格式,从时间序和逻辑序多个方面对系统行为加以分析,改善了日志分析中简单启发式方法造成的准确性不高和普遍的频繁模式挖掘常见的效率底下问等问题。本系统的的主要实现过程如下:首先通过Elipse的IDE插件进行目标开源框架的源码分析,针对源码建立索引并使用抽象语法树提取日志相关的模板信息和流程结构,包括每个日志的输出格式和上下文逻辑关系。然后利用分布式存储环境和计算框架对日志进行预处理,通过改进的模式匹配方法运用日志模板和流程模型对日志进行抽取转化,完成特征统计,选取流程状态变量和消息计数变量作为特征变量,以此为依据针对不同变量使用不同方式对日志进行特征分组处理,提取每组特征向量继而组成代表整体系统行为的特征矩阵。接着基于事物的主要矛盾,为了压缩矩阵规模和降低矩阵维度,将多元数据的特征在低维空间里直观地表示出来,论文使用主成分分析法来进行异常值检测,进而找到异常向量定位系统异常行为。最后使用决策树来表示系统的正常和异常行为,决策树的使用规范了系统行为的具体执行路径,为判断行为的合法性提供直接参考,同时采用各种报表对系统行为进行统计得到系统运行概况。在试验部分使用Hadoop开源系统验证了该方法的正确性和有效性,并进行了相关的功能测试和性能测试。