【监控杂谈之异常检测】什么是异常

简介: # 写在系列开头 集团在异常检测方面做了很多积淀,本系列将开始总结一些常见的问题以及解决办法,为后来人或者感兴趣的人快速上手,权当抛砖引玉,如有兴趣或者问题可以留言或@冷愁 本章作为整体概述,站在运维的角度、日常应急处理的视角,描述现有遇到的问题,在后续的篇章中会针对每一个遇到的问题提供响应的解决方案 ## 什么是异常检测 在开始之前,我们需要聊聊什么是异常检测。 引用维

写在系列开头

集团在异常检测方面做了很多积淀,本系列将开始总结一些常见的问题以及解决办法,为后来人或者感兴趣的人快速上手,权当抛砖引玉,如有兴趣或者问题可以留言或@冷愁

本章作为整体概述,站在运维的角度、日常应急处理的视角,描述现有遇到的问题,在后续的篇章中会针对每一个遇到的问题提供响应的解决方案

什么是异常检测

在开始之前,我们需要聊聊什么是异常检测。

引用维基百科的说法

In data mining, anomaly detection (also outlier detection) is the identification of items, events or observations which do not conform to an expected pattern or other items in a dataset.
-Wikipedia Anomaly Detection

在数据挖掘领域,异常检测(异常点检测)是在某个数据集中区分出不服从于已知或预期的模式(或分布)的条目、事件或者观测点。

Hawkins [Hawkins 1980]的定义:

"An outlier is an observation which deviates so much from the other observations as to arouse suspicions that it was generated by a different mechanism "

异常点就是相对于其他观测点来看有明显偏离的点,以至于怀疑其与正常点来说不属于同一个产生来源。

上述是较为直观的异常点定义,但是如何转换成机器语言或者监控方法?

主流的异常检测方案大体有以下几种:

  1. 基于密度的异常检测(LOF)
  2. 基于统计的异常检测(Holt-Winters、Confidence Interval)
  3. 基于偏差的异常检测(同比、环比、基线比)
  4. 基于距离的异常检测(KNN、Isolation Forest)

目前主要还是根据下面的统计学定义来的:

正常的数据基于一个已知分布,例如一些给定的统计学分布(泊松分布、正态分布)

异常就是明显偏离这个已知的分布的部分或点

再思考一个点,异常的本质是什么?

监控指标(就是一条曲线)的本质实际上是一个信息集合,大致分为两部分的信息

  1. 基于时间维度的(自身历史的数据)
  2. 基于同系列的维度(例如各个银行渠道,互相之间存在着信息,一个曲线下跌,其他曲线没跌,即为异常)

而以上两个维度中,2的信息不一定存在,如果仅仅从1看,那么可以通俗的理解为:

1. 历史上发生过的,今天再次发生了,认为是正常的
2. 历史上未发生的,今天发生了,那就是异常

有人要问了,我刚做了变更、重启操作,报警报出来了,这就是无效的报警呀?

所以我们为了后续的工作,必须要将此分解开来:

从数据集中获取信息进行检测我们称之为异常
人的超集经验对于报警的判定我们称之为报警订阅

从而将监控系统分为1. 异常检测 2. 报警订阅两部分

集团监控中异常检测的难点以及要解决的问题

一、季节性或周期性(Seasonality)

在实际应用当中,季节性是非常普遍存在的,例如下图中,红标的地方是否是异常呢?

screenshot

貌似看起来是下跌了。但是再看过去几日的数据:

screenshot

发现每天的时间点都会下跌,也就是说,这并不是异常。

这就是季节性或是周期性。

季节周期是我们监控中首先要解决的第一个问题,因为如果季节性解决不好,会导致我们的监控有大量的误报,具体表现就是每天固定的时间点都会报警,但并不是异常

二、异方差性(Heteroscedasticity)

什么是异方差?

方差我们可以直观的理解为曲线的抖动(波动)幅度,异方差就是指根据时间的不同,曲线或数据集的方差是不相同的。

我们还是从图上来看:

screenshot

每天凌晨和白天的抖动幅度不一致,明显晚上抖动幅度比白天大。

大家应该能看出来问题了,如果异方差性存在,就会导致报警策略在白天、晚上的报警效果不同,这也是现在遇到的很大的问题,明明白天报警效果很好,但是到了晚上报警就非常多!

三、复杂周期性(Complex Cyclic)

什么叫复杂周期性?跟(1)的周期性有什么区别?
screenshot
在日常监控中,我们会有类似的经验,曲线具有显著的天周期性(1440个点为一个周期),也会有星期周期性(1440*7 个点为一个周期),那两者都有呢?我们就有了2个周期。

除了天周期和星期周期,我们还会有月周期(例如月初冲话费、缴费的人明显增多),可是每个月的周期都是不固定的呀?有的月有28天,有的有29天,有的由30天或31天,这怎么办呢?

甚至一年也不是稳定的365天,也会有366天,平均下来就是365.25天,非整数周期什么鬼.....

这就是我们所说的『复杂周期性』

四、报警抑制(Alarm Suppression)

现在集团监控业务在飞速扩张,监控指标数也在迅猛增长,例如监控值班关注的监控指标都有几千个,每日处理报警近千条....

为了报警准确率和高效处理,我们的常规做法是不停的提高发现率、误报率,这样真的是有效的么?

五、故障原因定位(Root Cause)

故障定位可以说是重点,但是在内部一度成为谁做谁死的状态....这是什么鬼?

screenshot

  1. 在集团内部,关系调用复杂,甚至有效的链路调用图关系都很难梳理。
  2. 某个中间件异常,导致若干业务收到影响,同时发送了大量的报警,如果在这么多报警中甄选有价值的信息?

在这种情况下如何引入统计过程分析来解决故障定位的问题呢?

参考文献

1.Hawkins, DM:Identification of Outliers

2.非监督学习算法:异常检测

目录
相关文章
|
安全 Windows
win11系统‘ipconfig‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
win11系统‘ipconfig‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
2320 0
win11系统‘ipconfig‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
|
JavaScript 前端开发
Bootstrap5 侧边栏导航(Offcanvas)1
Bootstrap5 的 Offcanvas 组件提供了一种在小屏幕设备上使用的侧边栏导航方案。通过添加 `.offcanvas` 类并结合 `data-bs-toggle="offcanvas"` 属性,可实现侧边栏的显示与隐藏。支持通过链接的 `href` 或按钮的 `data-bs-target` 属性进行控制。
|
存储 数据采集 运维
构建高效日志管理系统:阿里云产品实践与技术解析
日志管理对于系统运维和故障排查至关重要。本文将详细介绍如何利用阿里云相关产品搭建一个高效、可扩展的日志管理系统。我们将使用Log Service、Elasticsearch、DataHub等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
585 0
阿里巴巴在开源压测工具 JMeter 上的实践和优化
本文是 《如何做好性能压测》系列专题分享的第三期,该专题将从性能压测的设计、实现、执行、监控、问题定位和分析、应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论体系,并提供有例可依的实战。
6616 90
阿里云商标注册通过成功率高吗?
阿里云商标注册靠谱吗?通过成功率高吗?
1199 0
阿里云商标注册通过成功率高吗?
|
前端开发 Java 关系型数据库
JavaWeb用户登录注册实例(mybatis、maven、mysql、tomcat、servlet)
JavaWeb用户登录注册实例(mybatis、maven、mysql、tomcat、servlet)
JavaWeb用户登录注册实例(mybatis、maven、mysql、tomcat、servlet)
|
弹性计算 固态存储 NoSQL
阿里云高效云盘、可选云盘、ESSD云盘指的是什么?如何选择?
当我们通过阿里云服务器活动下单购买云服务器产品时候,云盘通常有高效云盘、可选云盘、ESSD云盘可选,对于很多新手用户来说,并不清楚这三种云盘分别指的是什么,也不清楚应该如何选择,下面小编来谈谈自己的看法,仅供参考借鉴。
5072 0
阿里云高效云盘、可选云盘、ESSD云盘指的是什么?如何选择?
|
传感器 移动开发 安全
iPhone X + iOS 11 适配指南(上)
iPhone X + iOS 11 适配指南(上)
501 0
iPhone X + iOS 11 适配指南(上)
|
编解码 iOS开发
ios开发:友盟移动数据统计分析详解
基本指标主要包括:新增用户、启动次数、时段累计日活、分时活跃用户 每个指标都包括具体数值、相对于昨天的增长率。 每个指标都分:今日、昨日、7天前、30天前四个折线图提供分析。
583 0
ios开发:友盟移动数据统计分析详解
|
Java API Spring
【小家Spring】探索Spring AOP中aopalliance的Joinpoint、MethodInvocation、Interceptor、MethodInterceptor...(上)
【小家Spring】探索Spring AOP中aopalliance的Joinpoint、MethodInvocation、Interceptor、MethodInterceptor...(上)
【小家Spring】探索Spring AOP中aopalliance的Joinpoint、MethodInvocation、Interceptor、MethodInterceptor...(上)