基于日志信息故障诊断及研究.pdf_第1页
基于日志信息故障诊断及研究.pdf_第2页
基于日志信息故障诊断及研究.pdf_第3页
基于日志信息故障诊断及研究.pdf_第4页
基于日志信息故障诊断及研究.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

基于日志信息故障诊断及研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

thesis submitted in partial fulfillment of the requirements for the degree of master of engineering fault diagnosis based on the log information candidate qin hao major information security supervisor prof zhou deqing huazhong university of science and technology wuhan 430074 p r china february 2014 万方数据 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果 尽我所知 除文中已经标明引用的内容外 本论文不包含任何其他个人或集体 已经发表或撰写过的研究成果 对本文的研究做出贡献的个人和集体 均已在文中 以明确方式标明 本人完全意识到 本声明的法律结果由本人承担 学位论文作者签名 日期 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留 使用学位论文的规定 即 学校有权保留 并向国家有关部门或机构送交论文的复印件和电子版 允许论文被查阅和借阅 本 人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索 可以采用影印 缩印或扫描等复制手段保存和汇编本学位论文 保密 在 年解密后适用本授权书 不保密 请在以上方框内打 学位论文作者签名 指导教师签名 日期 年 月 日 日期 年 月 日 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 i 摘摘 要要 在现代计算机系统当中 日志一直都是作为获取系统运行情况 诊断系统故障的 首要来源 但随着云计算和集群环境的发展 系统和软件的架构变得越来越复杂 各 个不同层次间的软件和硬件频繁的交互 导致了系统的高耦合性 也加大了对系统当 中出现的故障进行诊断的难度 面对现代系统中大量组件产生的海量日志 传统的基 于日志的故障分析很难对系统进行实时全面的故障诊断 因此 设计一套日志管理分 析系统 能够收集系统中所有组件产生的故障日志并对这些日志进行分类 辅助管理 员进行故障诊断 对当前的计算机系统管理有着现实的意义 日志综合管理分析系统 uilog 对整个云环境中各个组件产生的故障日志进行 统一的管理 并可以实时分析当前系统的运行状况 当发生故障时 日志综合管理分 析系统会判断故障的类型 把故障日志按照故障发生的因果顺序进行排序 辅助管理 员进行故障诊断 uilog 首先对系统中的日志进行统一的收集管理 确保了即使系统 宕机也可以获得故障信息 uilog 采用了新的故障分类方法 降低了分类过程对于人 工知识库的依赖 同时通过故障关键词矩阵 可以有效地对故障日志进行实时分类 此外 uilog 改进了传统的基于时间的故障关联性分析 利用日志故障分类的结果确 定不同时间窗口的大小 提高了故障关联性分析的准确率 并可以帮助管理员找到引 发故障的根本原因 实验结果显示 日志综合管理分析系统能够全面管理系统中的日志 对日志按照 故障类型进行分类 并针对具体故障挖掘出故障产生的根本原因 在故障日志归类方 面 新的日志分类方法可以对 95 以上的日志进行准确的分类 在日志关联性分析方 面 改进的方法使得截断错误发生率控制在 20 以下 冲突错误控制在 30 以下 关键字关键字 故障诊断 故障日志分类 故障关联性分析 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 ii abstract in the modern computer system log is usually to be the first source for obtaining the system situation and diagnosing the failure of system however with the development of cloud computing and cluster environment the architecture of system and software is more complicated the communication between different layer of hardware and software in the system is becoming more frequency it enhances the coupling of system and makes fault diagnosis using system logs difficult the traditional system fault diagnosis based on log relies on artificial analysis it is difficult to analyze system in real time and comprehensive when dealing with massive log generated by different components in modern system therefore it is a significant meaning for current management of computer system that to design a log management and analysis system the unified management and analysis system for log uilog collect fault logs gener ated by each component of cloud system and provide management and analysis functions when a failure occurs uilog will determine the fault catalog and sort the entire fault logs in causality to help administrator for fault diagnosing firstly uilog manage all the logs in the system to ensure uilog can obtain the information of fault secondly uilog take ad vantage of new fault classification measure to reduce the dependency of human knowledge library through the fault keyword matrix uilog can classify fault log efficiency on the other hand uilog improves the traditional fault correlation analysis based on time using the result of fault classification to determine the size of time windows it can improve ac curacy of fault classification and help administrator for finding the root cause of fault the result of evaluation shows that uilog can manage logs of entire system and clas sify logs by fault type meanwhile uilog also can find root cause of fault for log classi fication the new approach improves the accuracy of fault classification to 95 for log correlation the truncation fault rate and collision fault rate declines to 20 and 30 re spectively key words fault diagnosis log classification fault correlation analysis 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 iii 目目 录录 摘 要 i abstract ii 目 录 iii 1 绪 论 1 1 问题提出 1 1 2 国内外研究现状 2 1 3 课题背景与研究内容 4 1 4 文章组织结构 5 2 日志综合管理分析系统的相关技术基础 2 1 日志文件的结构 6 2 2 基于日志的故障分类技术 9 2 3 本章小结 13 3 日志综合管理分析系统设计 3 1 日志综合管理分析系统设计目标 14 3 2 日志综合管理分析系统体系结构 15 3 3 日志综合管理分析系统功能模块 16 3 4 日志综合管理分析系统工作流程 20 3 5 小结 22 4 日志综合管理分析系统的关键技术 4 1 日志收集 23 4 2 故障日志分析 25 4 3 故障关联性分析 38 4 4 小结 41 5 系统测试与分析 5 1 系统测试环境 42 5 2 日志管理平台 43 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 iv 5 3 日志信息收集 44 5 4 故障日志分析 45 5 5 故障关联性分析 48 5 6 小结 49 6 总结与展望 51 致 谢 53 参考文献 55 附 录 1 攻读学位期间申请的国家发明专利 59 附 录 2 攻读学位期间参与的主要项目 60 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 1 1 1 绪绪 论论 本章首先阐述了故障诊断的意义和重要性 并分析了利用日志进行故障诊断的 优势 说明了国内外目前对于日志分析和故障诊断的研究现状 并讨论了这些方案的 优缺点 之后讲解了本文需要解决的问题以及课题的研究背景 最后是本文的组织结 构 1 1 问题提出问题提出 随着云计算结构的引入 计算机系统变得越来越复杂 运作在其上的软件也越 来越丰富 交互更加频繁 耦合性高 使得系统故障的原因和种类也难以进行分 析 但是由于现代社会对于计算机的依赖程度逐渐加深 特别是某些特殊的利用 比 如金融 国防等 一旦系统出现了故障 将会影响人们正常的生产生活 造成很大的 经济损失 甚至会影响到社会的安定 为了满足对这些领域对于计算机系统可靠性的 高度要求 必须对这些系统进行实时的监视 并能够及时的发现系统中存在的问题 便于及时进行应急处理 因此 对于系统故障分析的研究具有重要的意义 1 这些研 究可以辅助管理员对系统进行全面而实时的分析 及时发现系统运行过程中存在的问 题 并对故障预测 故障定位都有一定的帮助 通过故障分析 还可以让程序设计人 员更了解程序的运行情况 修改系统中的错误 提高系统的性能 从而杜绝故障的再 次发生 为了让系统管理员对系统的运行流程有全面的了解 程序在运行过程中都会产生 大量的日志信息 包括运行日志 故障日志 调试日志等等 因此 日志分析是系统 故障分析的重要组成部分 通过对日志的分析 可以有效地监视用户的操作 探测外 部的攻击 发现系统的运行瓶颈以及诊断系统中的故障 2 但是 日志的信息往往是海量的 仅仅依靠系统管理员很难从大量复杂的信息中 抽取出和故障相关的信息 而且 日志是由不同的程序产生的 不同的日志具有不同 的日志结构 难以找出一种统一的格式对这些日志进行综合的分析 因此 如何从海量的信息中挖掘出对故障分析有用的信息 以及如何利用这些信 息 通过计算机来实现自动的日志信息提取和分类 最终能够使得计算机理解日志含 义 都是基于日志的故障分析需要解决的问题 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 2 如果上述问题得到解决 管理员就可以借助计算机的日志分析 对系统进行实时 的监视 辅助管理员及时的发现系统中的错误 通过自动的日志分析 减少了管理员 分析日志的时间 让管理员可以把宝贵的故障恢复时间放在对系统的维护上 综上所述 设计一个针对云计算环境的故障日志的管理和分析工具是非常必要 的 1 2 国内外研究现状国内外研究现状 由于大型集群和云计算环境的越来越普及 无论对于各个厂商还是研究机构都对 基于日志的故障诊断产生了浓厚的兴趣 目前在工业界 已经有了很多成熟的日志分 析系统 但大部分都仅限于收集和概要分析 3 学术界的研究虽然在故障诊断和深入 分析日志方面取得了很多成就 但多数的研究都是针对特定的环境 4 很难有较强的 适用性 下面针对具体需要解决的两个问题 分别描述了目前的研究现状 数据信息聚类是日志分析当中首先需要解决的问题 5 聚类就是把具有相同属性 的信息聚集到一起的过程 6 保证每一个簇中的数据都是相似的 而簇与簇之间的数 据则有差别 聚类可以有效地把日志按照故障类型分为不同的类 是对日志进行分析 的重要步骤 可以极大的减轻人工分析日志的负担 7 数据信息聚类的第一步是提取日志中的信息 在之前的研究工作中 大多是依靠 正则表达式的方法 8 过滤日志中的信息 然而 由于系统和软件的多样性 不同的系 统产生的日志有着不同的格式 因此需要针对不同的系统定制专属的过滤规则 这往 往需要很多有经验的管理员才能完成 此外 伴随着系统和软件的升级和更新 后期 也可能需要对过滤规则进行调整 这些工作对于管理员来说太过繁琐和复杂 因此 必须要有一种能够自动提取日志信息的方法 来减少管理员的工作量 9 在 tudumi 10 的文章中 提出了一种信息虚拟化系统 来对系统中生成的日志进行监视和审计 目前有很多的研究都在寻找理解日志信息的方法 并希望通过这些信息能诊断超 级计算机中出现的故障 11 这些研究发现了很多系统日志所固有的特点 比如 stearley 12 等人发现 仅仅依靠日志中的单词 不能够很好的反应系统的运行情况 但是通过结合单词元组在日志中的不同位置 可以对故障诊断起到很大的帮助 除了系统日志之外 研究者们还对不同来源的日进行了分析 比如控制台日志 13 然而 这些研究通常都有一定的局限性 要么是针对特定的系统 要么需要软件源代 码的支持 14 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 3 在日志聚类中算法中 也大量的应用了目前比较流行的数据挖掘算法 比如 clique cure 和 mafia 15 等等 这些算法通常是用来对高维数据进行聚类 对于 日志这类文本信息来说不太适合 因为评价聚类算法是否适合于文本数据 除了要具 备对高维数据的识别能力之外 还要求算法能够处理不同的属性类型 16 忽略输入的 顺序 发现那些在子空间中存在高维属性的聚类 17 此外 如上文所述 日志聚类除 了考虑传统数据类型的多维向量之外 单词在日志中的位置以及单词的排列顺序也是 日志聚类的重要衡量因素 由于以上的原因 一些专门针对日志信息的自动聚类和分类算法和技术被开发出 来 在文献 18 中 作者尝试对原始的控制台日志进行自动分类 在文献 19 中 研究 人员使用隐式马尔科夫模型和朴素贝叶斯模型对基于 ibm 的普通基本事件 cbe common base event 进行日志分类 此外 目前应用比较广泛的有 slct 15 和 loghound 20 两个日志分类工具 他们是由同一组人员开发的用来提取日志中的模板信 息并自动对日志进行聚类的工具 该工具可以自动发现日志中存在的格式信息 slct 和 loghound 采用的算法与 aprior 类似 都需要计算机管理员提供一个阈值作为输入 阈值用来对算法输出的聚类大小进行控制 阈值设定的越小则同一个簇类中的数据相 似程度越高 因此 阈值需要根据不同的系统进行选择 日志关联分析是利用日志进行错误诊断中最困难的部分 需要综合考虑硬件 软 件和系统的故障 分析故障的传播方式 由于故障之间具有关联性 按照故障之间的 因果关系 通过关联分析挖掘出引发其他故障的最初始的故障对于系统管理来说是十 分重要的 21 另外 日志的故障关联性分析对于故障的预测以及故障的定位都具有很 大的帮助 22 关联分析主要分为时间关联分析 空间关联分析和基于内容的关联分析 时间关联分析主要思想是基于一个假设 相同故障来源的日志产生的时间比较接 近 因此 目前主流的做法是利用元组进行基于时间的归类 通过特殊的时间窗口 所有日志都按照发生的时间进行分类 在文献 21 中 作者发现元组的个数是时间窗 口大小的单调递减函数 并且呈现 l 型 根据这一发现 拐点处就是当前系统的 最佳时间窗口大小 这种方法有个明显的缺陷 就是误报率较高 在相同时间窗口内 的日志不一定都是由同一个故障引起的 之后有相关的文章对这种方法进行了改进 tsao 21 方法利用两个时间窗口 细化同一个元组内的日志 还有研究 21 通过平均故 障时间和平均故障恢复时间 计算球面协方差 利用时间窗口和协方差两个指标进行 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 4 关联分析 另外 针对多节点环境主机间的相互影响 通过启发式分析 动态的调整 时间窗口的大小 22 也是热门的研究内容 空间关联分析是变种的时间关联分析 主要在时间分析的基础上考虑不同节点间 的拓扑位置关系 空间关联分析也包括时间关联分析 方法 23 用来分析节点间的故 障关系 通常对于时间窗口的选择 根据系统的不同 有 5 分钟 24 到 20 分钟 25 不等 的时间差 在空间关联分析中 现有的研究大多数是采用固定的时间窗口 基于内容的关联分析主要是在日志中寻找特殊的符号信息 24 挖掘日志中的频繁 模式 来隔离偶然出现的故障信息 因此 考虑到了上述的研究现状 本文提出了面向大规模云计算环境的基于日 志的故障诊断系统 uilog 实现了对集群环境中多主机多应用的日志收集 分析和故 障诊断 1 3 课题背景与研究内容课题背景与研究内容 本课题来源于服务计算技术与系统教育部重点实验室系统安全与容错计算课题 组承担的国家 863 基于虚拟化的计算容错课题 为了减轻管理员对日益扩充的系统和软件的管理 提高复杂环境下系统故障的诊 断速度 本文研究并实现了面向大规模云计算环境的基于日志的故障诊断系统 本 课题的主要目的是设计并建立一套统一的故障管理平台 综合管理从底层系统到上 层软件的各种故障 并提供面向管理员的故障统计信息 此外 利用该平台的信 息 课题还包括设计新的故障日志挖掘方法 可以从大量日志信息当中提取出关键 的故障信息 并提出一种故障分析方法 从系统角度全局考虑故障之间的关联性 挖掘引起故障的根本原因 本课题的主要研究内容包括 1 研究日志分析和数据挖掘的基本理论以及相关算法 2 提出适合与集群环境的日志分析系统的总体设计方案 包括各模块的框架结 构等 3 设计高效的日志存储和过滤机制 可以有效的管理和保存集群环境中的全部 日志信息 4 提出新的日志分类算法 在提供更少样本进行学习的情况下 获得更快速精 确的日志分类结果 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 5 5 改进现有的基于日志的故障关联分析算法 引入故障类型作为关联分析的依 据 减小了误报率后漏报率 有效抑制了碰撞冲突和截断错误 6 设计友好的人机交互 方便管理员实时的监视系统状况 并利用该系统分析 系统中的软件和硬件故障 本系统目前已经应用于 strongcloud 的高可用云计算平台 能够有效的收集 管 理和分析该平台中软件 系统以及硬件产生的日志 系统运行良好并成功的帮助管理 员解决了实际的系统中出现的故障 1 4 文章文章组织组织结构结构 本论文共分为六个章节 第一章概要的描述了课题的选题背景 近年来学术界 和产业界的研究现状以及课题的研究内容和论文结构 第二章主要介绍了本系统中主要采用的关键技术和相关的知识 首先说明了日志 在实际系统中的功能和存储结构 描述了 unix 的标准日志处理机制 已经当前系统 中的日志管理和日志分类措施 然后详细介绍了用于日志分类的相关数据挖掘算法和 相应的技术 包括这些技术所面临的问题 第三章全面介绍了面向大规模云计算环境的日志综合管理分析系统 uilog 的设 计目标 总体设计 以及各个主要模块的主要功能和其间的交互流程 第四章详细讨论了基于日志的故障诊断系统的主要技术细节与实现 首先说明 日志收集模块的相关技术和具体的实现 然后讨论了故障日志分类的实现 并详细描 述了利用故障关键词矩阵进行故障日志分类的具体算法 最后说明了基于日志的故 障关联分析的工作流程和相关的技术与改进 第五章主要进行了针对本系统的功能及性能测试 首先介绍了系统运行及测试环 境 之后描述了系统的功能及性能的测试方法及结构 最后对结果进行了简单的分 析和讨论 第六章总结全文 概述了本课题取得的成果和意义 提出了之后工作的方向和实 现的目标 最后是致谢与有关参考文献以及研究生期间的工作情况 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 6 2 2 日志综合管理分析系统日志综合管理分析系统的的相关相关技术技术基础基础 日志分析与诊断是一个历久弥新的研究话题 随着计算机的发展 云计算和大数 据等相关技术的成熟 日志分析与诊断遇到了很多新的问题与挑战 也产生了许多新 的解决问题的方法 总体来说 日志分析主要还是面临日志数量庞大 常规的计算机 自动分析方法精确度较低 需要大量人工干预的问题 本章详细描述了在该系统中需 要用到的几项关键性的技术 2 1 2 1 日志文件的结构日志文件的结构 在 linux 系统当中 系统记录着执行过程当中的每一个事件 包括用户的登录 系统的启动的关闭 软件的运行记录以及系统故障 软件错误等等 通常情况下 这 些记录都保存在系统的 var log 目录当中 比如 dmesg 用来保存系统的内核信息 maillog 用来保存系统或者软件发给用户的邮件信息 secure 用来保存认证信息等等 此外 系统的服务也会在该目录下设立专门的文件存放日志信息 包括 httpd sshd 等 26 系统的日志由 syslog 服务进行管理 27 大部分的软件在底层也是直接调用 syslog 来提供日志服务 并采用相同的存储结构 任何程序都可以通过调用 syslog 来获得日 志服务 包括记录事件 将日志写到文件或者设备当中 设定不同的日志级别 给用 户和管理员发送邮件和警告等 实际上 syslog 已经成为了工业上的日志标准协议 除 了 unix 系统本身之外 路由器 交换机等硬件设备也都是采用相同的格式来记录日 志 这样 由于标准的统一 在分析日志时 可以更加全面的对系统 设备已经网络 状况进行跟踪 真正的掌握系统的运行情况 syslog 有两个主要的部分组成 第一个是守护进程 syslogd 该服务在开机时自动 启动 之后常驻内存 当有软件或系统需要调用时 syslogd 会根据软件的要求和配置 文件的规则 把日志记录到指定的位置 另外一个部分就是 syslog conf 配置文件 该 文件一般存放于 etc syslog conf 下 用来指挥 syslogd 的运行 通过修改 syslog conf 文件 可以对日志记录的位置和记录的方式进行灵活的配置 还可以根据日志产生的 设备 把日志分配到不同的文件中存储 该配置文件指明了 syslogd 的行为模式 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 7 syslogd 在每次启动时都会检查 syslog conf 文件 当 syslog conf 文件发生改变的时候 syslog 的行为也会产生相应变化 最基本的 syslog conf 配置文件包括了两个域构成 一个域指明了消息的类型和优 先级 这里称为 选择条件 另一个域指明了当 syslogd 接收到了属于该域的消息时 所做出的动作 这里称为 操作动作 域之间有一个制表符隔开 优先级和消息类 型由 隔开 下面给出了一个具体的例子 news crit var log spooler 该行第一个部分指明了这条规则适用于 news 设备优先级为 crit 的日志 第二部分说 明了对于这种日志需要存放到 var log spooler 里面 下面具体介绍了选择条件和操 作动作 1 选择条件 选择条件本身由两个字段组成 字段之间用一个 号分隔 第一个字段是说明 服务 facility 第二个字段指明了优先级 priority 在 syslog conf 的一行当中可以 使用多条选择条件 但选择条件之间必须采用分号隔开 选择条件实际上也是对日志 类型的一种分类 这种分类按照设备和优先级来区分 方便把不同类型的日志存储到 不同的地方 其中服务指的是日志产生的设备 表 2 1 列出了 linux 操作系统及其绝 大多数变体都可以识别的常见设备 此外软件还可以根据需要 自行的定制日志设备 表 2 1 日志设备 服务类型 消息类型 符号 syslog 序列 号 kern 内核日志消息 log kern 0 user 随机的用户日志消 log user 1 mail 邮件系统日志消息 log mail 2 daemon 系统守护进程日志消息 log daemon 3 auth 安全管理日志消息 log auth 4 syslog syslogd 本身的日志消息 log syslog 5 lpr 打印机日志消息 log lpr 6 news 新闻服务日志消息 log news 7 uucp uucp 系统日志消息 log uucp 8 cron 系统守护进程 crond 的日志消 log cron 9 authpriv 私有的安全管理日志消息 log authpriv 10 ftp 守护进程日志消息 log ftp 11 保留 保留为系统使用 12 15 local0 local7 保留为本地使用 log local0 log local7 16 23 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 8 第二个字段是优先级 优先级表明了日志消息的紧急程度 紧急程度是由产生日 志的设备所决定的 也就是由编写程序的程序员决定 因此这种重要程度只能作为参 考 但是可以用于大致的分类 比如过滤出哪些日志是属于故障日志 在 uilog 系统 中 首先采用优先级过滤非故障日志 优先级分为 0 7 八个级别 严重性依次递减 表 2 2 给出了按照紧急程度从高到底的所有可用的优先级 并给出了指导意义 表 2 2 日志优先级 优先级 含义 符号 syslog 序列号 emerg 系统不可用 log emerg 0 alert 必须马上采取行动的事件 log alert 1 crit 关键的事件 log crit 2 err 错误事件 log err 3 warning 警告事件 log warning 4 notice 普通但重要的事件 log notice 5 info 有用的信息 log info 6 debug 调试信息 log debug 7 2 操作动作 操作动作通过抽象名词 logfile 来描述 标准的 linux 系统支持一下几类的 logfile 1 文件 文件必须使用完整的路径描述 可以在路径名前面添加 来表示忽 略同步文件 2 命名管道 fifo 可以通过在命名管道的文件完整路径名前面添加 来 表示将日志消息写入命名管道 3 邮件 可以直接把日志消息作为邮件发送给管理员或其他地方 4 终端和控制台 对于优先级比较高的日志 为了事管理员能够及时响应请求 可以直接显示到终端上 如 dev console 5 远程机器 直接把日志消息发送到远程的主机当中 在 uilog 系统当中 对 于 var log message 中的系统消息 采用这种方式来收集日志 日志服务 syslogd 默认使用 udp 的 514 端口进行日志传输 可靠性较差 而且还会有泄露隐私的危险 这里改用了 tcp 协议并且进行加密传输 提高了安全性和可靠性 6 用户类表 可以指明消息接受的用户 更好的区分不同类型的日志 3 选择条件限定符 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 9 在实际使用时 通常需要把具有相似功能的设备产生的日志或者不同设备产生的 相似优先级别的日志放到一起 这时如果一条一条的输入设备和优先级显得比较繁琐 而且可读性不强 syslog conf 提供了限定符 可以简化类似的表述 首先可以用 表示任何设施 点号前的 或者任何的优先级 点号后的 此外 在规则中指明某一个优先级 则表明获取所有大于等于该优先级的日 志消息 如果想表示不包括任何优先级 可以用 none 标明 然后 linux 对原本 bsd 的 syslog 协议进行了扩展 引入了符号 和 在任何一个优先级之前使用 表明该规则只针对规则中所指出的优先级 与直接 使用不同 在优先级前加 表示求反 即得到原来集合的补集 还可以与 连 用 即表示不包括该优先级的日志 下面对以下合法的使用限定符的情况进行说明 1 任何设施产生的任何优先级的日志消息 2 local0 设备 local0 产生的任何优先级的日志消息 3 crit 任何设备产生的优先级大于等于关键事件的日志消息 4 crit 任何设备产生的优先级为关键事件的日志消息 5 kern none 除 kern 设备以外的其他任何设备产生的任何日志消息 6 kern info kern err kern 设备从优先级 info 到 warning 之间的日志消 息 2 2 2 2 基于日志的故障分类技术基于日志的故障分类技术 在日志综合管理和故障分析系统的设计中 对日志的分析是系统的核心部分 日 志分析就涉及到对大量的文本信息进行处理 并从这些海量信息中提取出与系统和软 件故障相关的信息 因此需要用到数据挖掘技术 数据挖掘就是从数据中提取出对解决问题有用的知识 28 通常这些知识都是隐藏 在海量的信息当中 通过机器学习 人工智能和数量统计的理论的相关知识 利用计 算机来实现对这些信息的自动区分 数据挖掘根据功能和处理对象的不同 可以分为很多的类型 包括分类 归类 聚类和预测等 29 具体到日志分析当中 使用的主要是聚类分析 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 10 2 2 2 1 2 1 聚类分析算法聚类分析算法 聚类分析的目的是通过相应的算法 使得计算机能够自动的识别不同对象的不同 属性 并能够按照某个属性之间的差异 把对象中具有相似关系的自动归为一类 30 聚类的目标是海量的数据 这些数据往往是人工所不能够完成的 而且对于日志分析 而言 对日志按照故障类型分类也正是故障分析的一个重要部分 目前的聚类分析算法中 主要分为监督算法和非监督算法 31 所谓的监督算法是 在进行正式的聚类分析之前 首先通过人工分类的方法 对训练集中的数据进行人工 的划定类型 32 训练集往往都是真实数据的一部分 之后 聚类分析算法会利用机器 学习的方法 对这一部分人工分类的结果进行学习 从而掌握分类的规则 通过规则 聚类分析算法就可以自动的对剩下的数据进行自动的分类 非监督的聚类分析算法就是指不通过人工分类 不需要提供已知的类型信息样 本 自动对数据进行分类的算法 33 具体来说 聚类分析算法按照分类方式的不同 分为划分式聚类方法 层次聚类 方法 基于密度的聚类方法 基于网格的聚类方法等等 由于聚类分析方法广泛的应用于各种不同的环境 因此对于具体的对象 需要能 够选取合适的算法 才能够得到应有的效果 在选择算法的过程当中 为了能够获得 高的准确率 有两个方面需要考虑 首先是距离函数 然后是聚类算法 2 2 2 距离函数距离函数 距离函数在一些地方也叫做相似度函数 34 在聚类分析当中 距离函数是用来确 认对象中的两个事物是否在属于同一个类型 如果两者的 距离 相隔很远 那么就 属于两个不同的类型 如果隔的很相近 那么就属于同一个类型 距离函数是相对于 需要分类的属性的 即使是同一组数据 如果按照事物的不同维度对其分类 所得到 的分类结果也是不同的 因此 这里的聚类也不是单纯的是空间上的距离 也包括了 形态 密度 数据 语义等可以区分事物不同的属性 下面给出了常见的聚类公式 这里首先定义了个体 x 和 y 在聚类分析中 每一 个个体都是由一系列的属性所构成的向量 在这里叫做 n 维特征 即 x x1 x2 x3 xn y y1 y2 y3 yn 1 欧几里得距离 euclidean distance 欧氏距离是目前主要的距离公式 其含义与在数学中的概念相同 即测量在对位 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 11 空间下 不同的点与点之间的距离 公式如下 2 1 n ii i dist x yxy 式 2 1 当然公式 2 1 除了衡量传统的聚类之外 对于可以划分成为 n 个属性的事务 都 已通过欧几里得距离来进行划分 但是对于维度过大或者维度不相同的事务来说 就 很难通过该公式来进行分类 2 明可夫斯基距离 minkowski distance 明氏距离是一种欧氏距离的变体 将这一系列的空间距离公式进行概括的表示 就得到了公式 式 2 2 1 1 x y n p p ii i distxy 式 2 2 通过变量 p 的选取 可以适合与不同的状况 但是同式 2 1 一样 具有同样的局 限性 3 余弦相似度 cosine similarity 如前文所述 由于每一个事物都被分成了 n 维的向量 因此 可以通过计算向量 之间的角度 来表现不同的向量在方向上的差异 这也是一种区分不同事物的方法 于是可以得到公式 2 3 x y cos x y sim xy 式 2 3 4 皮尔森相关系数 pearson correlation coefficient 按照相关分析理论 相关系数 r 表明了事物之间的相关性 通过相关系数可以进 行聚类公式的计算 首先对事物 x 和事物 y 的基于自身的向量进行标准化 然后对 于标准化后的向量按照式 2 3 计算余弦夹角 得到公式 2 4 22 22 x y nxyxy r nxxnyy 式 2 4 针对日志分析而言 在距离公式的选择上 由于日志的单词量较大 如果用向量 进行区分 那么需要的空间太大而且计算会消耗大量计算资源 这里采用了编辑距离 作为距离公式 编辑距离 又称 levenshtein 距离 是指两个字符串之间 由一个字 符串转成为另一个字符串所需的最少操作次数 35 这里限制的操作只有一下的三种 包括一个字符替换成另一个字符 插入一个字符和删除一个字符 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 12 例如将 kitten 字符串转换成 sitting 字符串 1 sitten k s 2 sittin e i 3 sitting g 那么 kitten 和 sitting 的编辑距离就是 3 这里对编辑距离进行了一些改进 考虑 表 2 3 所述两条日志 由于日志信息太长 如果以字母为单位进行计算 那么计算编 辑距离将非常耗时间 日志作为一种格式明确的文本 以单词为基本单位进行计 算 将很好的区分出不同类型的日志格式 所以本系统采用的就是基于单词的编辑 距离公式 另外考虑到英文单词词形变化较多 首先必须采用词根表进行转化 表 2 3 日志样例 saved core dump of pid 7185 home log dbscan to var spool abrt ccpp 2013 06 09 19 56 39 7185 saved core dump of pid 7382 home log dbscan to var spool abrt ccpp 2013 06 09 20 04 44 7382 2 2 2 2 3 3 dbscandbscan 算法算法 确定了距离公式之后 剩下的就是要选择合适的聚类分析算法 在利用日志进行 故障分类时 由于事先不知道日志类型和具体聚类的簇大小 所以很难把簇数量作 为参数的挖掘算法 比如划分法和层次法 这里通过实验 选择了基于密度的划分 方法来对日志进行分类 主要原因由以下三点 1 该算法按照密度区别不同的簇 不需要预先知道簇的数量 2 该算法可以在具有噪声的空间数据中发现任意形状 的簇 3 该算法可以有效地处理有噪声的情况 dbscan density based spatial clustering of applications with noise 算法 36 是 一种目前十分常用的基于密度的聚类分析方法 它通过人工给出的阈值来调节簇类 的大小 这样可以自动的对事物按照簇类进行类型划分 此外 对于比较稀疏的数据 则可以作为 噪声 来处理 这样 该算法可以在存在噪声的空间中把数据划分为任 意形状的聚类 该算法在计算时会为高密度区域设置一个中心点 并指定一定的领域 范围 如果有点落到了领域范围内 那么就可以认为这两个数据是属于同一个类型 下面给出了 dbscan 算法中的具体概念 1 x 是给定数据集 d 中的一个个体 那么定义 x 的 邻域为 nyd d x y 式 2 5 2 如果个体 x 的 邻域中至少拥有 minpts 个个体 那么就称个体 x 为核心对 象 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 13 3 如果个体 b 是一个核心对象 并且个体 a 在个体 b 的 邻域中 则对于个体 b 来说 个体 a 是直接密度可达的 4 如果存在一个对象链 p1 p2 pn 这里 p1 b pn a 而且 11ipin 对于 pi是直接密度可达 那么 则对于 a 来说 b 是密度可达的 dbscan 的具体算法如下 37 算法首先会扫描数据集中的每一个个体 计算他 们的 邻域 如果存在一个个体 在他的 邻域内有至少 minpts 个个体 那么这个 个体就是一个簇的中心 算法会以该点为核心建立一个簇 之后 扫描到这个点密度 可达的个体 把这些个体全部加入到这个簇类中 如果有的个体已经是簇的中心 那 么会把两个簇进行合并 算法会一直循环运行扫描 直到没有单独存在的个体为止 2 32 3 本章本章小小结结 本章描述了在日志管理和基于日志的故障分析中所需要的关键技术 首先是介绍 了现代计算机系统中常用的日志文件机构 并说明了其日志服务方式 之后 详细描 述了适用于日志故障分析的聚类分析算法 说明了不同的距离函数的聚类算法的流程 以及适用范围 其中着重说明了距离函数和聚类算法的选择 在下一章将介绍日志综合管理分析系统的设计 包括设计目标 系统结构和功能 模块等部分 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 14 3 3 日志综合管理分析系统日志综合管理分析系统设计设计 本章首先阐述了日志综合管理系统的主要设计目标 然后详细的介绍了系统的 整体设计结构和各个模块的功能 最后描述了系统整体的处理流程和各个模块间的 交互过程 3 13 1 日志综合管理分析系统日志综合管理分析系统设计目标设计目标 日志综合管理分析系统 uilog unify log management and analysis system 是基 于日志的故障分析及诊断系统 该系统会收集系统中各个组件的日志信息 并对日志 进行统一的存储和管理 uilog 会对系统中的日志进行跟踪统计 并结合之后的故障 分析 对系统进行准确的整体概要分析 辅助管理员掌握系统的运行情况 uilog 采 用机器学习的方法 通过人工给出的故障分类训练集 对日志的故障类型进行学习 产生日志规则库 之后 对于系统中收集的日志 uilog 会根据规则库 实时地判断 日志所属的故障类型 以供管理员查询 此外 当管理员需要对系统中的故障进行分 析诊断时 uilog 可以进行故障关联性分析 即对需要分析的故障 考虑故障的传播 性 挖掘出与该故障相关联的故障日志 并把由相同故障起因的日志聚到一起 然后 按照故障发生的因果关系对集合中的日志进行排序 从而找到引发该故障的根本原 因 综上 可以得到日志综合管理分析系统的设计目标 1 具有较高的可靠性和健壮性 由于日志综合管理分析系统是对系统中的故障 进行管理的系统 因此当系统中出现故障的时候 必须首先保证 uilog 不会受到系统 的影响 因此 在设计时必须做到与环境完全独立 这里采用了单独的服务器作为日 志服务器 并对日志数据进行了备份 2 能够迅速的对日志进行分类判断 当系统出现故障时 系统管理员的故障响 应时间和故障恢复时间是十分宝贵的 因此 如果可以快速的对故障日志进行类型判 断 就可以帮助管理员节省处理故障的时间 从而减小了故障恢复时间 这里 uilog 采用了新的故障分类算法 有效的提高了故障分类的处理速度 万方数据 华 中 科 技 大 学 硕 士 学 位 论华 中 科 技 大 学 硕 士 学 位 论 文文 15 3 能够提供准确的日志分析结果 准确度主要指的是对日志进行故障类型判断 的准确度和日志关联分析的准确度 3 2 3 2 日志综合管理分析系统体系日志综合管理分析系统体系结构结构 日志综合管理分析系统 uilog 适用于大型的复杂云环境和集群环境 该系统 把所有目标节点中的系统 系统中的软件以及其他相关组件中产生的日志统一收集到 分析节点 然后在分析节点对日志进行过滤 存储 分析和故障诊断 根据上节所描 述的设计目标 为了提高可靠性 分析节点作为专门的日志服务器使用 并且日志也 存储于专门的日志数据库当中 uilog 的整体结构如图 3 1 所示 整体结构分为目标节点和分析节点两个部分 其中 目标节点中的子系统存在于所有需要监视的主机当中 用来获取系统和软件的 日志 对于硬件设备 比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论