论文链接:https://blog.acolyer.org/2018/12/19/identifying-impactful-service-system-problems-via-log-analysis/
源码链接:https://github.com/logpai/Log3C

TL;DR

为解决人工分析定位异常困难的问题,文章中提出一种基于log sequence和KPIS聚类的方法来定位服务中出现的异常。在Microsoft服务系统收集的数据上验证比较有效。

Model/Algorithm

为了提出文中的方法框架Log3CLog3C,首先指出当前的方法存在以下三个问题:

  • 服务器产生的logs数量级大,用传统聚类的方法难以高效的聚类。
  • 单纯地聚类cluster不能说明是否反应一个问题。
  • logs样本不均衡。正常的数据样本比较多而异常样本比较少。

为了解决以上三个问题,文章中提出了一个新的聚类算法Log3C(Cascading Clustering and Correlation analysis)

列出文章的contributions:

  1. We propose Cascading Clustering, a novel clustering algorithm that can greatly save the clustering time while keeping high accuracy.
  2. We propose Log3C, which is a novel framework that integrates cascading clustering and correlation analysis.
  3. We evaluate our method using the real-world data from Microsoft. Besides, we have also applied Log3C to the actual maintenance of online service systems at Microsoft.

首先看下微软服务器的log记录template:

图中一个Task_ID包含 8 logs,然后根据请求可以解析为图中下面的格式,* 号代表log中参数。

文章中统计说明了一下log根据类型的分布是长尾的,如下所示:

前两个表示都是正常的log数量,占据了logs数量的99.8%。后面表示发生异常的log数量。

文中提出的算法框架如下所示:

整个框架包含以下四步:

  1. log parsing;

    1. remove common paramter fields using regular expressions.
    2. log messages are clustered into coarse-grained groups based on weighted edit distance.
    3. a log event is obtained by finding the longest common substrings for each group of raw log messages.
  2. sequence vectorization;

    1. IDF(Inverse Document Frequency) Weighting;
    2. Importance Weighting.
  3. cascading clustering;

    1. Sampling.
    2. Clustering.
      1. Distance Metric;
      2. Clustering Technique - Hierarchical Agglomerative Clustering(HAC)
      3. Pattern Extraction;
    3. Matching.
    4. Cascading.
  4. correlation analysis;
    Multivariate linear regression (MLR) model: correlate independent variables (cluster sizes) with dependent variable(KPI).

Experiments

Thoughts

文章中提出的方法比较新颖,可以参考。至于文中提出的聚类方法没有考虑到结构特性,可以改进。

联系作者