贾统(1993-), 男, 博士, 主要研究领域为分布式计算, 智能运维
李影(1975-), 女, 博士, 教授, 博士生导师, CCF高级会员, 主要研究领域为分布式计算, 可信计算
吴中海(1968-), 男, 博士, 教授, 博士生导师, CCF杰出会员, 主要研究领域为大数据技术, 系统安全, 嵌入式软件
基于日志数据的故障诊断是指通过智能化手段分析系统运行时产生的日志数据以自动化地发现系统异常、诊断系统故障.随着智能运维(artificial intelligence for IT operations,简称AIOps)的快速发展,该技术正成为学术界和工业界的研究热点.首先总结了基于日志数据的分布式软件系统故障诊断研究框架,然后就日志处理与特征提取、基于日志数据的异常检测、基于日志数据的故障预测和基于日志数据分析的故障根因诊断等关键技术对近年来国内外相关工作进行了深入分析,最后以所提出的研究框架为指导总结相关研究工作,并对未来研究可能面临的挑战进行了展望.
Log-based failure diagnosis refers to intelligent analysis of system runtime logs to automatically discover system anomalies and diagnose system failures. Today, this technology is one of the key technologies of artificial intelligence for IT operations (AIOps), which has become a research hotspot in both academia and industry. This study first analyzes the log-based failure diagnosis process, and summarizes the research framework of fault diagnosis based on logs and four key technologies in the field:Log processing and feature extraction technology, anomaly detection technology, failure prediction technology, and fault diagnosis technology. Next, a systematic review is conducted of the achievements of scholars at home and abroad in these four key technical fields in recent years. At last, the different technologies are summarized in this field based on the research framework, and the possible challenges are looked forwarded for future research.
分布式软件系统不仅广泛应用于互联网行业, 也应用于政府、金融、航天、军事等关键领域中.这类软件系统服务和应用通常拥有数以亿计的海量用户群, 任何微小的软件故障引发的服务中断或者服务质量下降都会带来巨大的损失.国际数据公司(International Data Corporation, 简称IDC)对1 000家企业的评估报告[
分布式软件系统规模庞大、组成及运行逻辑复杂, 导致系统故障频繁发生[
随着人工智能(artificial intelligence, 简称AI)的发展, 智能运维(artificial intelligence for IT operations, 简称AIOps)的概念[
(1) 能够支持更加细粒度的故障根因诊断.基于系统监控的故障诊断往往只能定位到某一个资源指标出现异常波动, 而基于日志数据的故障诊断技术可以定位到特定的出错日志及事件信息.
(2) 能够支持对程序执行逻辑的跟踪, 跨组件、跨服务地捕捉程序执行异常和性能异常.每一条请求在系统内部的执行逻辑通常会经过多个组件或程序模块, 每一个组件或程序模块均会输出日志, 这些日志可以在一定程度上反映该请求的执行轨迹.通过对这些日志进行关联和建模, 可以刻画复杂的请求执行路径, 进而诊断故障组件及故障程序执行位置.
(3) 能够支持定位异常请求实例, 捕捉故障细节.基于监控数据的故障诊断偏重于统计意义上的故障症状, 而基于日志数据的故障诊断则可以跟踪每一个请求实例, 识别异常, 并刻画异常请求执行路径上的相关细节.
因此, 基于日志数据的故障诊断对于提升分布式软件系统故障诊断效率, 进而提升系统可靠性和可用性十分重要.
本文第1节对基于日志数据的大规模分布式系统故障诊断方法的研究框架进行总结, 并总结归纳出其中的4个关键技术(日志处理与特征提取技术、基于日志数据的异常检测技术、基于日志数据的故障预测技术和基于日志数据的故障根因诊断技术).第2节对已有的日志处理与特征提取技术进行总结.第3节对基于日志数据的异常检测技术进行总结.第4节对基于日志数据的故障预测技术进行总结.第5节对基于日志数据的故障根因诊断技术进行分析.最后在第6节以本文提出的研究框架为指导总结分析相关研究工作, 并对未来值得关注的研究方向进行初步探讨.
分布式软件系统日志通常指的是分布式软件系统各组件运行时输出的日志, 例如OpenStack每个组件(如Nova-compute, Neutron等)、Hadoop各个组件(如Resource manager, Node manager)输出的日志.这些日志不包括操作系统日志、网络日志、硬件设备日志以及上层应用日志.不同的分布式系统由于功能特性的不同导致日志序列和日志内容的形成, 其最普遍和关键的日志特征是以请求(request)为核心(如Openstack的一次虚拟机启动请求, hadoop的一次job执行等), 本文所综述的故障诊断方法主要针对这种以请求为核心的日志数据.
典型的分布式软件系统日志包括两类:事务型日志(transactional log)和操作型日志(operational log).事务型日志表征请求/事务执行逻辑, 操作型日志表征诸如心跳、消息分派等独立事件.以流行的开源PaaS云计算平台软件Cloud Foundry为例, 其中负责管理应用程序生命周期的云控制器的日志记录查找容器、解析参数以及报告请求执行状态等请求执行步骤, 日志之间有明显的因果关联关系, 属于典型的事务型日志; 而监控组件负责协调应用程序以及跟踪其状态的HM 9000系统监控组件, 其每条日志代表一个独立事件, 用于接收和保存来自其他组件的心跳, 属于操作性日志, 日志之间相互独立.值得一提的是, 一个组件可能既输出事务型日志又输出操作型日志, 一个典型的例子是某组件既需要执行事务流程, 同时还需要定期报告心跳信息.针对事务型日志和操作型日志的不同特点, 分布式软件系统故障诊断技术通常会采取不同的数据分析和建模方法.
典型的软件系统故障过程包括3个阶段:故障根因出现、系统行为异常和系统运行故障.故障根因导致系统行为出现异常, 进而引发系统故障.如
故障、异常、故障根因关系示意图
Relationships of failure, anomaly and fault/root cause
基于日志数据的软件系统故障诊断通过分析、挖掘系统运行日志, 辅助运维人员理解系统行为, 诊断软件系统故障.该技术的研究框架包括4个关键技术(如
基于日志数据的分布式系统故障诊断研究框架
Research framework of log-based failure diagnosis for distributed systems
1.日志处理与特征提取(见第2节)
日志作为程序开发人员打印的文本信息, 具有半结构化特征; 分布式系统的日志量十分庞大, 且由于各个组件所使用的程序设计语言不同, 日志打印的风格和质量都有很大差异, 因此, 为降低日志数据的复杂性, 消除大量噪音并有效提取特征, 日志处理与特征提取技术利用机器学习、模式识别、统计分析、自然语言处理等方法, 分析和挖掘日志数据特征信息, 为异常检测、故障预测和故障根因诊断提供数据基础.
2.基于日志数据的异常检测(见第3节)
基于日志数据的异常检测即在系统日志数据中发现不符合预估行为的异常模式.其输出通常是日志片段是否属于异常的标签或日志片段包含系统异常信息的概率, 评测指标通常包括精确率(precision)、召回率(recall)和综合评价指标
3.基于日志数据的故障预测(见第4节)
基于日志数据的故障预测即通过当前日志数据预测在不远的将来是否会发生系统故障.其输出通常是系统未来是否会出现故障的标签或出现故障的概率, 评测指标通常包括精确率、召回率、综合评价指标
4.基于日志数据的故障根因诊断(见第5节)
基于日志数据的故障根因诊断即通过日志数据诊断与系统故障相关的根因信息, 如故障类型、故障位置、故障请求、故障代码片段等.故障根因诊断技术的输出即为多种类型的故障根因信息, 评测指标与基于日志数据的异常检测技术相似, 精确率用于评测输出故障信息的正确性, 召回率用于评测输出故障信息的全面性,
日志文本内容通常分为常量和变量, 其中, 常量描述当前程序的行为或功能, 变量则反映程序运行过程中的动态上下文信息.例如, ip地址、参数值、uuid等.以Hadoop NodeManager组件的日志片段(如
开源软件Hadoop日志示例
An example of Hadoop logs
日志数据的复杂性为日志处理与特征提取带来了极大的困难与挑战.首先, 日志数量庞大.例如, IBM的一个公有云子平台每天产生超过8亿条, 共计约720GB的日志数据.如何解析海量日志, 并从中挖掘有价值的信息成为一个难题.其次, 日志文本异构, 不同组件的日志具有强异构性.分布式软件系统各个组件的功能逻辑不同、开发团队不同、所使用的程序设计语言不同、开发时所考虑的关键日志打印信息亦不同, 导致日志的文本、结构、风格和质量大相径庭.如何支持异构日志的统一处理成为一个关键性问题.最后, 日志文本具有半结构化特征, 日志中自然语言和机器语言交织.日志中包含了时间戳、日志等级等结构化信息, 同时也包含了由自然语言文本组成的非结构化信息.日志内容通常由机器语言和自然语言糅合交织而成, 其中, 机器语言通常包括一些标识信息和数值型指标信息, 自然语言则主要包括对日志时间的描述文本.多层次、多维度、多类型的文本交织使得日志内容变得极为复杂, 给日志的解析处理带来极大的困难.
为解决上述问题, 研究人员提出了日志模板挖掘技术和日志特征提取技术, 用以从降低日志文本的异构复杂性、从海量日志中提取有价值的信息.日志模板挖掘关注于日志中的常量部分, 日志特征提取则关注于日志中的变量部分或其他特征.更进一步地, 本文将日志模板挖掘技术划分为基于静态代码分析、基于频繁项集挖掘和基于聚类的日志模板挖掘技术, 将日志特征提取技术划分为基于自然语言处理的日志特征提取技术、基于规则的结构化日志信息提取技术和基于统计模型的日志特征提取技术(如
日志数据处理与特征提取方法分类及相关文献
Related work of log parsing approaches
日志模板指的是以日志中的常量为标识的日志类型抽象.本质上, 日志模板对应程序中的日志打印语句, 相同日志打印语句输出的日志即属于同一个模板.如
日志打印代码与日志模板示例
An example of logging statements and log templates
从上述分析可知, 理论上讲, 日志模板和日志打印语句应为一一对应关系.因此, 精确、合理的日志模板应能表征程序中的每一条日志打印语句.然而, 在现实中, 日志模板的关键用途在于保留关键日志信息, 压缩异构日志, 从而更高效地处理和理解日志内容.在这种情况下, 同一日志打印代码语句对应的日志模板或者精确以日志常量为标识的日志模板却不一定是最合适的日志模板.例如, 分布式系统中的消息分发组件的作用是与其他若干组件通信并转发请求, 这类组件的日志通常包含很多变量以记录转发状态、目的地、资源请求等信息.对于这些日志而言, 仅仅提取其中的常量作为模板将会生成极少的无用模板而丢失大量的信息.因此, 本文认为, 有价值的日志模板应具备如下特点:(1)模板数目适中, 太多的模板带来较低的压缩比, 进而增加日志后续工作的复杂度, 太少的日志又会丢失有价值的信息; (2)表征重要信息的变量应作为模板内容被提取出来.下面详细介绍日志模板挖掘的3种主要方法及相关工作.
1.基于静态代码分析的日志模板挖掘
该方法即利用静态代码分析等技术手段, 从代码中搜索日志打印语句并从这些语句中挖掘模板.从代码中挖掘日志模板依赖于不同的程序设计语言.对于C语言或者类C语言, 日志模板可以直接通过日志打印语句进行推理和提取.对于Java等面向对象的编程语言, 从代码中提取日志模板就变得十分复杂, 主要面临3个困难和挑战:(1)必须预先获取日志打印类名(如log4j中的Log类); (2)面向对象程序设计语言中的字符串输出语句中的变量对象实际上实现了toString()方法, 因此需要深入到变量对象的类内部代码进行搜索; (3)由于类之间继承关系的存在, 实际的调用toString()函数的代码可能位于子类中.
针对这3个挑战, Xu等人[
相关文献[
2.基于频繁项集挖掘的日志模板挖掘
假设在不同日志中频繁出现的相同词语极有可能是常量, 基于频繁项集挖掘的日志模板挖掘方法将每一条日志看作一条交易记录, 将其中每一个词(token)看作一个商品, 通过挖掘频繁词集合, 确定日志中的常量, 进而通过组合这些词最终生成日志模板.Vaarandi[
Vaarandi[
3.基于聚类的日志模板挖掘
基于聚类的日志模板挖掘的特点是忽略日志中词语的出现频率, 利用日志文本的相似度对日志聚类, 从而挖掘日志模板.这类算法最早在2008年Jiang等人的研究工作[
与Fu等人的方法相比, Chen等人[
为了克服聚类算法迭代次数较多、执行速度较慢的缺点, 近年来, 基于聚类的在线日志模板挖掘方法[
4.日志模板挖掘技术分析
日志模板挖掘方法分析
Analysis of log template mining approaches
日志模板挖掘 | 输入 | 执行效率 | 优点 | 缺点 |
日志模板挖掘 | 输入 | 执行效率 | 优点 | 缺点 |
基于静态代码分析的 |
系统源代码/日志 | 高 | 1.日志模板挖掘速度快; |
需要系统源代码, 对不同的程序设计语言, |
基于频繁项集挖掘的 |
日志 | 高 | 1.日志模板挖掘速度快; |
1.受用户指定置信度和支持度阈值影响较大 |
基于聚类的日志 |
日志 | 低 | 1.无需其他先验知识; |
1.聚类算法迭代次数较多, 执行速度较慢 |
日志特征提取方法可分为基于自然语言处理、基于规则和基于统计模型的日志特征提取方法.基于自然语言处理的方法将每一条日志看作一段文本, 利用自然语言处理领域的方法处理日志; 基于规则的方法假设日志结构已知, 通过关键词提取或者指定过滤规则, 对日志的不同域进行提取; 基于统计模型的方法通常基于日志模板挖掘技术, 通过划分时间窗口, 统计每一个时间窗口内日志模板的出现频率, 从而将每一个时间窗口内的日志转化成日志模板频率向量.下面详细介绍这3种方法及其相关工作.
1.基于自然语言处理的日志特征提取
基于自然语言处理的日志特征提取通常包括3种基本模型:
2.基于规则的结构化日志信息提取
基于规则的结构化日志信息提取假设或已知日志结构, 通过关键词提取或者指定过滤规则, 对日志的不同域(field)进行提取.Chuah等人[
3.基于统计模型的日志特征提取
基于统计模型的日志特征提取通常基于日志模板挖掘方法, 统计每一个日志模板在时间窗口内的出现频率, 从而将日志转化成频率向量(message count vector)[
4.日志特征提取技术分析
日志特征提取方法分析
Analysis of log feature extraction approaches
日志特征提取 | 输入 | 输出 | 优点 | 缺点 |
基于自然语言处理的日志特征提取 | 日志 | 特征向量 | 充分利用日志的文本特征, 能够捕获日志中自然语言部分的语义信息, 生成数字化特征向量 | 忽略日志序列的上下文关联关系, 特征向量维度可能会很大, 影响后续计算复杂度 |
基于规则的日志结构化信息提取 | 日志 | 日志中每个域中的信息 | 将日志转化为结构化的文本信息, 计算过程简单, 输出整洁精确 | 日志数据需要属于同一个格式, 且需要日志结构的先验知识以定义日志切分正则表达式; 适用范围较窄, 只能针对包含特定间隔符的日志, 难以广泛应用 |
基于统计模型的日志特征提取 | 日志/日志模板 | 特征向量 | 充分提取日志在时间轴上的频率分布特征, 将日志序列转化为数字化的特征向量, 计算效率高, 通用性强 | 忽略日志的文本特征以及前后关联关系, 特征向量包含信息有限, 只能作为系统故障发现的一个简单指标, 仅能捕获日志模板分布的变化情况, 难以适用于构建复杂情况下异常的故障诊断模型 |
基于日志数据异常检测的目的是在线地对系统进行日志收集与分析, 在系统日志中找到不符合预估行为的模式.其主要思路是从系统正常运行的日志数据中学习“健康”状态模型, 故障探测过程通过寻找是否有与“健康”状态模型冲突的在线数据.由于日志数据与分布式软件系统的复杂性, 基于日志数据的异常检测面临两个关键性挑战.(1)日志数据中的异常表征复杂多样, 难以有效捕获.日志数据中的异常可能包含分布异常、序列异常、变量异常等, 如何构造有效的异常检测模型以捕获复杂的异常成为一个技术上的挑战.(2)从海量日志数据中精准发现少量异常是一个难点.日志数量庞大, 异常表征往往会隐藏在海量日志中, 如何构造高效的异常检测模型快速过滤海量日志并发现其中的异常成为一个技术上的挑战.
现有技术可分为3类:基于图模型的异常检测、基于概率分析的异常检测和基于机器学习的异常检测.基于图模型的异常检测对日志的序列关系、关联关系以及日志文本内容进行建模; 基于概率统计的异常检测采用关联分析、对比等, 计算日志与异常的关联概率; 基于机器学习的异常检测采用聚类算法找到离群值(outlier)或分类算法学习故障时的日志模式, 判断在线日志数据是否符合这些日志模式.该技术的方法分类及相关文献如下文的
基于日志数据的异常检测方法分类及相关文献
Related work of anomaly detection approaches
基于图模型的异常检测采用有向图(DAG)模型对表征系统执行逻辑的日志序列进行建模.该方法要求日志之间存在因果关联关系, 具备表征请求/事务执行逻辑的能力, 因此适用于事务型日志.文献[
文献[
除了有向图模型外, 一部分研究工作尝试采用Page-Rank模型、信息熵模型等对日志序列进行建模.文献[
基于概率分析的异常检测技术从日志中挖掘频率向量、规则等, 通过计算在线日志频率分布与已挖掘的频率向量、规则等的匹配程度或相似概率, 进而计算在线日志的异常概率.该方法主要通过抽取不同时间窗口内日志的频率或序列特征, 对日志序列的上下文关联没有要求, 因此适用于事务型日志和操作型日志.
文献[
基于机器学习的异常检测从日志特征向量中学习系统正常运行的关键特征, 对比这些关键特征检测异常, 或对日志集或日志特征向量集进行无监督聚类检测出的离群点即为异常点.该方法通常使用单条日志或日志集合的特征向量构建机器学习模型, 对日志序列的上下文关联没有要求, 因此适用于事务型日志和操作型日志.
文献[
基于日志数据的异常检测方法对比分析
Analysis of log-based anomaly detection approaches
异常检测 | 输入 | 效率 | 适用日 |
优点 | 缺点 |
基于图模型的异常检测 | 日志/日志模板 | 低 | 事务型 |
充分利用日志序列的上下文关系, 构建请求执行逻辑图, 具备强大的异常检测能力, 能够有效细粒度地探测包括分支异常、性能异常等在内的多种类型的复杂系统异常 | 忽略了日志的文本特征和统计特征, 特别是变量信息, 无法探测日志中变量值变化表征的系统异常, 同时, 该方法对日志序列进行建模往往需要日志文本中包含一定的关联信息, 具备一定的限制; 另外, 刻画系统多线程和并发的复杂情形十分困难, 难以保障精确度, 需要大量的离线日志建模过程 |
基于概率分析的异常检测 | 日志/日志模板频率向量 | 高 | 事务型日志/操作型日志 | 执行效率很高, 能够在线快速找到系统运行时的异常.无需离线建模过程 | 仅仅关注日志数据在时间轴上的表征, 对系统异常探测的范围和质量有限 |
基于机器学习的异常检测 | 日志/日志特征向量 | 低 | 事务型日志/操作型日志 | 关注于日志特征的处理和使用, 屏蔽了日志的异构性, 方法适用范围广.机器学习结果分析可以反映出与异常相关的关键特征, 进而帮助理解系统行为 | 十分依赖日志数据特征的选取和质量, 可能需要大量的标注日志数据用于离线的异常检测模型训练, 异常检测的范围和质量受限, 难以适用于复杂异构多变的大规模分布式系统 |
基于日志数据的故障预测在系统运行过程中预测未来一定时间范围内是否会发生系统故障.通过学习故障发生前若干时间内的日志模式或变化趋势, 在故障发生之前就是否会出现故障(label)或出现故障的概率(score)及时预警.基于日志数据的故障预测面临两个关键性技术挑战.(1)系统故障前的日志数据往往不具备明显的异常特征, 如何从微弱的异常趋势中判断系统问题是一个挑战.(2)系统故障前往往伴随持续性的异常变化, 如何尽早预测出系统故障成为另一个挑战.相关工作如
基于日志数据的故障预测方法分类及相关文献
Related work of failure prediction approaches
基于概率分析的故障预测首先找到系统故障点, 使用Error、Fatal等日志信息标注; 然后在故障点之前划分时间窗口, 通过概率模型学习与故障相关的日志序列模式, 计算每一种日志序列模式与故障的关联概率, 进而预测故障.该方法依赖于日志序列模式和日志之间的因果关联关系, 因此仅适用于事务型日志.
文献[
基于机器学习的故障预测方法依赖于有故障标签的日志数据, 并将故障预测转化为机器学习中的分类问题.该方法通常需要提取故障发生前一段时间内的日志序列特征, 要求日志序列具备上下文关联的特性以预测未来的日志表征, 因此仅适用于事务型日志.文献[
与文献[
基于日志数据的故障预测方法对比分析
Analysis of log-based failure prediction approaches
故障预测 | 输入 | 效率 | 适用日 |
优点 | 缺点 |
基于概率分析的故障预测 | 日志/日志模板 | 高 | 事务型日志 | 利用日志的前后关联关系, 通过故障前日志序列的出现频率计算日志序列与故障的关联概率, 执行效率高且无需训练过程 | 1.需要先验知识切分日志序列; |
基于机器学习的故障预测 | 日志/日志特征向量 | 低 | 事务型日志 | 通过学习故障前日志序列的模式, 利用日志的序列特征和文本特征, 预测精确度高, 对于新出现的日志序列也可以进行预测 | 十分依赖日志数据特征的选取和质量, 可能需要大量的标注日志数据用于离线的故障预测模型训练, 故障预测的范围和质量受限 |
日志是系统管理或者开发人员理解系统行为的重要数据源, 因此日志数据在辅助定位故障位置、诊断故障原因方面占据最重要的地位.基于日志数据的故障诊断是当故障或异常发生后, 自动化地快速、准确定位故障位置, 诊断引发系统故障的根本原因.其主要思路是通过机器学习、文本挖掘以及图模型算法从海量日志中找到与故障敏感的各种信息, 包括故障相关的代码片段、日志集合、异常请求的执行路径或者故障类型等.代码片段是指与故障相关的代码及其上下文, 日志集合是指与故障相关的一条或若干条日志, 异常请求执行路径是指与故障相关的以日志序列为表征的请求执行路径, 故障类型是指预设的故障根因类型(如网络中断、服务挂起、程序死锁等).从方法角度来看, 主要包括基于关联推断的技术和基于机器学习的技术.
基于日志数据的故障根因诊断方法分类及相关文献
Related work of failure diagnosis approaches
基于关联推断故障根因诊断技术通过代码分析、系统侵入、日志文本挖掘等手段对日志序列、日志内容、代码中的日志打印点进行描述性建模, 推断与故障关联的日志信息, 定位与故障相关的代码片段、日志集合以及异常请求执行路径等.该方法依赖于将日志序列与代码、请求执行路径、故障类型等进行关联, 因此往往仅适用于事务型日志.
1.故障诊断粒度为代码片段
Yuan等人[
Zhang等人[
与此类似, Zhao等人[
2.故障诊断粒度为日志集合
这类方法通常包括基于时间窗口切分的方法和基于关联分析的方法.基于时间窗口切分的方法按照时间窗口切分日志, 对时间窗口内的日志提取特征, 对日志建模发现故障时间窗口.基于关联分析的方法则对日志条目提取特征, 针对故障日志条目, 例如ERROR级别的日志等, 挖掘这类日志条目与其他日志之间的关联关系, 进而诊断出故障相关的日志集合.
Chen等人[
3.故障诊断粒度为异常请求执行路径
这类方法的主要思路是利用日志构建图模型, 用以刻画软件系统的请求执行路径, 进而与在线日志序列比对, 发现异常日志序列并定位异常请求执行路径.
Zhao等人[
Nguyen等人[
Fu等人[
基于机器学习的故障根因诊断的基本思路是对日志或日志序列提取特征, 利用分类或聚类算法检测故障日志或故障日志序列.该方法既可以利用不同时间窗口内的日志或日志模板数量分布特征, 又可以利用日志序列的上下文关联特征, 因此能够适用于事务型日志和操作型日志.
1.故障诊断粒度为日志集合
这类方法通常划分时间窗口, 对每一个时间窗口内的日志提取特征, 采用机器学习算法学习这些特征进而判断异常时间窗口, 并定位故障时间窗口内的日志集合.
饶翔等人[
Yen等人[
Davidsen等人[
2.故障诊断粒度为异常请求执行路径
这类方法关注于处理和分析以请求为关注核心的日志序列.部分工作[
Fu等人[
Lo等人[
Xu等人[
近年来, 深度学习在图像、语音等领域取得了非凡的成就, 有研究人员将深度学习模型应用于基于日志数据的故障诊断领域, 取得了良好的效果.其中的一个代表性工作是:Du等人[
3.故障诊断粒度为故障类型
针对易复发故障(recurrent failure), Reidemeister等人[
基于日志数据的故障根因诊断方法分析
Analysis of log-based fault diagnosis approaches
故障根 |
输入 | 适用日 |
优点 | 缺点 |
基于关联推断的故障根因诊断 | 日志/日志模板 | 事务型 |
1.充分利用日志之间的上下文关联关系, 恢复请求执行逻辑, 可以细粒度地定位不同类型的系统故障; |
1.对日志序列进行建模难以精确刻画系统多线程和并发的复杂情形; |
基于机器学习的故障根因诊断 | 日志/日志模板 | 事务型日志/操作型日志 | 1.可以输出与故障敏感的日志集合或输出故障类型; |
1.需要离线训练阶段以及大量带标签的训练数据; |
基于关联推断的方法可以充分利用日志之间的上下文关联关系, 恢复请求执行逻辑, 可以细粒度地定位不同类型的系统故障, 并且可以定位与故障敏感的请求执行路径, 故障诊断效率较高, 模型易于理解, 能够有效地为运维人员修复故障提供支持; 缺点在于仅适用于事务型日志序列, 无法检测操作型日志中的异常表征, 对日志序列进行建模难以精确刻画系统多线程和并发的复杂情形, 可能需要大量的系统知识辅助离线建模过程, 构建故障根因诊断模型可能需要日志文本中包含一些关联信息, 如请求ID、线程ID等, 具有一定的适用范围限制; 基于机器学习的方法可以方便输出与故障敏感的日志集合或输出故障类型, 对日志的内容和系统知识的假设较少, 能够有效地从不同的日志类型中提取较为全面的特征并构建模型, 适用事务型日志和操作型日志; 缺点在于十分依赖日志特征的选取和处理, 需要离线训练阶段以及大量带标签的训练数据, 故障定位粒度较粗, 辅助故障诊断的能力弱于基于关联推断的方法.同时, 机器学习模型和深度学习模型往往难以理解, 对运维人员修复故障的辅助能力不足.
以第1节所述基于日志数据的分布式系统故障诊断研究框架为指导, 对日志处理与特征提取技术、异常检测、故障预测及故障根因诊断技术的相关工作进行总结分析(见
基于日志数据的故障诊断技术相关文献总结
Summary of log-based failure diagnosis approaches
日志处理与特征提取 | |||||||
日志模板挖掘方法 | 日志特征提取方法 | ||||||
基于静态代码分析的日志模板挖掘方法 | 基于频繁项集挖掘的日志模板挖掘方法 | 基于聚类的日志模板挖掘方法 | 基于自然语言处理的日志特征提取方法 | 基于规则的结构化信息提取方法 | 基于统计模型的日志特征提取方法 | ||
基于日志数据的异常检测 | 基于图模型的异常检测方法 | - | [ |
[ |
[ |
[ |
- |
基于概率分析的异常检测方法 | - | - | [ |
[ |
- | [ |
|
基于机器学习的异常检测方法 | [ |
- | [ |
[ |
[ |
- | |
基于日志数据的故障预测 | 基于概率分析的故障预测方法 | - | - | [ |
- | [ |
- |
基于机器学习的故障预测方法 | - | - | - | [ |
[ |
- | |
基于日志数据的故障根因诊断 | 基于关联推断的故障根因诊断 | [ |
[ |
[ |
- | [ |
[ |
基于机器学习的故障根因诊断 | [ |
[ |
[ |
[ |
[ |
[ |
进一步地, 通过对日志处理与特征提取技术、异常检测、故障预测及故障根因诊断所使用的重要技术进行总结分析(见
基于日志数据的故障诊断技术手段总结
Summary of log-based failure diagnosis techniques
机器学习 | 静态代码分析 | 自然语言处理 | 统计分析 | 关联概率分析 | 频繁项集挖掘 | 有向图构建 |
|
日志处理与特征提取 | √ | √ | √ | √ | - | √ | - |
基于日志数据的异常检测 | √ | - | - | √ | √ | - | √ |
基于日志数据的故障预测 | √ | - | - | √ | √ | √ | - |
基于日志数据的故障根因诊断 | √ | √ | √ | √ | √ | - | √ |
本文就日志处理与特征提取、基于日志数据的异常检测、基于日志数据的故障预测和基于日志数据的故障根因诊断4个关键技术, 对基于日志数据的故障诊断研究领域的相关研究工作进行了综述和分析.虽然现有研究工作已经取得了一定的成果和进展, 但该领域仍存在许多关键问题值得深入探讨和研究.
1.故障诊断任务驱动的日志嵌入表示方法
现有日志处理与特征提取技术存在两个关键问题:(1)该技术以简化日志表示、降低日志复杂性为根本目的而非提升故障诊断效率.例如, 日志模板的本质是对海量日志的抽象, 以模板的形式简化复杂的日志文本; 日志特征提取方法则从日志文本中摄取少量的简单信息, 如词频信息、特殊标识符信息等.这些方法提取的信息或特征可能与故障诊断任务无关, 同时导致关键故障信息丢失.(2)该技术难以做到精准和普适.例如, 日志中的常量和变量交织分布情况可能及其复杂, 以概率统计为基础的日志模板挖掘方法往往难以完全正确生成日志模板; 而日志特征提取方法则依赖于日志文本的内容和结构, 对于不同系统的日志而言, 其提取的特征质量千差万别.为解决上述问题, 未来可能从全新的角度思考日志处理与特征提取技术, 借鉴基于深度学习的自然语言处理技术中的词嵌入表示(word embedding)方法, 以故障诊断任务为目标构建或训练日志的嵌入表示方法.
2.面向复杂系统的精准的故障预测模型与方法
现有基于日志数据的故障预测技术的相关研究工作较为薄弱, 主要存在如下几个关键问题:(1)现有故障预测模型多以机器学习算法为基础, 方法较为简单, 预测粒度粗, 无法支持复杂的甚至是多故障集中爆发情况的预测; (2)现有故障预测模型多以单日志序列为训练集, 无法支持分布式系统中故障在多组件中蔓延和传播情况下的故障预测; (3)现有故障预测方法往往仅利用了日志数据的少量文本或统计特征, 在故障预测精确度方面仍有很大的提升空间.因此, 未来可能以多组件协作的复杂分布式软件系统为目标, 以时间序列分析技术、机器学习技术、图计算技术等为基本手段, 构建面向复杂系统的精准故障预测模型.
3.在线自学习、自更新异常检测、故障预测及故障根因诊断模型与方法
在当今DevOps的快速开发迭代环境中, 系统更新极为频繁, 随之带来的是日志的频繁更新与改变.这种频繁的系统更新要求故障诊断模型具备快速在线训练、更新和适应的能力, 以保障故障诊断模型的可用性和有效性.然而, 现有异常检测、故障预测及故障根因诊断模型均采用离线训练、在线使用的模式.这种模式仅支持离线重训练(re-training), 速度慢、效率低, 无法适应频繁的系统更新.因此, 未来需要研究异常检测、故障预测及故障根因诊断模型的在线训练、更新方法与策略, 故障诊断方法的自适应扩展及集成技术, 实现异常检测、故障预测及故障根因诊断模型的在线动态快速自训练、自更新、自学习及自适应.
Elliot S. DevOps and the cost of downtime:Fortune 1000 best practice metrics quantified. International Data Corporation (IDC), 2014.
https://www.crn.com/slide-shows/cloud/the-10-biggest-cloud-outages-of-2018]]>
https://yq.aliyun.com/articles/603866/, 2018.]]>
https://www.ithome.com/html/it/372627, 2018.]]>
https://www.gartner.com/doc/3892967/market-guide-aiops-platforms]]>
https://www.bmc.com/blogs/what-is-aiops]]>
Zhao X, Zhang Y, Lion D, et al. Lprof:A non-intrusive request flow profiler for distributed systems. In:Proc. of the 11th Symp. on Operating Systems Design and Implementation. USENIX, 2014. 629-644.
Xu W, Huang L, Fox A, et al. Detecting large-scale system problems by mining console logs. In:Proc. of the Int'l Conf. on Machine Learning. IEEE, 2009. 117-132.
Xu W, Huang L, Fox A, et al. Mining console logs for large-scale system problem detection. In:Proc. of the Workshop on Tackling Computer Systems Problems with Machine Learning Techniques. San Diego:IEEE, 2008. 4.
Xu W, Huang L, Fox A, et al. Online system problem detection by mining patterns of console logs. In:Proc. of the 9th Int'l Conf. on Data Mining. Miami:IEEE, 2009. 588-597.
Xu W. System problem detection by mining console logs[Ph.D. Thesis]. Berkeley: University of California, 2010.
Yuan D, Mai H, Xiong W, et al. SherLog:Error diagnosis by connecting clues from run-time logs. In:Proc. of the 15th Edition on Architectural Support for Programming Languages and Operating Systems. ACM, 2010. 143-154.
Ghanbari S, Hashemi AB, Amza C. Stage-aware anomaly detection through tracking log points. In:Proc. of the 15th Int'l Middleware Conf. ACM, 2014. 253-264.
Vaarandi R. A breadth-first algorithm for mining frequent patterns from event logs. In:Proc. of the Int'l Conf. on Intelligence in Communication Systems. IEEE, 2004. 293-308.
Nandi A, Mandal A, Atreja S, et al. Anomaly detection using program control flow graph mining from execution logs. In:Proc. of the Int'l Conf. on Knowledge Discovery and Data Mining. ACM, 2016. 215-224.
Makanju AAO, Zincir-Heywood AN, Milios EE. Clustering event logs using iterative partitioning. In:Proc. of the 15th Int'l Conf. on Knowledge Discovery and Data Mining. ACM, 2009. 1255-1264.
Reidemeister T, Jiang M, Ward PAS. Mining unstructured log files for recurrent fault diagnosis. In:Proc. of the Int'l Symp. on Integrated Network Management. DBLP, 2011. 377-384.
Vaarandi R. A data clustering algorithm for mining patterns from event logs. In:Proc. of the Int'l Conf. on IT Operations & Management. IEEE, 2003. 119-126.
Vaarandi R, Pihelgas M. LogCluster:A data clustering and pattern mining algorithm for event logs. In:Proc. of the Int'l Conf.on Network and Service Management. IEEE, 2015. 1-7.
Reidemeister T, Munawar MA, Ward PAS. Identifying symptoms of recurrent faults in log files of distributed information systems. In:Proc. of the Network Operations and Management Symp. IEEE, 2010. 187-194.
Tak BC, Tao S, Yang L, et al. LOGAN:Problem diagnosis in the cloud using log-based reference models. In:Proc. of the Int'l Conf. on Cloud Engineering. IEEE, 2016. 62-67.
Babenko A, Mariani L, Pastore F. AVA:Automated interpretation of dynamically detected anomalies. In:Proc. of the Int'l Symp. on Software Testing and Analysis. IEEE, 2009. 237-248.
Mariani L, Pastore F. Automated identification of failure causes in system logs. In:Proc. of the Int'l Symp. on Software Reliability Engineering. IEEE, 2008. 117-126.
Gainaru A, Cappello F, Trausan-Matu S, et al. Event log mining tool for large scale HPC systems. In:Proc. of the European Conf. on Parallel Processing. Berlin, Heidelberg. Springer-Verlag, 2011. 52-64.
Vaarandi R. Mining event logs with SLCT and loghound. In:Proc. of the Network Operations and Management Symp. IEEE, 2008. 1071-1074.
Lin Q, Zhang H, Lou J G, et al. Log clustering-based problem identification for online service systems. In:Proc. of the 38th Int'l Conf. on Software Engineering Companion. ACM, 2016. 102-111.
Lou JG, Fu Q, Yang S, et al. Mining invariants from console logs for system problem detection. In:Proc. of the ATC. USENIX, 2010. 231-244.
Fu Q, Lou JG, Lin Q, et al. Contextual analysis of program logs for understanding system behaviors. In:Proc. of the Int'l Conf. on Mining Software Repositories. IEEE, 2013. 397-400.
Ding R, Fu Q, Lou JG, et al. Healing online service systems via mining historical issue repositories. In:Proc. of the Int'l Conf. on Automated Software Engineering. IEEE, 2012. 318-321.
Fu Q, Lou JG, Wang Y, et al. Execution anomaly detection in distributed systems through unstructured log analysis. In:Proc. of the Int'l Conf. on Data Mining. IEEE, 2009. 149-158.
Lou JG, Fu Q, Wang Y, et al. Mining dependency in distributed systems through unstructured logs analysis. ACM SIGOPS Operating Systems Review, 2010, 44(1):91-96.
Chen C, Singh N, Yajnik S. Log analytics for dependable enterprise telephony. In:Proc. of the 9th European Dependable Computing Conf. IEEE, 2012. 94-101.
Du S, Cao J. Behavioral anomaly detection approach based on log monitoring. In: Proc. of the Int'l Conf. on Behavioral, Economic and Socio-cultural Computing. IEEE, 2015.
Li T, Liang F, Ma S,
Aharon M, Barash G, Cohen I, et al. One graph is worth a thousand logs:Uncovering hidden structures in massive system event logs. In:Proc. of the Joint European Conf. on Machine Learning and Knowledge Discovery in Databases. Berlin, Heidelberg:Springer-Verlag, 2009. 227-243.
Jia T, Li Y, Tang H, et al. An approach to pinpointing bug-induced failure in logs of open cloud platforms. In:Proc. of the Int'l Conf. on Cloud Computing. IEEE, 2016. 294-302.
Debnath B, Solaimani M, Gulzar MAG, et al. LogLens:A real-time log analysis system. In:Proc. of the 38th Int'l Conf. on Distributed Computing Systems (ICDCS). IEEE, 2018. 1052-1062.
He P, Zhu J, He S, et al. Towards automated log parsing for large-scale log data analysis. IEEE Trans. on Dependable & Secure Computin, 2017, (99): 1.
He P, Zhu J, Zheng Z, et al. Drain:An online log parsing approach with fixed depth tree. In:Proc. of the Int'l Conf. on Web Services. IEEE, 2017. 33-40.
Watanabe Y, Otsuka H, Sonoda M, Kikuchi S, Matsumoto Y. Online failure prediction in cloud datacenters by real-time message pattern learning. In:Proc. of the Int'l Conf. on Cloud Computing Technology and Science (CloudCom). IEEE, 2012. 504-511.
Jiang ZM, Hassan AE, Hamann G, et al. An automated approach for abstracting execution logs to execution events. Journal of Software Maintenance & Evolution Research & Practice, 2008, 20(4):249-267.
Jiang ZM, Hassan AE, Flora P, et al. Abstracting execution logs to execution events for enterprise applications. In:Proc. of the 8th Int'l Conf. on Quality Software. IEEE, 2008. 181-186.
Du M, Li F, Zheng G, et al. Deeplog:Anomaly detection and diagnosis from system logs through deep learning. In:Proc. of the 2017 Conf. on Computer and Communications Security. ACM, 2017. 1285-1298.
Zhu KQ, Fisher K, Walker D. Incremental learning of system log formats. ACM SIGOPS Operating Systems Review, 2010, 44(1):85-90.
Hamooni H, Debnath B, Xu J, et al. Logmine:Fast pattern recognition for log analytics. In:Proc. of the 25th Int'l Conf. on Information and Knowledge Management. ACM, 2016. 1573-1582.
Mizutani M. Incremental mining of system log format. In:Proc. of the Int'l Conf. on Services Computing. IEEE, 2013. 595-602.
Tang L, Li T, Perng CS. LogSig:Generating system events from raw textual logs. In:Proc. of the 20th ACM Int'l Conf. on Information and Knowledge Management. ACM, 2011. 785-794.
Du M, Li F. Spell:Streaming parsing of system event logs. In:Proc. of the 16th Int'l Conf. on Data Mining. IEEE, 2016. 859-864.
Oliner AJ, Aiken A. Online detection of multi-component interactions in production systems. In:Proc. of the IEEE/IFIP Int'l Conf. on Dependable Systems and Networks. Hong Kong:IEEE, 2011. 49-60.
Oliner AJ, Aiken A, Stearley J. Alert detection in system logs. In:Proc.of the Int'l Conf. on Data Mining. IEEE, 2008. 959-964.
Stearley J, Oliner AJ. Bad words:Finding faults in spirit's syslogs. In:Proc. of the Int'l Symp. on CLUSTER. IEEE, 2008. 765-770.
Juvonen A, Hamalainen T. An efficient network log anomaly detection system using random projection dimensionality reduction. In:Proc. of the 6th Int'l Conf. on New Technologies, Mobility and Security. IEEE, 2014. 1-5.
Sipola T, Juvonen A, Lehtonen J. Anomaly detection from network logs using diffusion maps. In:Proc. of the IFIP Advances in Information & Communication Technology, IEEE, 2011, 363:172-181.
Sipola T, Juvonen A, Lehtonen J. Dimensionality reduction framework for detecting anomalies from network logs. In: Proc. of the Engineering Intelligent Systems. 2012.
Bertero C, Roy M, Sauvanaud C, et al. Experience report:Log mining using natural language processing and application to anomaly detection. In:Proc. of the 28th Int'l Symp. on Software Reliability Engineering (ISSRE). IEEE, 2017. 351-360.
Brown A, Tuor A, Hutchinson B,
Chow M, Meisner D, Flinn J, et al. The mystery machine:End-to-end performance analysis of large-scale internet services. In:Proc. of the 11th Symp. on Operating Systems Design and Implementation. USENIX, 2014. 217-231.
Chuah E, Jhumka A, Narasimhamurthy S, et al. Linking resource usage anomalies with system failures from cluster log data. In:Proc. of the 32nd Int'l Symp. on Reliable Distributed Systems. IEEE, 2013. 111-120.
Yen TF, Oprea A, Onarlioglu K, et al. Beehive:Large-scale log analysis for detecting suspicious activity in enterprise networks. In:Proc. of the Int'l Conf. on Computer Security Applications. IEEE, 2013. 199-208.
Yu X, Joshi P, Xu J, et al. CloudSeer:Workflow monitoring of cloud infrastructures via interleaved logs. SIGOPS Operating Systems Review, 2016, 50(2):489-502.
Davidsen B, Kristensen E. Pinpoint:Problem determination in large, dynamic Internet services. In:Proc. of the Int'l Conf. on Dependable Systems and Networks. IEEE, 2002. 595-604.
Liang Y, Zhang Y, Sivasubramaniam A, et al. BlueGene/L failure analysis and prediction models. In:Proc. of the Int'l Conf. on Dependable Systems and Networks. IEEE, 2006. 425-434.
Beschastnikh I, Brun Y, Ernst MD, et al. Inferring models of concurrent systems from logs of their behavior with CSight. In:Proc. of the 36th Int'l Conf. on Software Engineering. ACM, 2014. 468-479.
Chuah E, Kuo S, Hiew P, et al. Diagnosing the root-causes of failures from cluster log files. In:Proc. of the Int'l Conf. on High Performance Computing. IEEE, 2010. 1-10.
Nagaraj K, Killian C, Neville J. Structured comparative analysis of systems logs to diagnose performance problems. In: Proc. of the 9th USENIX Conf. on Networked Systems Design and Implementation. USENIX, 2012. 26.
Mi HB, Wang HM, Zhou YF, et al. Localizing root causes of performance anomalies in cloud computing systems by analyzing request trace logs. Science China Information Sciences, 2012, 55(12):2757-2773.
Lim C, Singh N, Yajnik S. A log mining approach to failure analysis of enterprise telephony systems. In:Proc. of the Int'l Conf. on Dependable Systems and Networks. IEEE, 2008. 398-403.
Yan X, Zhou W, Gao Y, et al. PADM:Page rank-based anomaly detection method of log sequences by graph computing. In:Proc. of the Int'l Conf. on Cloud Computing Technology and Science. IEEE, 2014. 700-703.
Oliner AJ, Kulkarni AV, Aiken A. Using correlated surprise to infer shared influence. In Proc. of the IEEE/IFIP Int'l Conf. on Dependable Systems and Networks. Chicago:IEEE, 2010. 191-200.
Rao X, Wang HM, Chen ZB, et al. Detecting faults by tracing companion states in cloud computing systems. Chinese Journal of Computers, 2012, 35(5):856-870(in Chinese with English abstract).
饶翔, 王怀民, 陈振邦, 等.云计算系统中基于伴随状态追踪的故障检测机制.计算机学报, 2012, 35(5):856-870.
Rao X, Tian Q,
饶翔, 田青, 朱鸿宇, 等.云计算系统中基于子序列特征向量的海量日志异常检测方法.见: 全国信息存储技术学术会议.2012.
Vinayakumar R, Soman KP, Poornachandran P. Long short-term memory-based operation log anomaly detection. In:Proc. of the Int'l Conf. on Advances in Computing, Communications and Informatics. IEEE, 2017. 236-242.
Lu S, Wei X, Li Y, et al. Detecting anomaly in big data system logs using convolutional neural network. In:Proc. of the 16th Int'l Conf. on Dependable, Autonomic and Secure Computing. IEEE, 2018. 151-158.
Meng WB, Liu Y,
Cui Y, Sun Y, Hu J, et al. A convolutional auto-encoder method for anomaly detection on system logs. In:Proc. of the Int'l Conf. on Systems, Man and Cybernetics (SMC). IEEE, 2018. 3057-3062.
Gainaru A, Cappello F, Fullop J, et al. Adaptive event prediction strategy with dynamic time window for large-scale HPC systems. In:Proc. of the Managing Large-scale Systems Via the Analysis of System Logs & the Application of Machine Learning Techniques. ACM, 2011. 1-8.
Lan Z, Gu J, Zheng Z, et al. A study of dynamic meta-learning for failure prediction in large-scale systems. Journal of Parallel & Distributed Computing, 2010, 70(6):630-643.
Navarro JM, Parada GHA, Duenas JC. System failure prediction through rare-events elastic-net logistic regression. In:Proc. of the Int'l Conf. on Artificial Intelligence, Modelling and Simulation. IEEE, 2014. 120-125.
Shalan A, Zulkernine M. Runtime prediction of failure modes from system error logs. In:Proc. of the Int'l Conf. on Engineering of Complex Computer Systems. IEEE, 2013. 232-241.
Yu L, Zheng Z, Lan Z, et al. Practical online failure prediction for Blue Gene/P:Period-based vs. event-driven. In:Proc. of the Int'l Conf. on Dependable Systems and Networks Workshops. IEEE, 2011. 259-264.
Fronza I, Sillitti A, Succi G, et al. Failure prediction based on log files using random indexing and support vector machines. Journal of Systems & Software, 2013, 86(1):2-11.
Fulp EW, Fink GA, Haack JN. Predicting computer system failures using support vector machines. In: Proc. of the 1st USENIX Workshop on the Analysis of System Logs. San Diego: USENIX, 2008.
Sahoo RK, Oliner AJ, Rish I, et al. Critical event prediction for proactive management in large-scale computer clusters. In:Proc. of the ACM Int'l Conf. on Knowledge Discovery and Data Mining. Washington:ACM, 2003. 426-435.
Zhang Y, Makarov S, Ren X, et al. Pensieve:Non-intrusive failure reproduction for distributed systems using the event chaining approach. In:Proc. of the 26th Symp. on Operating Systems Principles. ACM, 2017. 19-33.
Yamanishi K, Maruyama Y. Dynamic syslog mining for network failure monitoring. In:Proc. of the Int'l Conf. on Knowledge Discovery and Data Mining. ACM, 2005. 499-508.
Liang Y, Zhang Y, Sivasubramaniam A, et al. Filtering failure logs for a bluegene/l prototype. In:Proc. of the Int'l Conf. on Dependable Systems and Networks. IEEE, 2005. 476-485.
Shang W, Nagappan M, Hassan AE, et al. Understanding log lines using development knowledge. In:Proc. of the Int'l Conf. on Software Maintenance and Evolution. IEEE, 2014. 21-30.
Nguyen H, Dean DJ, Kc K, et al. Insight:In-situ online service failure path inference in production computing infrastructures. In:Proc. of the Annual Technical Conf. USENIX, 2014. 269-280.
Zhao X, Rodrigues K, Luo Y, et al. Non-intrusive performance profiling for entire software stacks based on the flow reconstruction principle. In:Proc. of the 12th Symp. on Operating Systems Design and Implementation. USENIX, 2016. 603-618.
Tan J, Pan X, Kavulya S, et al. SALSA:Analyzing logs as state machines. WASL, 2008, 8:6.
Rao X. Research on log-based trust management in large-scale distributed software system[Ph.D. Thesis]. Changsha: National University of Defense Technology, 2011(in Chinese with English abstract).
饶翔.基于日志的大规模分布式软件系统可信保障技术研究[博士学位论文].长沙: 国防科学技术大学, 2011.
Kc K, Gu X. ELT:Efficient log-based troubleshooting system for cloud computing infrastructures. In:Proc. of the Int'l Symp. on Reliable Distributed Systems. IEEE, 2011. 11-20.
Lo D, Cheng H, Han J, et al. Classification of software behaviors for failure detection:A discriminative pattern mining approach. In:Proc. of the Int'l Conf. on Knowledge Discovery and Data Mining. ACM, 2009. 557-566.
Mi H, Wang H, Yin G, et al. Performance problems diagnosis in cloud computing systems by mining request trace logs. In:Proc. of Network Operations and Management Symp. IEEE, 2012. 893-899.
Xu J, Chen P, Yang L, et al. LogDC:Problem diagnosis for declartively-deployed cloud applications with log. In:Proc. of the 14th Int'l Conf. on e-Business Engineering (ICEBE). IEEE, 2017. 282-287.