logparser

整理翻译自logparser

SLCT

SLCT是一种简单的日志文件聚类工具,它反映的是某种模式的日志出现了足够多的次数,从而进行聚类。SLCT可以对已有的正常日志进行建模,然后对那些新出现的不属于正常模式的日志进行异常诊断。

单词表的构建

SLCT会扫描一遍日志并且统计单词的出现频次,同时也考虑单词的位置信息。例如"send"出现在log日志里的第一个位置、第二个位置是当作不同进行处理的,从而提取出高频词。

聚类的构建

SLCT第二次扫描log日志,这次关注高频词。所有的高频词都会被抽取成模板。符合固定模板的日志会被计数,然后聚为一个类别。

日志模板的抽取

SLCT会遍历所有的聚类结果,然后将计数大于某个阈值的所有模板输出。不满足数量的聚类被视作离群的类。

聚类的集合

这一步可选。SLCT可以考虑是否有子类,然后将其与父类进行合并。大概率子类比较详细具体,父类比较笼统,因此也要综合考虑聚类的粒度从而确定结果。


IPLoM

迭代划分日志挖掘,利用了独一无二的日志信息特征来进行迭代划分,因此来进行有效的信息类型抽取。

根据事件大小来划分

日志根据长度划分到不同的类别中,但是实际的日志长度是可变的,因此需要人工处理的。

根据token的位置来划分

在上一步的处理中,每个聚类都有相同的长度。假设有长度为n的m条日志在同一个聚类中,那么该聚类就可以视作一个m*n的矩阵,这有前提假设就是每条日志里的单词都是唯一的。通过这种方法可以进行聚类的划分。

通过搜素映射来划分

在这一步,两列日志的映射关系被选作划分基准。统计两列中互不相同单词的数量,以及最高频单词的数量。因而存在四种映射关系:1对1,1对多,多对1,多对多。两列中包含相同的1对1关系的日志可以被划为一类。

抽取日志模板

主要抽取独有的单词


LKE

日志聚类

有权重的编辑距离可以用来衡量两个日志的相似度,\(WED=\sum_{i=1}^{n}\frac{1}{1+e^{x_{i}-v}}\), n是编辑距离,\(x_i\)是通过第i次操作词索引,\(v\)是控制权重的参数,如果两个日志的WED小于某个阈值那么就说明两个日志相连,如此可以视作一种聚类结果。

聚类划分

LKE会寻找公共最长序列,通过计算LCS的长度来判断是否超过阈值从而确定是否需要继续划分。

日志模板抽取

同上


LogSig

该方法是基于信息的signature来进行处理的

生成单词对

例如 “Verification succeeded for blk_904791815409399662” 可以转换成如下的单词对: (Verification, succeeded), (Verification, for), (Verification, blk_904791815409399662), (succeeded, for), (succeeded, blk_904791815409399662), (for, blk_904791815409399662). 每个单词对都要保证其原始的序列。

聚类

用户来决定聚类的数量k,最初是随机划分k个类,在每次聚类的迭代中,根据上面计算的单词对的相似度调整划分,直到聚类结果不再变(类似k-means)

日志模板抽取

对k个聚类的结果进行抽取,每个类中单词大于一半数量的作为候选样本。选取词频最高的作为样本,