AIOps:自适应机器学习异常检测

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
云备份 Cloud Backup,100GB 3个月
简介: 以下内容来自【2021阿里云开发者大会】中的内容分享,本次分享的题目是《AIOps:自适应机器学习异常检测》,该分享意在阐述机器学习算法在企业中的落地实践,通过算法和算力尽可能的提升企业运维人员的效率,为业务的快速发展保驾护航。

以下内容来自【2021阿里云开发者大会】中的内容分享,本次分享的题目是《AIOps:自适应机器学习异常检测》,该分享意在阐述机器学习算法在企业中的落地实践,通过算法和算力尽可能的提升企业运维人员的效率,为业务的快速发展保驾护航。

分享人:

  • 阿里云SLS 刘贵阳(悟冥)、胡文杰(笃林)

接下来正式进入本次分享:

业务快速发展和传统监控难以支撑之间的矛盾

1. 回顾运维监控人员的日常工作

  1. 当一个新业务上线前,运维人员都需要明确服务的部署情况,确定监控对象,以及监控对象的一些可观测性指标,并根据此完成相关日志数据的采集和处理;这里面会涉及到很多日志采集、指标加工等一系列脏活累活;
  2. 当确定了监控对象的黄金指标后,往往都需要先适配一组规则:某个接口每分钟的平均请求延时不要超过多少毫秒;单位分钟内的错误请求数量,不要超过多少等等;
  3. 随着业务逐步对外提供服务,以及各种运营活动的加推,我们运维监控同学一定会面临两个突出的问题:误报太多和漏报的风险,那么这两个问题都在现阶段都需要人工介入,进行阈值的调整;尤其是漏报的问题,更加需要人工盯屏的形式,设计新的监控规则去覆盖一些事件;

上述的场景中还都是在业务指标监控中所涉及到的,还没有提到服务的全链路的监控问题,服务部署环境中机器的监控问题。

2. 困难和挑战:监控对象呈爆炸式增长

我们的上层业务的部署形式逐渐想容器化和微服务化方向演进。我们的应用程序部署有之前的单物理机到单个容器中。这里带来了几个问题:

  • 传统的部署模型,监控对象较为确定,对应的观测指标也比较确定,且存活的生命周期较长,因此可以较好的完成异常的监控;
  • 服务在新的架构上部署后,其中涉及的组件和模块都增加了很多,其大都混部在相同的物理机器上,彼此之间的会有较大的影响,且服务对象的生命周期偏短,较难进行完整的监控;

且在公司中往往会有上百的研发人员,一般会维护上千的应用和服务,每个月多有上百次的变更,每分钟会涉及到几十甚至几百GB的监控数据。在这样庞大且复杂的规模下,传统的基于规则的监控无法更好的满足服务的稳定性要求。

3. 困难和挑战:传统的监控规则泛化能力弱

在我们的服务过程中,我们会发现传统监控规则泛化能力弱的几个典型问题:

  • 基于人工规则的监控会有漏报、误报、规则阈值无法自适应的问题
  • 如第一排中第一张图所示:其中时序曲线描述的是一个周期性的批处理作业的CPU利用率的曲线,我们可以看到,周期性的突刺信号是正常的,而图中有两个点是有问题的,对于特别到的突刺点来说,我们通过阈值的方式是可以较好的抓到的,但是对于图中红圈标注的点来说,通过规则的形式是很难写出来的;
  • 第二张图描述的是线上服务的内存的曲线,我们可以看到前面是比较平稳的,在某个时刻发生变更后,机器的内存上涨,对于传统的监控规则来说,后续的超过阈值的时间点都是异常,但是真实的业务场景中,更合理的是关注到某个时刻指标发生了突变,并且持续了一段时间后趋于稳定,那么后续的异常点就不应该持续的报出来;
  • 新业务的指标监控无法复用现有的监控规则
  • 对于上图中,我们可以看到两条关于访问请求的时序指标,通过几个维度来分析下:
  • Y轴的范围差距是比较大的,第一张图是按照K(千)来划分的,第二张图是按照Mil(百万)来划分的;
  • 我们可以看到指标的波动性还是比较大的,且曲线的形态差异较大,我们使用的传统的同比、环比、均值等策略无法实现我们的监控预期


自适应时序监控的设计方案

在两年前,我们在思考一个事情,能否充分利用机器学习的能力来解决监控系统中时序异常检测的问题,将更多的基于《规则+人工经验》的能力,逐步转移到《算法+经验知识》的系统能力。让可观测性平台具备自适应、自学习、自反馈的能力。接下来,让我们一起来看下SLS在这个问题上的探索。

1. 智能时序系统的基础能力

  • 系统应该具备的基础能力如下:
  • 准确且全面的发现异常:这里要求系统的对于时序异常识别的准确率和召回率都要求较高,这个是智能系统需要的最为核心也作为基础的能力
  • 同时系统需要具有一定的适应能力,因为系统是给“人”来使用的,算法判定的结果是通过数值的角度去分析的,异常不等同于故障(这里我们去区分下不同的定义:一个是Incident、一个是Problem)
  • 算法的输出结果应该是结构化的,且其异常应该具备可比较的分数,且分数可以量化到[0, 1]之间;便于对接后续的业务系统
  • 同时支持较好的扩展能力:可支持数十万时序监控对象进行较为复杂的模型监控

2. SLS的解决方案

  • 在图中第一部分描述的是我们服务部署环境中所需要的关注的一些服务的相关日志,主要包含了:程序日志数据、组件日志数据、以及对应的时序指标数据、外带上系统的事件数据等,这些数据统一都可以按照Log模型、Metric模型和Trace模型统一存储在SLS平台中。
  • SLS平台提供了丰富的数据处理手段,可以针对原始的数据做行处理,解决杂乱数据规整、富化、分发的能力,同时平台上提供了兼容SQL92的查询分析能力,可以快速的定制SQL的调度任务,提取相关的指标数据,供后续的分析和可视化。
  • 用户可以开启智能巡检服务,消费结构化的指标数据,通过智能算法产生结构化的异常事件,通知到用户,用户可以对异常事件进行相关的反馈,后续我们会进行逐步跟告警管理系统打通,解决事件跟踪和关系推断的问题。
  • 对于上图中,左边:数据接入和数据预处理部分、右边:告警管理这两部分会有单独的详细介绍,这里我们着重介绍下智能巡检服务。

3. SLS智能巡检服务简介

具体的算法原理:采用无监督学习算法,自动识别实体的数据特征,根据数据特征选择不同的算法组合,针对数据流实时建模,完成异常检测任务,并根据用户的打标信息,训练监督模型,实现算法的不断优化,提高准确率。具体拆解如图中流程图所示:

  • 巡检系统的处理对象是监控指标,当监控对象有较多的历史数据时,系统会进行时序画像的构建:主要是从业务的周期性、趋势性、波动性等几个维度去刻画,能较好的学习时序的状态;当某个对象的时序数据较少时,我们会先退化到统计建模的策略,主要去分析指标的局部统计特征,当数据逐步累积到一定量后,会进行详细的时序画像的构建;
  • 我们构建的是一个时序的巡检系统,处理的对象是实时的数据流,逐点送入时序建模(Time2Graph算法),会对接我们的异常判别模型,输出对应的标准异常事件后会通过钉钉机器人的渠道,将结果通知到用户,用户可以选择对系统的输出进行反馈,平台会自动的收集到您的反馈信息,完成特征和标签的对应,训练出对于异常事件样本的监督模型,将模型应用到异常判别器,优化系统给用户的输出,真正做到千线千面;
  • 值得一提的是:这套系统中核心的时序建模算法演化自《Time2Graph系列算法》,核心作者就是我们团队的 胡文杰 同学,相关论文已经发表在AAAI、WSDM、TKDE顶级数据挖掘会议上,感兴趣的各位可以翻阅论文,欢迎讨论交流。

在SLS平台中的使用展示

智能巡检服务目前已经在线上正式对外发布,各位可以查询SLS官方文档提供了详细的操作说明,您在使用过程中遇到问题可以联系我们,希望时序巡检服务可以解决您在日常监控中反复配置若干规则的繁琐和低效,提升运维同学的幸福指数。


大家在使用过程中,遇到问题可以通过如下方式联系我们

image.png


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
机器学习/深度学习 数据采集 监控
探索机器学习在金融欺诈检测中的应用
【5月更文挑战第30天】在金融交易的复杂网络中,欺诈行为日益猖獗,传统的检测方法逐渐显得力不从心。随着人工智能技术的飞速发展,机器学习因其强大的数据分析和模式识别能力成为打击金融欺诈的新利器。本文将深入探讨机器学习在金融欺诈检测领域的应用情况,分析其优势与挑战,并展望其在未来的发展前景。
|
2月前
|
机器学习/深度学习 安全 网络安全
利用机器学习优化网络安全威胁检测
【9月更文挑战第20天】在数字时代,网络安全成为企业和个人面临的重大挑战。传统的安全措施往往无法有效应对日益复杂的网络攻击手段。本文将探讨如何通过机器学习技术来提升威胁检测的效率和准确性,旨在为读者提供一种创新的视角,以理解和实施机器学习在网络安全中的应用,从而更好地保护数据和系统免受侵害。
|
2月前
|
机器学习/深度学习 算法 数据可视化
如何在机器学习中检测异常值
如何在机器学习中检测异常值
|
3月前
|
机器学习/深度学习 运维
【阿里天池-医学影像报告异常检测】4 机器学习模型调参
本文提供了对医学影像报告异常检测任务中使用的机器学习模型(如XGBoost和LightGBM)进行参数调整的方法,并分享了特征提取和模型调优的最佳实践。
57 13
|
3月前
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
68 9
|
5月前
|
机器学习/深度学习 算法 网络安全
机器学习在网络安全威胁检测与防御中有广泛的应用
机器学习在网络安全威胁检测与防御中有广泛的应用
40 1
|
5月前
|
机器学习/深度学习 存储 自然语言处理
【机器学习】LoRA:大语言模型中低秩自适应分析
【机器学习】LoRA:大语言模型中低秩自适应分析
267 5
|
5月前
|
机器学习/深度学习 数据采集 安全
【机器学习】安全领域:突破威胁检测的边界
【机器学习】安全领域:突破威胁检测的边界
81 1
|
5月前
|
机器学习/深度学习 数据采集 运维
构建基于机器学习的异常检测系统
【6月更文挑战第7天】构建基于机器学习的异常检测系统,通过收集和预处理数据,进行特征提取和选择,然后选择SVM、随机森林等算法训练模型。评估指标包括准确率、召回率、F1值,旨在识别安全威胁、系统故障等异常,保障系统稳定。未来将持续优化性能并探索新技术。
|
6月前
|
机器学习/深度学习 人工智能 运维
【机器学习】Adaboost: 强化弱学习器的自适应提升方法
在机器学习领域,集成学习是一种通过结合多个弱模型以构建更强大预测模型的技术。Adaptive Boosting,简称Adaboost,是集成学习中的一种经典算法,由Yoav Freund和Robert Schapire于1996年提出。Adaboost通过迭代方式,自适应地调整数据样本的权重,使得每个后续的弱学习器更加关注前序学习器表现不佳的样本,以此逐步提高整体预测性能。本文将深入探讨Adaboost的工作原理、算法流程、关键特性、优势及应用场景,并简要介绍其实现步骤。
96 1