[论文阅读]Deep Log 初步小结

2018年08月06日 25980点热度 9人点赞 2条评论

想解决的问题

一个通用的模型, 希望能适用所有的日志. 比如常见的System Event Log.

尝试从这些大量的日志之中找到异常\不规则的地方

主要架构

分为3个模型:

  • Log Key Anomaly Detection model

    主要是根据生成的Log Key, 使用LSTM进行判断下一个Log Key是否是异常信息. 主要是使用了NLP的思想.

    个人感觉这一块是DeepLog最有启发的一个模型.

  • Workflows

    主要是能识别出并行的日志. 但是具体怎么用, 没有(在Youtube视频上面)详细说明

  • Parameter Value Anomaly Detection model

    比如新的这个日志, workflow 完全符合之前的期望, 但是在某个阶段, 执行的时间比较久. 在这种情况下, 就需要这个检测模型.

综上所述, 感觉:

  1. 比较特殊的还是第一个模型 Log Key anomaly detection . 是从NLP的视角来看问题, 是有一些不一样

  2. 但是光Log Key 也不够, 有一些异常检测检测不出来.

  3. 所以需要加上Parameter Value

  4. 从视频了解到, 貌似最好是能对应到原始代码之中的日志语句. 这样方便格式化处理. 如果不能对应, 看起来就只能自己编写生成log key的pattern

  5. 这里也引用了第一作者之前的一个论文SPELL: A streaming log parser published in ICDM’16

    使用这个来解析日志

Log Key Anomaly Detection model

  • 首先将Log Entry 变成 Log Key

    Sample可以看看Slides之中的截图:

    注意: 在这里不光有Log key, 还有parameter value vector.

    只不过, 根据视频里面提到的, service name 也会被替换成星号(*) , 个人感觉这样处理不太合适

  • 使用LSTM生成multi-classifier, 从历史记录预测下一个log key.

    如果真实的log key 如我们所预测的, 或者在g个预测范围之内, 认为正常. 否则认为是异常.

  • LSTM 介绍

    这里使用的历史时间窗口h=3

问题: 为什么使用LSTM ?

比如之前有人尝试使用Count的方法, 但是这种方法没有考虑到log key的顺序. 并且LSTM对近期的word / log key 的权重会更大一些. 这个比较符合这种场景的需求

相关资源

  • Youtube 视频: https://www.youtube.com/watch?v=At19CBGpbMI

    对原文有一个大致的介绍, 能比较快速的了解本文做的一些工作

  • 论文PDF: https://www.cs.utah.edu/~mind/papers/deepLog.pdf

  • Slides: https://www.cs.utah.edu/~mind/papers/deepLog_slides.pdf

  • 数据集: https://www.cs.utah.edu/~mind/papers/deeplog_misc.html

  • SOSP 2009 Log Dataset

    这里面有数据集以及相应的处理代码. (但是代码感觉写得比较随意, 一点文档都没有)

    但是这里面有一个大佬的PDF

    Online system problem detection by mining patterns of console logs Wei Xu, Ling Huang, Armando Fox, David Patterson, and Michael Jordan In Proc. of the IEEE International Conference on Data Mining (ICDM’ 09), Miami, FL, December 2009 [ PDF ]

    初略浏览了一下, 对我们的系统还是比较相关的.

RangerWolf

保持饥渴的专注,追求最佳的品质

文章评论

  • 咸鱼

    想问一下,论文中写到利用DeepLog可以把log key分类成不同的task, 为每个task构建一个workflow model,用于分类的DeepLog是怎么训练的?
    论文的核心方法是将原始的log file解析成为log key, 然后把log key分类成不同的task, 为每个task建立一个workflow, 这就是说明会有很多个workflow了, 现在假如说系统接收到1条log, 这条log转化为log key之后, 应该用哪个workflow进行异常检测呢?

    2019年03月18日
    • rangerwolf

      完了。。。。 过了几个月, 已经完全不记得里面讲了什么东西了

      2019年03月25日