异常检测是智能运维系统中的重要环节,日志服务推出机器学习服务,用于时序数据智能巡检。本文介绍时序数据智能巡检的背景信息、业务痛点以及日志服务机器学习服务的功能点。

背景信息

异常检测是智能运维系统中的重要环节,在云平台上巡检各个服务的时序指标成为监控服务质量的重要手段。在云平台上,系统和服务的指标项多、时序形态丰富、异常类型难以枚举,依靠人工规则来做异常检测很难达到预期效果。同时,现有的巡检方法基本采用通过SQL语句发起机器学习函数的方式,拉取部分数据做模型训练。在海量的时序数据下,输出结果反应延迟、成本昂贵,很难充分学习数据特征。

日志服务机器学习服务采用流式学习方式,将机器学习函数智能化,让模型在历史数据流上不断记忆,充分学习数据特征、实时反馈,进一步降低使用门槛。您只需发起机器学习服务,配置一定的告警阈值,即可实现对时序数据的实时智能巡检。

实际业务痛点

  • 指标太多
  • 监控对象太多
  • 阈值参数太多
在时序数据监控场景中,您往往先确定监控对象,并通过其历史数据,结合业务经验,得到不同组的阈值参数,再通过各种手段(同比、环比、连续触发等)进行监控。针对一个监控对象,往往需设计4~5条监控规则,并配置不同的参数,而且各个参数阈值无法快速复用到不同的类似观测对象中。当观测对象的规模达到数千,甚至上万后,传统的配置方式效率低,无法满足监控大规则时序数据需求。SQL请求式智能巡检
例如使用Logtail采集Kubernetes宿主机的秒级时序数据,将数据写入到日志服务中,然后您需要根据人工经验对这份数据进行聚合和采样,提取出如下8个常用指标,配置分钟粒度的流式告警。
表 1. 常用指标
观测指标 指标名称
系统态CPU使用百分比 cpu_sys
CPU空闲时IO请求时间 cpu_iowait
用户态CPU使用百分比 cpu_user
内存使用情况 mem_usage
存储空间使用情况 disk_usage
使用的文件描述符的个数 fd
网络包重传数量 retrans
系统负载 load
流式算法具有天然的优势可以解决上述问题,您只需要开启机器学习服务即可,算法模型自动拉取数据完成实时训练、实时反馈,即来一个点,学习一个点,检测一个点。在极大的降低成本的同时,实现对每一条线的单独建模、单独分析和模型参数单独保存,实现时序异常检测的千线千面。服务化流式智能巡检

功能介绍

日志服务团队结合目前国际主流的流式异常检测算法,包括随机树、HTM、Skyline等流式算法和Time2Graph等最新时序建模方法,自研三大流式巡检功能:流式统计算法异常检测、流式树算法异常检测和流式图算法异常检测。

三种功能分别采用不同类型的算法,对指标时序进行异常检测,您可以根据数据形态,选择合适的巡检功能完成时序智能巡检,详情请参见机器学习服务
  • 流式统计算法异常检测主要采用核密度估计等统计学习算法,适用于时序变点异常。
  • 流式树算法异常检测主要采用随机树学习算法,适用于时序折点异常。
  • 流式图算法异常检测主要采用Time2Graph等图学习算法,适用于时序周期异常。

拓展内容请参见AAAI 2020: 时序转化为图用于可解释可推理的异常检测基于数据流的异常检测:Robust Random Cut ForestSLS机器学习最佳实践:时序异常检测、。