电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于机器学习的日志异常检测实践

22页
  • 卖家[上传人]:Baige****0346
  • 文档编号:265411617
  • 上传时间:2022-03-13
  • 文档格式:DOCX
  • 文档大小:791.77KB
  • / 22 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 基于机器学习的日志异常检测实践 本文选自 交易技术前沿总第三十五期文章(2019年8月)晏强 杨超 吴浩 孙伟 / 光大证券信息技术总部1、引言 证券行业对信息系统的实时性、连续性有极高的要求,根据证券期货业信息安全事件报告与调查处理办法,将信息安全事件分为特别重大事件、重大事件、较大事件、一般事件四类,故障的恢复时间直接关系到事件的定级。证监会从2015年开始每年组织证券期货业网络安全联合应急演练,以提高全市场网络安全应急处置能力。从近几年的演练过程上看,各家券商基本上都建立了较为完善的自动化应急切换流程来节省切换时间,一旦原因定位清楚,切换时间可控,而整个过程耗时最长的通常是问题的定位。监控系统是问题定位的重要依赖工具,一般可以监控到问题的现象以及一些关键性能指标。对于问题的定位,单个的指标通常来说帮助不大,例如CPU利用率可以反应当前服务器的负载情况,但是负载升高的原因仍然需要具体去排查,排查的过程主要是依赖于专家经验。对于复杂问题甚至需要多位不同领域的技术专家一起去排查定位。随着大数据、云计算以及分布式架构的不断成熟,使得通过大数据和机器学习的智能运维分析帮助运维人员定位问题

      2、变成了可能。目前智能运维领域在故障排查环节通过KPI的相关性、时序聚类等方法进行,如通过对某个应用从业务数据、应用数据、核心数据库数据、系统数据、网络数据、ITSM流程数据的关联分析来进行故障的快速定位,结合过往的实际运维经验,我们发现许多故障发生的原因往往会隐藏在日志里,系统KPI指标结合日志分析进行完整的数据分析和检测能覆盖到应用相关联的各个维度,帮助运维人员实现运维故障的根因定位。系统运行过程中产生了海量的日志(包括系统日志,应用日志,网络日志,设备日志等)。即使同一个日志也有多种模式,运维人员很难掌握各类日志格式进而开发出相应的解析规则,通常只对核心的日志进行解析。针对日志量大、格式繁多的日志,通过机器学习进行日志异常检测尤其是无监督实时检测与快速的故障定位就显得尤为重要,这不仅是对传统运维方法的改进和补充,也可以使证券行业的IT运维模式更加全面、智能和主动。2、设计思路 光大证券基于现状分析提出了基于机器学习的智能日志异常检测的方法,通过大数据平台和算法的结合实现无监督实时检测与快速的故障定位。2.1 传统日志处理方法证券行业使用的系统较多,由于系统来自于不同的开发商,各个系

      3、统的开发中对日志的定义很难做到一致性、标准性,这样就导致了日志的多种多样。传统方式主要通过基于关键字和解析规则两种方式对日志进行监控和问题监测,但是两种方法分别存在不足。2.1.1 基于关键字匹配对日志进行监控 基于关键字匹配存在日志中不一定有关键字就异常,例如ORACLE RAC在启动过程中会有一些预期的Error等字段,但是正常行为;针对不同类型的日志,很难标注出所有的关键字,事实上甚至有些程序日志中根本不会有类似的关键字。2.1.2 基于配置解析规则 基于配置解析规则,实现日志的字段的监控。如正则表达式的方法虽然比基于关键字有了一些改进,当然是仍然存在以下几个缺点:规则复杂:一些日志往往有大量的格式,解析工作非常复杂,需要大量花费大量时间进行调试;性能差:需要实时对来自的多个系统的海量日志进行多个规则解析,性能较差。2.2 日志智能异常检测方法为了改进传统的日志处理方法,我们基于系统日志的故障诊断或者主动检测引入机器学习方法,自动提取日志模版并且通过分析从历史故障中发现相关的模式(故障关联关系或者故障征兆)从而实现异常检测。对于日志模版而言,支持增量式学习是一个重要也是必备的能力

      4、。因为运维人员经常部署软件或者硬件升级以引入新的特征,或者解决以往版本的程序错误,这些更新可以产生新的子类型的系统日志消息,而这些新的系统日志不能映射到任何现有的模板上。因此,需要从这些新的系统日志消息中提取新的模板,并且加入到模板集合中。针对海量日志行智能异常检测的设计思路如下:2.2.1 日志分词 分词会把一条完整的日志分割成若干词语构成的序列。和一般的自然语言分词不同,文本日志中有大量的关键词,是一般文本中不会大量出现的。而这些关键词可能会提供和系统非常相关的信息,而且其特征非常明显。例如,时间信息、IP地址、文件路径、内存地址等等。因此日志分词的过程中要对这些进行特别处理。2.2.2 模板提取 基于海量日志自动提取模板、变量。通过自然语言处理技术,分析大量日志中的共性和常见模式,提取日志模板。提取日志模板可以有效将大量文本日志结构化,去除大量冗余数据。日志模板和变量提取是日志智能异常检测的关键技术,这里我们主要采用了FT-TREE算法来进行提取,后面会做详细介绍。2.2.3 异常检测 根据模板计数、变量取值来进行日志异常检测。根据之前提取的日志模板,可以在线流式地对日志进行处理

      5、和数据抽取。例如,抽取每种类型的日志每分钟日志量,抽取特定类型的变量分布情况,如文件路径长度、文件传输速度等等。之后,采用单指标异常检测方法,和变量相关度分布度量,即可实时地对日志中抽取的数据进行异常检测。2.2.4 数据集成 异常检测后的数据需要与数据展示平台进行整合和集成产生实际价值。其中,智能运维数据分析平台从数据采集源或者第三方提供的数据库中获取数据作为数据来源,经过分类提取、整合和入库后,分别通过流式在线和批式两种方法消费。产生的分析结果和告警信息分别通过数据接口和告警信息队列提供给前端和第三方平台。用户和三方平台也可以通过前端或接口对数据获取、算法分析和告警推送流程进行配置。参考的平台数据流与系统如图1:图1其中,关键组件包括:数据队列:由采集平台主动写入数据或者由订阅系统从第三方系统中定时获取数据,以队列的方式供智能运维数据平台系统消费。数据库:备份获取的数据,生成并存储智能分析模型元数据,和分析结果的时序数据等。告警信息队列:流式计算产生的异常和告警信息均通过该消息队列由第三方订阅。RestAPI接口:既可以用于采集平台主动推送数据,也可以对接北向接口,由应用系统或其他

      6、三方系统获取分析数据并进行调整。3、核心算法技术 3.1 日志智能异常检测常见算法通用的系统日志预处理的方法是从历史系统的日志中提取模板,然后,将日志消息映射到模板上,模版提取准确率以及支持增量学习是处理海量日志的考虑关键因素。日志的异常识别算法中,LogClass算法是基于有数据标签的场景(即哪些日志是正常的,哪些日志是异常的);而DeepLog是无监督的方法,不需要提前准备数据标签;日志的根因定位算法FOCUS,是基于系统日志快速分析是什么条件造成了响应时延增加;SyslogDigest是专门针对网络设备的syslog进行分析的算法,它可以从原始syslog产生有实际含义的、可按优先级排序的网络事件;FT-tree是一种通用的日志模版生成方法,在日志模版生成后可以应用到日志的分类和统计、异常检测等领域中,从而大幅度提高分析人员的效率。通过深入调研以上几种算法,结合光大证券的实际日志情况,我们选择FT-Tree作为日志模板提取和异常检测的算法基础结合KPI异常检测算法实现日志的智能异常检测。3.2 分词算法与FT-Tree通用日志模版提取算法现有的分词算法可分为三大类:基于字符串匹配

      7、的分词方法、基于理解的分词方法和基于统计的分词方法。按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。由于海量日志的格式千变万化,不可能通标标注的方式进行分析,所以我们通过单纯分词的方法,结合FT-Tree进行模板和特征变量的提取。FT-tree是一种拓展的前缀树结构,用以表示系统日志消息模板,是清华的研究者根据频繁模式树(frequence pattern tree, FP-tree)转变而成,FT-tree准确率较高,并且支持增量学习,其基本思想是,系统日志消息中详细信息字段的子类型通常是频繁出现的单词的最长组合。因此,提取模板等价于从系统日志消息中识别出频繁出现单词的最长组合。基于FT-Tree算法建立的算法模型,天然支持增量学习,可以很好地处理流式日志,随着日志的增加,不断完善和更新模板集。在具备了日志模板后,便可以很容易地将各种不同的日志转为模板序列,对其进行频率统计、变量分布识别,从而进行异常检测。原理以及步骤如图2:图2基于FT-Tree的日志模板提取算法,主要流程分为三个部分:分词、模板提取和修正统计。分词部分对于通用文本分词和变量提取

      8、,我们制作了专用编译器来进行提取。这样只需要对日志进行一次遍历即可提取指定的所有类型变量和词语;我们也预留了接口,针对自定义性特别大的时间戳进行运维人员定制的提取,这部分采用正则表达式匹配的方式实现。两种方式结合整体提取效率能够达单核每秒处理上万条文本日志。核心模板提取算法采用的是FT-Tree,这种算法本质上是一种基于词频统计的词典树构造-检索算法。相对于绝大多数传统模板提取方法(例如常见的聚类方法),FT-Tree可以以线性时间完成更高精度的提取,在训练样本数据量较大(千万级别)时优势更加明显。最后我们采用了计算模板编辑距离的方式评估模板提取效果,并对非常相似的模板尝试聚合。3.3 KPI异常检测算法日志模版和关键值完成提取后,我们采用KPI异常检测算法进行分析和检测,根据时间序列的特征,计算资源的分配以及数据的时间来合理选用不同的模型组合来训练并生成对应的模型,其中所采用的技术和算法包括:变分自编码器渐进梯度回归树差分指数滑动平均极值理论周期性中值检测数据积累到一定程度即可开始在实际环境中在线检测,在线检测使用已训练好的模型对应的关键特征生成算法来生成新的时间点的特征,并用已训练

      9、好的模型对新的时间点的异常程度打分,从而来判断异常。4、生产实践过程分享 4.1 异常检测过程描述异常检测的过程可以简单的概括为:通过单指标异常检测发现问题,通过多指标聚类分析定位出模块和指标,通过日志分析检测具体分析问题。过程如图3。图3生产实践中,在我们在建设的智能运维平台中,我们以应用为单位,采用不同的方法搜集了从业务到基础环境的六类相关数据分别是:业务数据(如交易笔数、资金等)、应用数据(如功能耗时、调用成功率)、核心数据库数据(读写、锁等待、TPS等)、系统数据(CPU、IO、硬件告警、性能等)、网络数据(流量,端口状态)、流程数据(工单、CMDB)。这些数据来自于不同的系统,通常来说对于业务数据和应用数据来自于APM监控工具或者日志解析;操作系统数据、核心数据库指标、网络数据来自于基础网络监控工具或者操作系统监控工具;流程数据和CMDB数据来自于ITSM服务平台。对于每一类数据我们根据运维经验抽取了出了关键指标,通过对历史数据的学习获取数据的关键特性比如周期性、偏移度、抖动度等,然后通过根据这些特性采取不同的线检测器对单个指标进行流式实时在线异常监控。异常监控后续的故障原因定位,我们的解决方式是从单KPI检测异常入手去发现问题,然后再去进行多指标异常定位,根据对多个指标异常度的判断、相似机器的聚类、最终根据给出KPI的排名定位到具体的模块或者设备。在定位到具体的模块和指标之后,接下来就是需要通过日志分析进行异常检测的原因分析。4.2日志异常检测过程我们介绍的具体场景为:某日,O32应用管理员通过单指标异常告警应用响应时间异常,通过多指标定位到数据库syscpu与lock_waiting指标异常,最终结合日志智能检测分析找到了具体的原因。其中,单指标、多指标异常检测,不是我们本篇讨论的重点,我们就不做过多介绍,下面我们

      《基于机器学习的日志异常检测实践》由会员Baige****0346分享,可在线阅读,更多相关《基于机器学习的日志异常检测实践》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.