阿里云 网站根目录,网站架构设计文档,梅州站改造高铁站,yw55523can优物入口传统的运维方式在监控、问题发现、告警以及故障处理等各个环节均存在明显不足#xff0c;需要大量依赖人的经验#xff0c;在数据采集、异常诊断分析、故障处理的效率等方面有待提高。
本关键技术面对传统运维故障处理效率低、问题定位不准确、人力成本高三大痛点#xff0…传统的运维方式在监控、问题发现、告警以及故障处理等各个环节均存在明显不足需要大量依赖人的经验在数据采集、异常诊断分析、故障处理的效率等方面有待提高。
本关键技术面对传统运维故障处理效率低、问题定位不准确、人力成本高三大痛点将人工智能与运维相结合由AI逐步取代人力决策通过机器学习方法快速给出决策建议或提前规避故障实现网云业务智能分析和优化从而极大提高运维生产力。总体来说智能运维比传统运维方式效率高数据采集更准确更智能。
基于机器学习的异常检测和智能分析技术基于资源、告警、性能、拨测、日志等多模态数据通过人工智能技术对业务异常事件进行溯源、降噪第一时间对运维人员展示出异常的根本原因及定位分析提升运维人员故障处理效率降低运维成本。 异常检测和智能分析流程图
异常检测的输入由数据中台提供业务资源、告警、性能、拨测、日志等多维数据。
异常检测的输出包括异常指标、重要告警、异常日志等信息为网云业务健康度、智能分析提供参考依据。
本关键技术包含指标异常检测、告警压缩与降噪、日志异常检测、智能分析等技术。指标异常检测技术接入运维监控指标通过异常检测算法得出指标的异常点告警压缩和降噪技术对海量的告警事件进行关联关系挖掘在保证核心告警内容的前提下抑制告警消息数量为运维人员提供有效的告警信息日志异常检测技术从海量日志中实时分析日志模式的变化趋势及时发现业务异常。智能分析技术基于上述检测出的异常指标、重要告警、异常日志结合故障传播关系、决策树 、知识图谱等技术对网云业务故障和隐患进行智能分析输出根本原因及定位、建议处理措施提升运维人员故障处理效率降低运维成本。
指标异常检测技术
指标异常检测根据不同场景和应用需求可以分为单指标异常检测和多指标异常检测。
1单指标异常检测 检测原理关注的是某个KPI的值是否异常。例如KPI突变、抖动等。 异常场景单指标异常主要是KPI值突然发生了较大变化。例如CPU使用率突然增加、内存突然降低等。 检测方法单指标异常检测主要有基于统计学和预测的两种方法。 基于统计学的方法通常是设定阈值判断是否异常。例如3sigma等。若KPI超过阈值则判断为异常反之则正常。 基于预测的方法是通过建模并预测KPI曲线根据预测值与实际值之间的误差大小判断是否异常。例如ARIMA等。若误差较大则判断为异常反之则正常。
2多指标异常检测 检测原理关联的多个实体的状态是否异常。如服务器、设备等。 异常场景多指标异常检测场景主要有两种情况。 第一种情况是尽管每个KPI看起来可能并没有异常但综合多个KPI来看可能就是异常的。 第二种情况是有些单个KPI表现异常但整体来看可能又是正常的。 检测方法与单指标序列相比多指标序列具有维度高、数据量大、指标间关系复杂等特性。主要有两种思路 第一种思路是将多指标序列划分成多个单指标序列利用单指标异常检测方法发现异常 第二种思路是直接分析多指标序列如将多指标序列按形状或时间分成多个子序列同时结合聚类等算法发现异常。
针对多指标异常检测第一种思路相对成熟但这种思路会丢失指标间的关联性信息同时对每个KPI进行建模会带来更高的成本。
该分析方案包括离线过程和在线过程主要是通过判断多指标间的变量关系是否被打破来进行异常检测。
若多指标间的变量关系被打破则判断为异常反之则正常。发现异常后会对异常的KPI进行故障定位。 分析方案流程图
方案具体流程如下
a) 离线过程
基于SBD的DBSCAN聚类使用基于SBD的DBSCAN聚类算法将相似指标聚类可以降低分析框架的复杂度并且将相似形状的指标聚类到同一类中。
SARIMAX建模随后在聚类后的每个簇中对两两指标建立SARIMAX模型构建指标间的不变量关系。不变量关系指时间序列间存在着不会随时间变化的关系如指标1为sin(t)和指标2为sin(3t)的关系。
b) 在线过程
异常检测通过计算两两指标间的残差得分再根据指定阈值判断不变量关系是否被打破。若残差得分超过阈值则认为不变量关系被打破即该指标对存在异常反之则不存在异常。
可视化不变量关系图对离线学习和在线学习的不变量关系图进行绘制可视化异常检测结果。
故障定位对所有被打破的不变量关系采用改进的PageRank算法进行故障定位。
告警事件压缩与降噪技术
运维一般是通过配置固定阈值达到阈值后自动触发/生成告警。如网络中断、闪断系统升级更新设备多监控内容多等情况下更会产生海量告警。故障期间告警风暴手机/邮箱会被海量告警淹没运维人员很难从海量告警从筛选出重要告警容易忽略重要告警固定阈值控制频繁误报、漏报告警。
告警压缩和降噪技术旨在对海量的告警事件进行关联关系挖掘在保证核心告警内容的前提下抑制告警消息数量为运维人员提供有效的告警信息。
实现本算法的基础机器学习基础算法常用为有监督训练算法Apriori。
核心算法思想通过迭代检索出事务数据库中的所有频繁项集即支持度不低于用户设定的阈值的项集利用频繁项集构造出满足用户最小信任度的规则。
Apriori 算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。算法的名字基于这样的事实算法使用频繁项集性质的先验知识 正如我们将看到的。Apriori 使用一种称作逐层搜索的迭代方法k-项集用于探索(k1)-项集。首先找出频繁1-项集的集合。该集合记作L1。L1 用于找频繁2-项集的集合L2而L2 用于找L3如此下去直到不能找到频繁k-项集。找每个Lk 需要一次数据库扫描。
频繁项集的所有非空子集都必须也是频繁的。Apriori 性质基于如下观察根据定义如果项集I不满足最小支持度阈值s则I不是频繁的即P(I) s。如果项A添加到I则结果项集即I∪A不可能比I更频繁出现。因此 I∪A也不是频繁的即 P(I∪A) s 。
该性质属于一种特殊的分类称作反单调意指如果一个集合不能通过测试则它的所有超集也都不能通过相同的测试。称它为反单调的因为在通不过测试的意义下该性质是单调的。 频繁项集挖掘
关联规则的一般步骤:
① 找到频繁集使用候选项集找频繁项集如果某个项集是频繁的那么它的所有子集也是频繁的。该定理的逆反定理为如果某一个项集是非频繁的那么它的所有超集包含该集合的集合也是非频繁的。Apriori原理的出现可以在得知某些项集是非频繁之后不需要计算该集合的超集有效地避免项集数目的指数增长从而在合理时间内计算出频繁项集。
② 在频繁集中通过可信度筛选获得关联规则。
支持度(Support)支持度揭示了A与B同时出现的概率。如果A与B同时出现的概率小说明A与B的关系不大如果A与B同时出现的非常频繁则说明A与B总是相关的。支持度: P(A∪B)即A和B这两个项集在事务集D中同时出现的概率。
可信度Confidence置信度揭示了A出现时B是否也会出现或有多大概率出现。如果置信度度为100%则A和B可以捆绑销售了。如果置信度太低则说明A的出现与B是否出现关系不大。置信度: P(BA)即在出现项集A的事务集D中项集B也同时出现的概率。
③ Ariori算法有两个主要步骤
连接将项集进行两两连接形成新的候选集利用已经找到的k个项的频繁项集Lk通过两两连接得出候选集Ck1注意进行连接的两个频繁项集Lk1,Lk2必须有k-1个属性值相同然后另外两个不同的分别分布在Lk1,Lk2中这样的求出的候选集。
剪枝去掉非频繁项集,候选集中的并不都是频繁项集必须剪枝去掉越早越好以防止所处理的数据无效项越来越多。只有当子集都是频繁集的候选集才是频繁集,这是剪枝的依据。 剪枝
日志异常检测技术
本项目日志异常检测技术采用SwissLog方法使用 LSTM 的深度神经网络模型将系统日志作为自然语言序列。SwissLog从正常执行中自动学习日志模式当日志模式偏离训练模型时检测异常。SwissLog从基础系统日志中构建工作流一旦检测到异常用户可以诊断异常并有效的执行根因分析。
SwissLog包括两个阶段即离线处理阶段和在线处理阶段。每个阶段包括日志解析、句子嵌入、基于注意力机制的Bi-LSTM阶段在线阶段特别包含异常检测阶段。
日志解析部分对历史日志数据进行分词、字典化和聚类提取多个模板这些日志语句与相同的标识符联系起来构建日志序列然后将日志序列转化为语义信息和时间信息。
句子嵌入部分使用BERT模型或Word2Vec模型对句子进行编码转化为词向量将这些语义信息和时间信息输入到基于注意力机制的 Bi-LSTM模型中学习正常、异常和性能异常日志序列的特征在在线检测阶段一旦检测到异常就会发出警报主要流程如下 异常日志挖掘与分析流程
1日志解析
日志解析的主要目的是日志模板化。 中心思想 尽可能将包含语义信息的部分视作日志语句中的常量 解决方法 基于字典的日志模板化方法。 主要流程如下 a) 日志预处理和字典化 b) 利用有效词集日志聚类 c) 寻找最大公共序列 d) 利用前缀树进行聚类 e) 得到日志解析模板
2日志语句编码阶段
异常检测的最终目标是检测我们前面描述的各种故障。我们可以观察到仅凭语义信息不足以检测多种类型的故障。因此还引入了时间信息作为特征来补充异常检测方法。日志解析后我们通过将日志与相同的标识符如HDFS日志中的block id或滑动窗口相关联来构建会话。我们将序列转换为语义信息和时间信息。然后我们用下面的方法对这两种信息进行编码。 中心思想 日志序列是一组有时序特征的自然语言 解决方法 同时考虑日志语句的时序特征和语义特征。 利用BERT学习一条日志语句的语义信息 利用日志序列的打印时间间隔作为时序特征
3日志模式学习阶段
在句子嵌入之后每条日志消息被转换成一个语义向量和一个时间嵌入向量。将二者串联每个日志序列都表示为一个向量列表SwissLog以此类向量为输入采用基于注意力机制的双向LSTM神经网络模型来检测各种异常如图所示 采用双向LSTM神经网络模型检测异常 中心思想 模糊日志序列中不重要的日志语句 解决方法 基于注意力机制的双向LSTM模型学习日志序列的模式。
4异常检测
在离线阶段我们使用历史日志训练获得了一个双向LSTM的预训练模型可以用此模型进行异常检测。当一组新的日志语句到达时它首先经过日志解析和句子嵌入阶段。然后将上面阶段获得的输出向量作为输入输入到预训练模型中。最后通过双向LSTM模型可以检测是否发生异常。SwissLog根据由共同标识符例如block ID关联的日志语句做出预测。
智能分析技术
异常检测旨在表明某些不正常现象而智能分析则试图阐明“是什么问题”、“为什么发生问题“、“问题的最佳解决方案是什么”。
智能分析除了需要用到上面异常检测阶段输出的基于上述检测出的异常指标、重要告警、异常日志等数据还需要基础的网云融合资源及物理和逻辑拓扑关系。
本技术的思路是构建一个故障树的超集通过业务调用链获得资源之间的逻辑调用关系通过网云融合资源及物理拓扑关系比如共享机器资源、网络资源等。这两部分一起构成一个可能的故障树这棵树是真正故障树的一个超集。之后我们对这个超集中的每个边进行联动分析、联动分析对这棵树进行剪枝构成最终的故障传播关系。这种方法的覆盖面广计算开销大大降低并且是AI擅长解决的问题。当我们拥有了故障传播关系并它比较全而且准的话根因分析就变得可行了。当发生故障时依据准确的报警着故障传播树就能找到根因从而进行故障修复。
当上述异常指标、重要告警、异常日志之间存在逻辑关系时可以根据故障树给出根源当数据存在结构性的时候可以根据图算法模型对根因进行分析然后进一步将不同的算法模型对场景和不同的元数据进行适配对异常进行有效的根因定位。在众多可能引起故障的因素中追溯到导致故障发生的症结所在并找出根本性的解决方案。利用机器学习或者深度学习的方法找出不同因素的之间的强相关关系并利用这些关系推断出哪些因素是根本原因。
当故障和问题发生时智能分析功能基于智能算法给出当前问题事件的故障根因推荐并将问题事件的相关故障信息汇集到一个页面根因分析结果可以帮助运维工程师快速确定故障的根因并迅速对故障进行修复降低损失。