排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
指标异常检测的常用方法
指标异常检测的常用方法
白鳝的洞穴
2020-12-17
3185
指标异常检测是运维自动化建设过程中最关键的技术,现在大多数搞AIOPS的朋友都不满足于谈指标检测,而是都在忽悠指标预测的概念了。实际上,现在能够真正做好指标检测的都是凤毛麟角。指标检测是运维自动化的基础性工作,只有能够实现高质量的指标异常检测,运维自动化系统才能真正的落地,而不是一个摆设。今天老白和大家探讨一下指标异常检测的常用方法。
第一种方法是最为传统的方法,就是基线分析法。通过预设的基线数据来判断当前指标是否存在异常。这是一种十分传统的方法,从第一台计算机诞生开始,通过某些基线来判断计算机系统是否存在问题的做法就已经存在了。不过看似传统,但是要想做好基线设置也是一个十分具有挑战性的工作。互联网企业存在大量的同构系统,可能几千甚至几十万个节点承担的工作负载、硬件配置都是标准化的,因此他们的基线设置相对容易,也更为有效。但是一旦在传统企业开展基线设置,我们就会发现,系统的工作负载、系统的规律节奏、硬件的配置都千差万别,很难设置一个较为通用的基线模板。另外一方面,如何设置基线也是一个大学问,最初的基线是一组数据,包括基准、上限、下限等,无论一年中、一个月中、一天中的工作负载如何变化都是用这套基线来进行指标异常检测。很多用户都发现这种方式做出的异常检测十分不准,基线指标也很难设定。于是很多企业都开始使用复杂基线,支持一些具有周期特征的变化。这种方式虽然解决了一些问题,但是仍然存在如何设置合理的基线的问题。比如IO延时的问题,我们是设置30毫秒还是50毫秒作为基线呢?设置的太低了,告警数量太多,无法处理,设置的太高了,真的出问题了有可能不报警。最后一点是,随着对信息系统监控要求的提升,以及运维中遇到的新的场景要求,指标是动态变化的,每新创建一个指标,都要根据上百套甚至数千套个性化的系统去设置基线,是一个工作量十分巨大的,并且必须有专家参与的工作,对于大多数企业来说,很难去落地。
第二种方法是同比/环比等数学对比方法,也就是不通过对每个指标设置基线的方法来进行异常检测,而是通过同比、环比等数学算法来判断当前的指标是否出现了异常。这种方法避免了为每个指标设置复杂的基线模板,似乎应用起来也比较简单,很容易落地。但是这个方法也不完美,因为信息系统大多数不是十分平稳的,指标也千差万别,有些指标适合于环比,有些指标适合同比。同比的话还需要设定时间窗口,相同的窗口内的数据进行同比才有意义。
比如说大多数MIS系统周末是没什么OLTP业务的,只有一些备份和统计业务,这是两种时间窗口。每天9点-10点可能是业务最忙的窗口,如果9点和8点的数据做环比,百分之百会发生异常,如果每天9点都误报一次指标异常,那么运维人员肯定是十分恼火的。另外月底的最后一天可能会叠加很多统计报表,那么这一天又是一个特殊的窗口。只有我们把通用的窗口与特殊窗口全部十分准确的定义好了,这种方法才能较好的工作。因此第二种方法实际上要想达到运维自动化想要的效果,仍然是工作量十分巨大的。
第三种方法是利用大数据分析的算法去发现指标的异常。这种指标异常发现有两种方法,一种是暴力计算的方法,一种是数学模型的方法。暴力计算实际上能够很好的发现指标异常,不过所需要的算力十分巨大,无法在生产环境中广泛使用,只能作为数据建模的一种辅助手段来使用。一种切实可行的智能化的指标异常发现可以采用下面的方法:
利用离线数据,通过暴力计算获得异常数据集,然后有专家完成部分异常数据集的标注工作,进行半监督学习,形成模型,用于在线指标异常检测。发现异常后,形成在线异常指标集,由专家进行部分标注后,再次反馈到半监督学习中,不断迭代优化智能模型。经过几个周期的迭代,模型的质量会逐步提高。
无论你在使用何种异常检测的方法,异常检测对于运维工作的帮助是十分巨大的。而且三种方法对于你的系统来说都是不可或缺的。虽然第三中国方法具有很多优点,但是还是不能完全替代前两种方法。系统刚刚上线的时候,或者缺乏历史数据的时候,第三种方法很可能无法发挥作用,此时必须有前两种方法作为补充。哪怕第三种方法已经达到了一定的效果,前两种方法仍然可以用作异常数据发现的方法来补充异常数据集。
大家看了本文似乎有些绝望,一个指标异常检测就如此复杂,运维自动化是不是没希望了。事实上,无论如何进行指标异常检测,如何做运维自动化,运维自动化都是需要长期积累的,无论是指标、算法、运维经验,都必须长期积累。因此构建运维自动化的关键不是某个算法、某个软件平台,而是“运维知识自动化”这个理念,知识才是运维自动化中的核心和关键。
数据库
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨