不受监督的错误日志群集化

clusterlogs的Python项目详细描述


ClusterLog:错误消息的无监督群集化

要求:

Python >= 3.6 < 3.8

由于kneed库,该包目前不能与python2.7一起使用,也不能与python3.8一起使用,因为gensim。在

^{pr2}$

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'(默认)|更新|加载)

模式:

  1. create
    • 基于大量错误日志样本创建word2vec模型
    • 保存到文件'word2车辆模型'以供进一步使用
  2. load
    • 从文件加载word2vec模型(不重新训练模型)
  3. update
    • 从文件加载word2vec模型并用新的错误日志训练(更新)这个模型
    • 在文件中保存更新的模型

错误日志消息的Clusterization被实现为一系列方法:

  1. data_preparation-从不必要的子字符串(UUID,行号,…)中清除初始日志消息
  2. tokenization-将每个日志消息拆分为标记(NLTK|pyonmttok
  3. tokens_vectorization-训练word2vec模型
  4. sentence_vectorization-将word2vec转换为sent2vec模型
  5. kneighbors-计算k-邻域
  6. epsilon_search-搜索DBSCAN算法的epsilon
  7. dbscan-执行DBSCAN clusterization,返回集群标签

输出:

输出在不同的视图中可用:

  1. ALL-按簇号分组的数据帧
  2. INDEX-所有集群的索引列表字典
  3. TARGET-所有集群的错误消息列表字典
  4. 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(玛丽亚·格里戈里耶娃)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我应该卸载Eclipse,还是只在上面安装一个新版本?   Java For Loop i++在For Loop中做什么?   java防止击键从JTable级联到顶层   java在为GUI和游戏划分类时遇到问题:GUI未连接到游戏   客户端调用时java RMI服务器ClassNotFoundException   java如何在libgdx/box2d中为特定实体强制执行最大速度?   java在Selenium Webdriver中调用href值   java IndexOutOfBounds异常向ArrayList添加项   java修剪JsonNode中的所有字符串值   带填充列表的thymeleaf中的java空索引异常   JPanel中的java插入按钮   java应该在实现中添加Javadoc注释吗?   java JNI不满意的链接错误,尽管一切似乎都很好   java使用Youtube Api V3搜索Youtube视频