大数据时代的数据挖掘
上QQ阅读APP看书,第一时间看更新

2.3 日志数据分析管理系统的架构

在大型企业的IT管理里,针对各个日志数据的分析通常不是某个IT管理人员单独完成的。通常大型企业的IT服务架构,都依赖一个日志数据分析和管理系统。日志数据分析管理系统通常是 IT 服务管理的核心系统架构。例如 IT 服务提供商IBM,其业务核心系统就是基于IBM Tivoli Monitoring日志事件监控系统。本章主要讲述的是数据挖掘技术在日志数据分析上的应用案例,因此这里我们只简单介绍系统的整体架构。后面介绍的分析技术和算法通常被植入该系统架构中的某个模块。虽然不同的企业IT服务架构大相径庭,但是针对日志数据的分析管理大致如图2-2所示[15-16]。图2-2主要分3个部分:日志数据的收集和预处理;历史日志数据存储;日志事件数据的分析以及对分析结果的展示和使用。

图2-2 日志数据分析系统的架构示意

2.3.1 日志数据的收集和预处理

日志数据的收集可以是各种形式的。例如常见的应用软件Apache Tomcat,可以直接从其logs目录下复制catalina.log日志数据文件。还有一些监控软件可以主动地抓取系统状态信息并生成日志事件,直接传递给后台服务器,不需要将日志文件作为媒体,如IBM Tivoli Monitoring[17]。通常日志数据的收集要求在不影响生产服务器的性能下完成。此外,何种数据需要收集、何种数据不需要收集,这在系统管理和网络监控领域也是研究的热点之一。

2.3.2 历史日志数据存储

通常历史日志数据都是海量形式。很多应用服务器的日志数据时时刻刻都在产生。因此,专门针对日志数据管理的很多数据仓库被用来存储系统历史数据。与常规数据库不同的是,这里的历史数据仓库以只读和导入操作为主,修改和删除的操作较少。很多企业(例如Splunk[18]、AppFirst[19])也开始使用NoSQL等存储方式建立日志数据仓库。

2.3.3 日志事件数据的分析以及对分析结果的展示和使用

本节主要介绍日志事件数据的分析方法,分析方法分为实时分析和离线分析两类。通常基于数据挖掘的方法都是针对海量历史数据进行离线分析的,然后将创建的模型用于实时的日志分析。例如异常检测里,通过历史数据训练出一个分类模型,然后在实时收集日志数据的过程中,用创建的模型判断当前日志事件是否出现异常。需要注意的是,在系统管理和网络的研究领域里,有一些异常检测故障追踪的方法,并不需要离线的数据分析。通常针对系统日志事件挖掘出来的结果以知识库(Knowledge Base)的形式存储在管理系统内。系统管理员通常还需要查阅和审核以及修改知识库内的结果,才能真正部署在生产服务器上。因此,可视化的日志数据分析显示也是常见的一个功能模块。