对于deep Log文章的理解
我们先解析出非结构化的,文本性的数据在时间伤的铺陈,但我们可以学习到
一个sequential模型在一个结构化的数据。按照个人的理解,就是打印日志内容和
打印的 k string, 例如 print(‘It took %s seconds to finish this process.’%(time_0 - time_1)).
这些日志打印很大程度上反映了系统的状态。
这里值得注意的是,某些值反映了一个执行序列,譬如说,在HDFS重的block_id或者是在OpenStack重的instance_id.
DeepLog 为每个log entry 存储了大量的参数值,同时,它还存储了两次实践之间的间隔。
2.2 DeepLog 架构和总揽
DeepLog 主要有三部分:
- log key anomaly detection model
- parameter value anomaly detection model
- The workflow model
训练规程
- 每一个log都被解析成 一个关键词(代表状态)和 一个参数向量。
- 每一个log 关键词的序列都被解析成序列以此来训练一个log key的异常检测模型。
- 跟据 2,我们构建系统执行流程模型以服务于诊断的目的。
- 对于每一个标量/矢量 log key’s value, 我们同时也训练一个模型来检测异常,这些异常都是由这些KPI指标(value)反映出来的。
检测规程
一个新来的log被马上解析成了 (key, value)pair,DeepLog首先使用 log key的异常监测模型来检查log key是否是正常的。如果是这样,那么DeepLog用parameter value 模型继续检查parameter的value向量。
只要任何一方,无论是value或者key出现异常,新输入的日志条目会被标注为异常。如果是一场。那么deepLog就需要找出语义伤的信息来帮助用户判断如何诊断异常。
2.3 威胁性的模型
DeepLog 学习到一个综合并且微妙的相关性,同时,它学习到了嵌入在一个log 序列中的模式。,通过一个一般的执行路径。我们只允许考虑以下两种威胁。
(1) Attacks that lead to system execution misbehavior and hence anomalous patterns in system logs. For instance, Denial of Service (DoS) attacks which may cause slow execution and hence performance anomalies reflected in the log timestamp differences from the parameter value vector sequence; attacks causing repeated server restarts such as Blind Return Oriented Programming (BROP) attack [5] shown as too many server restart log keys; and any at- tack that may cause task abortion such that the corresponding log sequence ends early and/or exception log entries appear.
(2) Attacks that could leave a trace in system logs due to the logging activities of system monitoring services. An example is suspicious activities logged by an Intrusion Detection System (IDS).
异常检测
3.1 执行路径异常检测
我们首先描述如何log key sequence来做异常检测。因为在源代码中,执行代码的log是有限数量的。所以,我们把他们标注为
K = { k 1 , k 2 , k 3 } K = \{k_1, \, k_2, \, k_3 \} K={
k1,k2,k3} 是这些不同的log key。 每当 log entries 被解析成 log keys的时候, log keys 反映了一个执行路径。我们标注 m i m_i mi 表示key。它强烈的依赖于上下文。
这个异常检测模型把一个log key的序列问题作分类。我们训练DeepLog在上下文中作为多class分类。输入是一个log keys的历史,输出是probability distribution over n log keys从集合K中来,代表概率下一个state出现 k i ∈ K k_i \in K ki∈K的可能性。
图表2总结了这个classification setup。 假设t是 下一个log key的sequence id。分类的输入是一个window大小为h的最近的一些log keys。 w = { m t − h , . . . , m t − 2 , m t − 1 } w = \{ m_{t - h}, ..., m_{t-2}, m_{t-1} \} w={ mt−h,...,mt−