加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

360 DoctorStarange:集预测、处理、关联和资源优化于一体的智能

发布时间:2021-01-11 14:10:09 所属栏目:电商 来源:网络整理
导读:《360 DoctorStarange:集预测、处理、关联和资源优化于一体的智能运维系统》要点: 本文介绍了360 DoctorStarange:集预测、处理、关联和资源优化于一体的智能运维系统,希望对您有用。如果有疑问,可以联系我们。 DoctorStarange背景介绍 为了保证360公司
副标题[/!--empirenews.page--]

《360 DoctorStarange:集预测、处理、关联和资源优化于一体的智能运维系统》要点:
本文介绍了360 DoctorStarange:集预测、处理、关联和资源优化于一体的智能运维系统,希望对您有用。如果有疑问,可以联系我们。

DoctorStarange背景介绍

为了保证360公司内部的私有云平台的稳定性和可靠性,我们部门开发了监控系统–wonder来监控系统的状态.但是随着业务量的增加,通过设置单纯的阈值来监控报警是远远不够的.而且这种被动式的触发报警很多时候需要人工去处理.

我们提出来DoctorStarange,它是一个智能的预测和处理系统,能够提前预测出一些监控项的报警,并提前处理预测的报警,最大程度减少报警次数;它是一个关联不同报警项的系统,能够帮助运维人员去更快地排查报警;它还是一个对机器各个维度进行检测的系统,能够优化机器资源.

下面我们将分三个部分对该系统进行介绍:

首先介绍智能预测与处理系统,然后介绍报警关联分析,最后引入机器健康度的概念,来及时了解机器的运行状况,最大化机器资源的利用率.

智能预测与处理系统

我们对监控项的历史数据进行分析后就会发现,有些监控项的历史趋势的增长(或下降)趋势趋于稳定,如磁盘空间使用率等,而有些监控项的趋势就波动的比较厉害,如cpu、网卡流量等.对于这两种趋势,我们需要使用不同的预测模型对未来一段时间的趋势进行预测.预测只是第一步,如果预测后能让机器自动处理一些危险的监控项,就可以最大程度上减少人工干预.

下图是我们智能预测与处理系统的框架图

趋势稳定的监控项的预测与自动化处理

应用系统出现故障通常不是突然瘫痪造成的,而是一个渐变的过程.本节我们将结合磁盘空间使用率来说明我们的系统如何做到智能预测与处理.很明显,磁盘预测工作应该分为两部分,一部分是预测,另一部分是处理,下图是具体的流程:

首先说一下预测.系统长时间运行,数据会持续写入存储,存储空间逐渐变少,最终磁盘被写满而导致系统故障.由此可见,在不考虑人为因素的影响时,存储空间随时间变化存在很强的关联性,且历史数据对未来的发展存在一定的影响.所以可以采用时间序列分析法对磁盘容量进行预测分析.

我们使用ARIMA模型来处理时间序列,ARIMA涉及到三个参数:p(自相关系数),q(偏自相关系数)以及d(差分次数).差分次数可以使用ACF函数来检测差分后该序列是否为平稳序列,而p和q可以使用AIC或者BIC准则来得到使AIC或者BIC信息量达到最小的模型阶数.

有人可能会问这个系统可能依赖于预测模型的准确率.为了验证模型的准确率,我们提出来两个概念来说明效果:

  1. 预测准确率:预测准确率=预测报警且具有报警趋势的机器数/预测报警的机器数
  2. 报警减少率:预测覆盖率=预测报警且真正报警的机器数/报警的机器数

我们对线上20000+台机器未来24小时的走势进行预测,跟踪了将近一个月的预测结果.可以发现我们的模型预测准确率能够达到100%,报警减少率能够达到70%左右,这说明我们的模型能够获得比较好的效果.

接下来将重点介绍在预测磁盘使用率将要达到阈值后,我们如何自动处理的过程.用户可以根据自己的意愿选择处理类型:一种是自动处理,一种是通知邮件.

如果是自动处理类型,我们会清理100%可以确定删除的日志文件,比如allweb文件以及一些归档的日志文件.虽然我们有一定的目录规范和定期的日志轮转,但是因为有些程序编写的不规范,业务访问量的增长,还是会有磁盘被写满的情况,所以单纯依靠自动清理会有一定的风险,所以我们还有一种是通知邮件,我们会定期将扫描出来的占用空间比较大的文件信息发送给用户,由用户自己去处理.

波动剧烈的监控项的预测与故障定位

和磁盘这种趋势稳定的监控项不同的是,波动剧烈的监控项由于历史数据变化情况比较复杂,采用传统的ARIMA或者指数平滑的方法很难达到比较好的效果,因为他们很难捕捉到以前从未出现过的情况.相反,神经网络模型由于输入的是非线性方程,可以处理更复杂的时间序列.对于cpu预测,我们也分了两个过程:预测以及故障定位.

本节采用神经网络模型去预测cpu的走势,提前预测出将要发生报警的机器,尽可能将具有隐患的故障扼杀在摇篮中,提高系统的可靠性和可用性.

建立神经网络模型,首先要确定输入、隐藏和输出层的神经元个数.由于我们的线上业务具有天的周期性,所以我们将输入层的个数设为24(当然这个值也可以通过求自回归系数来求得),隐藏层的个数一般为输入层个数乘以2再加1,所以输出层为49,输出层的个数为1,我们根据此规则建立模型.

和趋势稳定的监控项的预测准确率和报警减少率一样,我们也预测了波动剧烈的监控项的未来一个小时的趋势,同样的机器数量,我们的预测准确率能够达到80%左右,报警减少率能够维持在50%.由于波动剧烈的项相比于趋势稳定的项来说,不太容易预测,能够一定程度减少报警也说明我们的预测模型可以达到比较好的效果.

接下来说明预测报警后,如何进行故障定位.我们会根据top值来找到占比比较高的进程,由于直接处理占比比较高的进程会有风险,所以我们只会邮件通知负责人以及运维人员.

以上我们以磁盘使用率和cpu为例子介绍两种不同趋势的监控项的预测以及处理工作,其他具有此特征的监控项的思路类似,在此就不一一展开.

报警关联分析

随着监控系统监控项的数目越来越多,报警的次数也会随之暴增.不同报警项他们之间并非孤立的,而是存在着千丝万缕的联系.我们分析出某一时间段内协同发生变化的监控项,能够帮助我们排查出问题,找到问题的根源.

报警关联分析系统主要做了两件事情:

  1. 报警系统:加入报警合并算法,能够减少报警次数;
  2. 实时报警分析:找到存在因果关系的监控项,帮助排查问题;

下图是我们报警关联分析系统的框架图:

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读