Yahoo大规模时列数据异常检测技术及其高性能可伸缩架构大规模时列数据异常检测技术及其高性能可伸缩架构
1. 摘要
本文介绍了大规模时序数据自动异常检测的通用和可扩展框架。能够在早期检测到系统异常,无论在维护用户数据一致性方
面,还是在保护企业免受恶意攻击都发挥着非常关键的作用。现有技术在异常检测方法受到可扩展性和易用性上都存在很大问
题。我们在雅虎(EGADS)的系统设计了基于异常检测和预测模型构建的异常过滤层,用于准确地进行时序数据的异常检
测。我们比较我们的方法与其他异常检测系统对实时和合成数据的不同时间序列特征。EGADS框架在精度和召回率提高了
50%~60%。
2. 简介
虽然计算硬件和软件的快速发展已经极大提高了应用程序的可靠性,但是在大型集群中仍然存在大量的软件错误和硬件故障。
系统要求7*24小时不间断运行,因此,对这些系统的持续监控就至关重要。从数据分析的角度来看,这意味着不间断地监视
大量的时间序列数据,以便检测潜在的故障或异常现象。由于实际中的系统异常或者软件BUG可能会非常多,通过人工监控
几乎是不可能的,因此非常有必要使用机器学习和数据挖掘技术进行自动化异常检测。
异常值本质上是一个数据点。通常,大多数应用程序中的数据是由一个或多个反映系统功能的程序产生的。当底层应用程序以
不正常的方式运行时,它会产生异常值。快速高效地发现这些异常值非常具有价值,比如在:入侵检测,信用卡欺诈,传感器
事件,医疗诊断,执法等。
我们在雅虎的系统被称为EGADS,它可以准确和可扩展地检测时间序列异常。 EGADS将预测、异常检测和警报分为三个单
独的组件,允许人员将自己的模型添加到任何组件中。本文重点介绍后两个组件。
EGADS是第一个灵活、准确、可扩展和可扩展的异常检测综合系统。 EGADS框架与异常检测基准数据一起开源,帮助学者
和行业合作开发新的异常检测模型。在雅虎,EGADS每天被许多团队用于数百万次的时间序列异常检测工作。
整体架构
EGADS框架由三个主要部分组成:时间序列建模模块(TMM),异常检测模块(ADM)和报警模块(AM)。给定一个时间
序列,TMM组件模拟产生时间序列,由ADM和AM组件进行消费处理,分别计算误差并过滤不感兴趣的异常。这些组件在第3
和4节中有详细描述。
EGADS被构建为一个框架,可以轻松地集成到现有的监控基础设施中。在雅虎,我们的内部雅虎监控服务(YMS)每秒处理
数百万个数据点。因此,对YMS进行可扩展,精准和自动化的异常检测至关重要。接下来我们将详细描述YMS的具体细节。
2.1系统集成
EGADS作为独立平台运行,可用作大型系统中的库。因此,设计EGADS和内部雅虎监控服务(YMS)之间的接口至关重
要。 EGADS与YMS的集成架构图如图1所示。