共计 5670 个字符,预计需要花费 15 分钟才能阅读完成。
摘要:日志异样检测的外围是借助 AI 算法主动剖析网络设备日志来发现并定位故障,依据送入检测模型的数据格式,日志异样检测算法模型分为序列模型和频率模型,其中序列模型又能够分为深度模型和聚类模型。
AIOps(Artificial Intelligence for IT Operations)即智能运维,将 AI 利用于运维畛域,基于已有的运维数据(日志、监控信息、利用信息等),通过机器学习的形式来进一步解决自动化运维没方法解决的问题。华为 AIOps 使能服务积淀了 10+ 开箱即用的智能 APP,笼罩网络保护、网络体验、网络布局、设施故障预测等应用领域,蕴含 KPI 异样检测、硬盘异样检测、故障辨认及根因定位、日志异样检测等。其中日志异样检测 (Log Anomaly Detection,LAD) 实时监控日志,辨认并举荐根因异样,辅助运维人员定位故障根因,晋升运维效率。
1. 为什么须要日志异样检测?
通信网络中部署的大规模设施在运行过程中产生海量日志。如图 1 所示,日志是一种时序文本数据,由工夫戳和文本音讯组成,实时记录了业务的运行状态。通过收集并剖析日志,能够发现或预知网络中已产生或潜在的故障。
图 1 windows 公开数据集中的局部日志样例[1]
目前日志标准不对立。如图 2 所示,不同类型的设施打印出的日志格局也不同,且日志数据呈现出非结构化的特点。次要体现在日志工夫格局不对立,日志记录的级别不对立,不同厂家自定义的业余词汇或缩略语不对立。这些问题减少了日志剖析的难度。
图 2 四种不同标准的日志样例数据[1]
此外,古代网络系统规模宏大,每小时打印日志约 50Gb(约 1.2 亿~ 2 亿行)的量级[2],若依附人工剖析日志数据来辨认网络中是否产生了故障则效率低下,因而有必要引入 AI 算法进行日志异样检测,以达到升高运维老本,显著晋升业务体验的目标。
自 2017 年 Min Du 等人提出 DeepLog 以来[3],基于序列的深度学习建模逐步成为近年来钻研的热点。原始的 DeepLog 次要包含两个局部:模板序列异样检测模型(Log key anomaly detection model)和参数值异样检测模型(Parameter value anomaly detection model)。模板序列异样检测模型通过学习失常日志打印对应的工作流,而后对测试数据进行推理,以检测出是否存在违反工作流的异样日志。参数值异样检测模型则是对每一个模板(Log key 或 Template)构建一个模型,用推理出的参数值与理论参数值作比照,比照后果在置信区间内则认为是失常,否则为异样。模板序列异样检测模型的毛病在于对模板应用 one-hot 向量编码,无奈学习出不同模板之间的语义相似性。参数值异样检测模型的毛病在于建模的数量太多,有多少个模板就要建设多少个模型,实现起来工作量较大。针对上述问题,2019 年与 2020 年 Weibin Meng 等人先后提出 Template2Vec 和 Log2Vec 办法[4,5],能够学习出模板之间的语义相似性,并且可能解决新模板的在线学习问题。
2. 日志异样检测是如何实现的?
日志异样检测的外围是借助 AI 算法主动剖析网络设备日志来发现并定位故障,依据送入检测模型的数据格式,日志异样检测算法模型分为序列模型和频率模型,其中序列模型又能够分为深度模型和聚类模型。本期次要分享近年来钻研的热点:深度模型。
2.1 日志解析
非结构化的日志数据间接解决十分艰难。通常的做法是通过日志解析失去日志的模板,而后再对模板进行异样检测。模板相当于日志的“摘要”,日志能够视作模板加参数失去。例如,模板 Send Bytes to,加上参数 size=120, block=blk4612,应用打印函数 print()能够失去一条具体的日志 Send 120 Bytes to blk4612。扭转参数值 size=256, block=blk3768,能够失去另一条日志 Send 256 Bytes to blk3768。日志解析相当于日志打印的逆过程,由日志反向解决失去模板。以 Pinjia He 等人提出的 Drain 办法为例[6],简略阐明日志解析的过程。Drain 认为具备雷同长度的(即模板中 token 个数)日志,其业务含意具备相似性,因而长度是模板提取的一个重要判据。此外,特定的关键字也代表了特定的业务含意。变量个别认为是纯数字或者数字与字母等其余符号的组合。日志解析如图 3 所示,首先将变量 token 转换为,而后依据长度辨别类别,最初依据关键字辨别类别,最终失去一个模板。例如 Receive from node blk_3587 通过解决后失去模板 Receive from node 。提取完模板内容后,会调配一个惟一的 ID。
图 3 模板与日志的关系以及日志解析原理图
2.2 异样检测
2.2.1 DeepLog 模型
以 DeepLog 的 Log key anomaly detection model 为例,网络结构如图 3 所示,其中 LSTM 原理能够参看文献 [3]。输出 为 one-hot 编码模式(备注:此处不必 one-hot 编码也是能够的,间接输出从 0 开始编码的模板 ID 即可),h 为窗口长度,即x 为 t 时刻之前的 h 个模板组成的序列。示意第 t 个时刻呈现的模板,假如模板 ID 的汇合为{0,1, …,M},则,DeepLog 采纳两层 LSTM,之后接全连贯网络(FC),通过 softmax 函数解决后,输入各个模板的概率分布,其中_n_为模板的个数。
图 4 DeepLog 网络结构图
在训练态,收集设施失常运行时产生的日志获取训练集,具体步骤如下:
Step1: 取设施失常运行时打印的日志,通过日志解析失去模板序列;
Step2: 按 task_id(或线程号、工作号)提取模板序列;
Step4: 应用训练数据和梯度降落法等算法训练神经网络。
从上述收集训练数据的过程中能够发现,整个过程只要求训练数据来自于零碎失常运行或故障占比很小的日志。数据标签不须要人工标注,因而该模型能够认为是一个无监督的深度学习模型。
图 5 训练态收集训练数据
图 6 推理态示意图
推理态步骤如下:
Step1: 取待检测的推理日志,通过日志解析失去模板序列;
Step2: 按 task_id(或线程号、工作号)提取模板序列;
Step3: 加载训练后的模型,对各个 task_id 对应的序列滑动窗口顺次检测;
DeepLog 输出数据的编码方式为 one-hot,所以无奈学习出两个模板之间的语义类似度,例如,如果模板数据库的表中共有 3 个模板,如表 1 所示。从模板 ID 或者 one-hot 编码无奈学习出 1 号模板与 2 号模板业务意义相同,也学不到 1 号模板与 3 号模板业务意义相近。因而,原始的 DeepLog 的学习能力是有局限性的。
表 1 模板的 one-hot 编码示例
2.2.2 Template2Vec 模型
为了学习出模板的业务含意或语义,Weibin Meng 等人在应用 DeepLog 之前,设计了一个 Template2Vec 向量编码。核心思想是参照 Word2Vec[7]的设计思路,提出了模板向量 Template2Vec。Template2Vec 将模板编码成语义向量,以代替原始 DeepLog 中的模板索引或 one-hot 编码。对于新呈现的模板,则将其转换为一个最靠近的已有模板。Template2Vec 原理如图 7 所示:
图 7 Template2Vec 原理
具体步骤如下:
Step 1 : 在 WordNet[8]中对模板内容中的自然语言单词进行同义词和反义词搜寻(如图 7 中的 down 和 up),之后,运维人员再对具备业务知识的词汇辨认同义词和反义词(如图中的 Interface 和 Vlan-Interface),并将其转化为失常的自然语言词汇。
Step 2: 利用 dLCE [9]生成模板中单词的词向量,如图 7 中的 Word vectors。
Step 3: 模板向量是模板中单词的词向量的加权平均值。如图中的 Templates vectors
Template2Vec 联合了运维人员的业余畛域常识和自然语言解决中的 dLCE 模型,以便精确生成模板向量。例如对模板 Receiving blk src dest 的 Template2Vec 求解过程如下。
图 8 Template2Vec 计算过程示意图
借助 Template2Vec 将模板序列转换为语义向量序列,之后送入 DeepLog 即可进行日志异样检测。
2.2.3 Log2Vec 模型
Template2Vec 存在一个较大的问题:不能在运行态或推理态解决日志中词汇表外(OOV)的新词汇。为了解决这一问题,提出了 Log2Vec 办法。Log2Vec 次要蕴含两局部:日志专用的词嵌入(log-specific word embedding, LSWE)和新词处理器(OOV Word processor).
LSWE 能够看作在 Template2Vec 的根底上,退出了关系三元组,即减少了关联信息。具体做法是:(1) 对于通用的关系三元组采纳 Dependence Trees[10]办法进行语义向量转化,(2) 对于业务畛域范畴内的三元组,退出专家教训来辨认解决。
新词处理器则采纳 MIMICK [11] 来解决运行中呈现的 OOV 单词。应用办法如图 9 所示。首先,在已有的词汇数据集上训练出可用的 MIMICK 模型。而后,应用该模型在 OOV 单词上将其转换为一个惟一的向量。
图 9 新词处理器原理图
3. AIops 中的日志异样检测成果展现
NAIE 的 AIOps 中的日子异样检测模型服务,可能实时监控日志,辨认并举荐根因异样。内置多种类型算法,无需定制即可反对不同网元日志的异样检测;具备在线学习能力,继续晋升检测精度,辅助运维人员定位故障根因,晋升运维效率。
例如,对某个网元的某个计算节点的日志监控过程中,如图 10 所示,实时统计呈现的异样量,给出各个异样对应的要害日志。若算法报出的后果存在误报,如图 11 所示,用户能够退出业务反馈,反馈的误报异样点将会被在当前的检测中被过滤掉。因为日志蕴含了丰盛的畛域业务知识,如图 12 所示,每条要害日志都会给出上下文,辅助运维人员定位具体的异样内容。
图 10 异样检测与要害日志举荐
图 11 能够退出用户反馈
图 12 异样日志上下文
本文作者在 1 月 22 日 20:00 在 DevRun 开发者沙龙直播具体介绍日志异样检测,直播间有 泛滥互动奖品 等待大家,点击直播
参考文献
[1] https://github.com/logpai/loghub
[2] Shilin He, Jieming Zhu, Pinjia He, Michael R. Lyu. Experience Report: System Log Analysis for Anomaly Detection, IEEE International Symposium on Software Reliability Engineering (ISSRE), 2016. (ISSRE Most Influential Paper).
[3] Min Du, Feifei Li, Guineng Zheng, Vivek Srikumar. DeepLog: Anomaly Detection and Diagnosis from System Logs through Deep Learning. CCS-2017
[4] Meng W, Liu Y, Zhu Y, et al. LogAnomaly: Unsupervised Detection of Sequential and Quantitative Anomalies in Unstructured Logs[C]//IJCAI. 2019: 4739-4745.
[5] Meng W, Liu Y, Huang Y, et al. A semantic-aware representation framework for online log analysis[C]//2020 29th International Conference on Computer Communications and Networks (ICCCN). IEEE, 2020: 1-7.
[6] Pinjia He, Jieming Zhu, Zibin Zheng, and Michael R. Lyu. Drain: An Online Log Parsing Approach with Fixed Depth Tree. ICWS’2017
[7] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781, 2013.
[8] George A Miller. Wordnet: a lexical database for english. Communications of the ACM, 38(11):39–41, 1995.
[9] Kim Anh Nguyen, Sabine Schulte im Walde, and Ngoc Thang Vu. Integrating distributional lexical contrast into word embeddings for antonym-synonym distinction. arXiv preprint arXiv:1605.07766, 2016.
[10] Katrin Fundel, Robert K¨uffner, and Ralf Zimmer. Relex—relation extraction using dependency parse trees. Bioinformatics, 23(3):365–371, 2007.
[11] Yuval Pinter, Robert Guthrie, and Jacob Eisenstein. Mimicking word embeddings using subword rnns. In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 102–112, 2017.
点击关注,第一工夫理解华为云陈腐技术~