We use cookies to improve your experience with our site.

ML-Parser: 一种高效和准确的在线日志解析方法

ML-Parser: An Efficient and Accurate Online Log Parser

  • 摘要: 1、研究背景
    日志是在各种服务、框架和程序中生成的文本消息,它是开发人员和用户之间的重要接口。日志数据可能非常有价值,因为它传递了来自用户的有用信息,并且由于其部分结构化的特性,可以很容易地提取。日志数据的快速增长催生了大量的日志数据挖掘技术,包括异常检测、故障诊断和性能改进等任务。对于所有这些任务,充分利用日志数据的第一步是有效地解析它。
    2、目的
    日志解析方法可以分为离线方法和在线方法。前者要求在解析之前所有日志都可获得,并以批处理方式处理它们。然而,在真实的应用程序中,日志总是以流的方式收集的,并且应用程序越来越需要在线监视和维护。因此,越来越多的研究集中在在线日志解析上,即扫描原始日志序列并按顺序进行解析。然而,现有的流式方法在处理有效性和效率之间的权衡方面存在不足。本文的目的就是寻找一种算法,在有效性和效率间取得平衡,在效率不降低太多的情况下提高解析质量。
    3、方法
    我们发现,影响日志抽取效果和效率的两大因素分别是(1)切割token的粒度,(2)选取何种相似度度量。细粒度可以合成出质量更好的模板,但会使时间消耗增加;同样的,最长公共自序列(LCS)相似度比汉明距离相似度准确性高,但也会使效率降低。我们的方法利用一个三层结构,第一层我们使用粗粒度切分并使用汉明距离相似度;第二层使用粗粒度切分和LCS相似度了;第三层使用细粒度切分和LCS相似度。每层都存储自己的模板类,每一层的模板会和下一层的保持映射关系,最终我们以第三层的模板作为解析结果。一条新日志首先会在第一层找匹配的模板,如果找到了就会在该层直接并入匹配的模板类中;反之如果没找到,就会进入下一层寻找。在三层结构中,层级越高,其准确率越高,效率越低,但由于大部分日志会在第一层就找到属于自己的模板类,不会进入更高层,因此整体的效率并不会慢很多。同时,我们也提出了合并限制策略,来保证各层的合并结果间始终保持一致性,即各层的模板映射始终合理。
    4、结果
    实验表明,ML-Parser在效率和质量上取得较好的平衡。准确率上,ML-Parser在4个有标签数据集上取得第一,在1个数据及上取得第二;在10个常用数据及上,ML-Parser在7个的数据集上取得最优的无监督指标Loss;时间效率上,ML-Parser略慢于某些方法的粗粒度版本而快于所有方法的细粒度版本。实验还显示,我们的三层模型有助于提高效率,因为大部分日志都被第一层捕捉。
    5、结论
    本文提出了一种在线日志解析算法,它的核心特点在于利用一个多层框架来准确且有效的提取日志模板。实验表明ML-Parser在准确率,损失度等方面都具有优势,并且在效率上只有轻微的降低。我们相信ML-Parser能够帮助运维人员更好地完成日志的流式处理,辅助系统的日常维护,信息挖掘。

     

    Abstract: A log is a text message that is generated in various services, frameworks, and programs. The majority of log data mining tasks rely on log parsing as the first step, which transforms raw logs into formatted log templates. Existing log parsing approaches often fail to effectively handle the trade-off between parsing quality and performance. In view of this, in this paper, we present Multi-Layer Parser (ML-Parser), an online log parser that runs in a streaming manner. Specifically, we present a multi-layer structure in log parsing to strike a balance between efficiency and effectiveness. Coarse-grained tokenization and a fast similarity measure are applied for efficiency while fine-grained tokenization and an accurate similarity measure are used for effectiveness. In experiments, we compare ML-Parser with two existing online log parsing approaches, Drain and Spell, on ten real-world datasets, five labeled and five unlabeled. On the five labeled datasets, we use the proportion of correctly parsed logs to measure the accuracy, and ML-Parser achieves the highest accuracy on four datasets. On the whole ten datasets, we use Loss metric to measure the parsing quality. ML-Parse achieves the highest quality on seven out of the ten datasets while maintaining relatively high efficiency.

     

/

返回文章
返回