关于智能运维(AIOps)的学与思

AIOps

降低运维成本,提升系统效率,如:

  • 异常检测,故障发现,异常定位,异常报警聚合,异常根因分析,快速止损,异常自动修复
  • 故障预测,容量预测、智能扩容(阈值动态调整,弹性扩缩),趋势预测,热点分析

AIOps要解决的是“系统+算法”问题。解决任何一个AIOps中的模块或场景,都需要有“AIOps架构师”把复杂的场景和需求拆解成具体的功能模块: “眼”、“手”、“脑”。

  • “眼”解决那些通过采集数据全面感知系统运行状态就能解决的问题;
  • “手”解决那些基于固定逻辑就能解决的问题;
  • “脑”又细分为两类模块:1)通过挖掘历史数据总结出来各种画像和知识;2)通过动态决策算法来处理各种具体运维场景。 “脑”里面的两个模块必须能被当前AI技术所解决(要求数据丰富、信息完整、清楚定义、单领域)。

AIOps运维大脑主要包含两大部分:“运维知识图谱”和“动态决策”。

动态决策利用实时监控数据和已经挖掘好的运维知识图谱进行实时决策。“动态决策” 包括故障发现、故障定位、故障处置、故障规避等大场景。每一个大场景还包含若干个小场景,比如故障发现包含单指标异常检测、多指标异常检测、文本日志异常检测、交易链条日常检测等等。

基于 AIOps 的无人运维

《基于机器学习的智能运维》 | 《中国计算机协会通讯》


异常检测

KPI异常检测

异常检测是智能运维(AIOps)系统中一项基础且重要功能,其旨在通过算法自动地发现KPI时间序列数据中的异常波动,为后续的告警、自动止损、根因分析等提供决策依据。

将异常检测作为二分类问题来处理,按照机器学习流程分为四个阶段:预处理,特征提取,模型训练和最后的异常检测。

异常检测问题的主要特点:样本极度不平衡。解决:异常样本过采样以达到正负样本1:1,最后通过阈值进行决策调整。

最终使用的深度模型,有两个全连接隐层和一个Sigmoid输出层,两个隐藏神经元数量都是128。通过Dropout和L1正则化控制模型的过拟合,以增强泛化能力。DNN输出数据点的异常概率,再通过阈值进行二分类。阈值如何确定呢?以F-Score作为评估标准,通过网格搜索的方式确定最优阈值。这里使用阈值的目的主要是为了修正样本不均带来的偏斜。

KPI聚类算法,用于辅助大规模KPI异常检测任务,实现高效、准确的大规模异常检测。

AIOps挑战赛http://iops.ai

流量异常检测

流量,是系统的黄金指标之一,它直观反映系统的运行状态。健康的系统流量通常平稳波动变化,当流量突然上涨或者下降时可能预示系统中存在故障。例如

  • 系统的外部网络链路出现故障时,外部用户的访问流量无法到达我们的系统,流量会出现突降异常。当系统模块出现问题无法响应用户的请求时,此时的流量同样会出现突降异常
  • 除了导致流量突降类的故障,当系统被爬虫爬取或者攻击时,流量会出现突升异常

所以流量的突升、突降常常表示系统中发生了某种故障或者异常行为。因此,流量异常检测对发现系统故障、维护系统的稳定性十分重要,它也成为了AIOps智能运维中的一个典型场景问题。

流量异常检测主要有以下难点

  • 流量的大小会随着用户行为发生变化。需要算法能够区分流量的正常波动变化与异常波动变化,准确的检测异常流量。
  • 流量也会受到业务逻辑调整的影响,流量水位会出现上涨或者下跌后不恢复的现象。需要算法能够及时适应这种变化,否则就会导致持续的误报。

将流量异常检测分为预测与检测两个阶段。

  • 预测阶段需要克服异常流量的影响,对流量进行精准预测 (回归问题)
  • 检测阶段需要计算真实值与预测值之间的差异,当差异显著大于通常情况时,即可判定当前实际流量出现了异常

我们不一样!告诉你百度是如何做智能流量异常检测的

日志异常检测

LogCluster针对于在线的大型软件系统的日志进行处理与分类,采用聚类方法,识别当前故障在之前是否发生过。如是,则直接采用成熟的止损方案。该系统由微软研究院实现并在微软的多个服务中实际部署,并发表于软件工程顶会ICSE 2016。

LogCluster系统被广泛应用在服务系统当中,帮助运维人员发现异常、定位故障原因、查找解决方案

MSRA日志分析系统:LogCluster, 软件工程顶会ICSE 2016

路由器系统日志分析系统——SyslogDigest | 《What Happened in my Network? Mining Network Events from Router Syslogs》 IMC2010

DeepLog: 基于深度学习的日志异常检测, 安全领域顶会CCS2017

异常定位、异常诊断

在互联网运维中,有一类多维度KPI指标体系,其指标数目繁多、之间具有复杂的相互影响关系,通常只对KPI总量进行实时的异常检测算法,检测出异常后,再对体系查找定位导致该总量异常的细粒度指标集合。

下面介绍一种对这种多维度指标体系中准确、高效地进行异常定位的方法HotSpot,采用了蒙特卡洛树搜索(MCTS)方法。

清华AIOps新作:蒙特卡洛树搜索定位多维指标异常 | 《HotSpot: Anomaly Localization for Additive KPIs With Multi-Dimensional Attributes》

故障预测、故障自动修复

基于日志的交换机故障预测 | 《PreFix: Switch Failure Prediction in Datacenter Networks》 SIGMETRICS2018

数据与标准工具

百度智能运维团队与清华大学Netman实验室合作研发的辅助标注工具原型

https://github.com/baidu/Curve


知识图谱与运维

腾讯互娱刘伟:知识图谱让AI更有学识

业务监控产生业务告警信息,如何智能定位故障根源,实时统计业务影响?

故障定位

  • KPI 曲线异常检测
  • 实时舆情故障分析
  • 运维领域知识图谱构建(利用知识图谱辅助决策并使故障定位结果的具备可解释性)

难点:没有大规模运维语料 -> 从具体场景入手逐步扩展


AIOps in Database

阿里云 CloudDBA

CloudDBA实践-TOP SQL优化分析数据库性能问题

你可能感兴趣的:(机器学习)