【2018/FSE】Identifying Impactful Service System Problems via Log Analysis
论文链接: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
为了提出文中的方法框架,首先指出当前的方法存在以下三个问题:
- 服务器产生的logs数量级大,用传统聚类的方法难以高效的聚类。
- 单纯地聚类cluster不能说明是否反应一个问题。
- logs样本不均衡。正常的数据样本比较多而异常样本比较少。
为了解决以上三个问题,文章中提出了一个新的聚类算法Log3C(Cascading Clustering and Correlation analysis)。
列出文章的contributions:
- We propose Cascading Clustering, a novel clustering algorithm that can greatly save the clustering time while keeping high accuracy.
- We propose Log3C, which is a novel framework that integrates cascading clustering and correlation analysis.
- 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数量。
文中提出的算法框架如下所示:
整个框架包含以下四步:
log parsing;
- remove common paramter fields using regular expressions.
- log messages are clustered into coarse-grained groups based on weighted edit distance.
- a log event is obtained by finding the longest common substrings for each group of raw log messages.
sequence vectorization;
- IDF(Inverse Document Frequency) Weighting;
- Importance Weighting.
cascading clustering;
- Sampling.
- Clustering.
- Distance Metric;
- Clustering Technique - Hierarchical Agglomerative Clustering(HAC)
- Pattern Extraction;
- Matching.
- Cascading.
correlation analysis;
Multivariate linear regression (MLR) model: correlate independent variables (cluster sizes) with dependent variable(KPI).
Experiments
Thoughts
文章中提出的方法比较新颖,可以参考。至于文中提出的聚类方法没有考虑到结构特性,可以改进。