不受监督的错误日志群集化
clusterlogs的Python项目详细描述
ClusterLog:错误消息的无监督群集化
要求:
Python >= 3.6 < 3.8
由于kneed
库,该包目前不能与python2.7一起使用,也不能与python3.8一起使用,因为gensim
。在
Input:
带有错误日志消息的Pandas数据帧。DataFrame可以有任意列和列名,但是
它必须包含带id的索引列和带有文本日志消息的列。日志列的名称不是
已修复,但必须在设置中显式指定为“target”。
DataFrame的可能结构如下(在本例中,tagret='log_message'
):
ID | log_message | timestamp
-----------------------------------------------------------------------------------------------------
1 | No events to process: 16000 (skipEvents) >= 2343 (inputEvents of HITS | 2019-10-01T10:18:49
2 | AODtoDAOD got a SIGKILL signal (exit code 137) | 2019-10-01T09:01:57
...
所需输入:
df
target
可选输入:
- 群集化设置
tokenizer
(默认值:'nltk')w2v_size
(默认值:“auto”)w2v_window
(默认值:7)min_samples
(默认值:1)
model_name
(word2vec模型文件的路径)mode
('create'(默认)|更新|加载)
模式:
create
- 基于大量错误日志样本创建word2vec模型
- 保存到文件'word2车辆模型'以供进一步使用
load
- 从文件加载word2vec模型(不重新训练模型)
update
- 从文件加载word2vec模型并用新的错误日志训练(更新)这个模型
- 在文件中保存更新的模型
错误日志消息的Clusterization被实现为一系列方法:
data_preparation
-从不必要的子字符串(UUID,行号,…)中清除初始日志消息tokenization
-将每个日志消息拆分为标记(NLTK|pyonmttok
)tokens_vectorization
-训练word2vec模型sentence_vectorization
-将word2vec转换为sent2vec模型kneighbors
-计算k-邻域epsilon_search
-搜索DBSCAN算法的epsilondbscan
-执行DBSCAN clusterization,返回集群标签
输出:
输出在不同的视图中可用:
ALL
-按簇号分组的数据帧INDEX
-所有集群的索引列表字典TARGET
-所有集群的错误消息列表字典cluster labels
-集群标签数组(作为DBSCAN -> fit_predict()
的输出)
Clusters统计信息:
Clusters Statistics返回包含所有群集的统计信息的DataFrame或dictionary:
cluster_name
-集群的名称- ^{cd29>日志中的消息数
pattern
-集群中消息中的所有公共子字符串vocab
-错误消息中的所有标记vocab_length
-集群词汇表的长度mean_length
-集群中日志消息的平均长度std_length
-集群中日志消息长度的标准偏差mean_similarity
-集群中日志消息的平均相似性std_similarity
-集群中日志消息相似性的标准偏差
安装:
pip install clusterlogs
用法:
from clusterlogs import pipeline, cluster_output
有关此库的详细用法,请参阅 clusterlogs_notebook.ipynb。在
作者:maria.grigorieva@cern.ch(玛丽亚·格里戈里耶娃)
- 项目
标签: