开发者社区> 悟冥> 正文

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

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

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

分享人:

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

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

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

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

image

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

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

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

image

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

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

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

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

image

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

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


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

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

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

image

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

2. SLS的解决方案

image

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

3. SLS智能巡检服务简介

image

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

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

在SLS平台中的使用展示

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


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

image.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SASS+COMPASS 自适应 学习笔记
来源 http://snugug.github.io/RWD-with-Sass-Compass/#/ 1 安装 COMPASS 扩展 安装 方式 gem 'extension', '~>X.Y.Z' 命令行安装 require '{extension}' @import '{extension}'; sass 文件导入   扩展1 http://breakpoint-sass.
911 0
DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
56 0
CV:基于深度学习实现目标检测之GUI界面产品设计并实现图片识别、视频识别、摄像头识别(准确度非常高)
CV:基于深度学习实现目标检测之GUI界面产品设计并实现图片识别、视频识别、摄像头识别(准确度非常高)
71 0
【监控杂谈之异常检测】什么是异常
# 写在系列开头 集团在异常检测方面做了很多积淀,本系列将开始总结一些常见的问题以及解决办法,为后来人或者感兴趣的人快速上手,权当抛砖引玉,如有兴趣或者问题可以留言或@冷愁 本章作为整体概述,站在运维的角度、日常应急处理的视角,描述现有遇到的问题,在后续的篇章中会针对每一个遇到的问题提供响应的解决方案 ## 什么是异常检测 在开始之前,我们需要聊聊什么是异常检测。 引用维
6111 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19910 0
基于深度学习技术的视频内容检测
短视频APP在UGC场景下出现了大量重复视频内容,该重复视频被重复曝光、重复消费,造成了用户体验较差,甚至于用户流失。本次分享重点介绍基于深度学习CNN技术构建视频重复内容检测服务,并给出该方案的工程实现。该服务上线后,重复检测准确率80%,视频内容分发提效20%。
1342 0
+关注
悟冥
日志服务给您提供完整的日志采集、分析功能
28
文章
1
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
相关文档: 混合云容灾服务 混合云备份服务 日志服务
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载