降低运维成本,提升系统效率,如:
AIOps要解决的是“系统+算法”问题。解决任何一个AIOps中的模块或场景,都需要有“AIOps架构师”把复杂的场景和需求拆解成具体的功能模块: “眼”、“手”、“脑”。
AIOps运维大脑主要包含两大部分:“运维知识图谱”和“动态决策”。
动态决策利用实时监控数据和已经挖掘好的运维知识图谱进行实时决策。“动态决策” 包括故障发现、故障定位、故障处置、故障规避等大场景。每一个大场景还包含若干个小场景,比如故障发现包含单指标异常检测、多指标异常检测、文本日志异常检测、交易链条日常检测等等。
基于 AIOps 的无人运维
《基于机器学习的智能运维》 | 《中国计算机协会通讯》
异常检测是智能运维(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更有学识
业务监控产生业务告警信息,如何智能定位故障根源,实时统计业务影响?
故障定位:
难点:没有大规模运维语料 -> 从具体场景入手逐步扩展
阿里云 CloudDBA
CloudDBA实践-TOP SQL优化分析数据库性能问题