基于AI的网络运维方案_第1页
基于AI的网络运维方案_第2页
基于AI的网络运维方案_第3页
基于AI的网络运维方案_第4页
基于AI的网络运维方案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于AI的网络运维方案前言感谢高效运维社区提供这样的平台,我曾经是一名网络工程师,经历了360的架构变革过程,我个人的技术转型开始更专注网络的监控、自动化运维、网络可视化和AI应用上。我今天的分享主要有下面四个部分:1 项目背景2 时序序列算法3 机器学习4 当下与未来一、项目背景聚焦网络的项目,这个项目是如何在DC中ISP出口发现流量异常,通过流量异常能自动发现,自动定位,最后找出哪些业务,通知业务的过程。我们公司的业务拓展到搜索、智能硬件、手机、行车记录仪、儿童手表、小水滴,也出了扫地机器人,也有360云,虽然公司没有BAT体量那么大,但业务方向麻雀虽小五脏俱全,也积累了很多云方面的经验

2、,公司还有一些在娱乐方面的业务。OUR OPS ,这是我们2017年底的数据:PC端的月活5.15亿用户,移动端月活3.5亿用户,加起来有8.65亿的月活用户体量。运维数据中心在大陆有120个,香港1个,洛杉矶1个,运维ISP带宽达到3.5T的规模。面对这样大规模的网络情况,我们对业务中断零容忍,要洞察网络中的任何异常。虽然业务会切换,但对于某个用户体验上会有一定的下降,我们希望能实时的知道现在网络中DC的出口,流量上有没有异常?出现了什么样的异常,并第一时间进行响应和修复?这是我们DC流量出口图,整体上看有早晚高峰的趋势,放大看有一些上下的波动,而且波动比较频繁,局部再放大看没有什么太大的规

3、律。DC不是一个单独的业务,它是综合性的,很多业务都在流量出口上跑,带来的问题是一个告警出来,不知道是哪个业务出现的异常。对于我们来讲可能是一个黑盒子,哪些波动算异常?异常是哪些业务造成的?打开这个黑盒子,从异常的定义到发现,再到定位业务给网络运维人员带来了一定的挑战。这里面提到定位到业务,如果你最后的定位找不到哪个业务,你告诉人家也是没意义的,工程师大半夜起来说我要去看这是谁的业务,给业务打电话,说我今天晚上有一个APP发布,流量高一下是正常的。通过定位是什么类型的业务,是不是应不应该告知这个业务的运维负责人?如果没有定位是什么业务,很可能前面做的很多工作是没有意义的,网络监控也用了一些传统

4、的,传统的监控都是对于流量固定阈值类的监控,固定阈值内的波动异常根本无法发现,如果阈值设置太低误告警量就比较大了。去年的时候我们为了做异常检测和流量预测,做了大胆的尝试,360所有的网络算下来有几十万个Port,我们把所有的流量数据都做了时序化的存储。每个Port存储的时候,抽取了几十维以上的数据特征,要知道这个Port是哪台服务器,是哪个域名对应哪个业务负责人,属于哪个地市、哪个区域,因此我们打了很多标签,有了这些时序化的数据才有了后面我们进行异常检测与分析的前提。二、时序序列算法拿到数据以后,我们可以用时序序列算法和机器学习的手段对数据进行分析,在处理数据前,我们先要做数据平稳性验证,我们

5、有一些平稳性不到位的数据,我们会做一些处理比如差分。原始数据进行一阶拆分,可以看到基本上是0上下进行浮动的区间,再计算自相关系数,在正负0.2的范围,再看一下分布情况是不是符合正态分布,经过分析发现大部分的数据还是平稳的。2.1 3-sigma通过校验的数据、平稳的数据我们可以应用一些算法,大家一看这是正态分布的图,横轴代表了数据分布的情况,每个格子代表标准差的范围,从图上可以看出,只有百分之零点几的数据在3倍标准差以外,那么得到一个当前的数据以后,用这个数据来判断一下,如果超出了均值的3倍标准差以上的范围视为异常。2.2 EWMA指数加权移动平均EWMA这个算法中认为历史数据对当前的数据是有

6、一定影响的,历史数据影响大小反映在权重上,该算法引入了参数,当在0和1之间,越大,当前的权重越大,前面时刻就越小。我们在实际的流量图中发现,确实是时间越近的数据越能表现出数据近期的特征,因为我们采用以天为单位的,每15分钟一个时间窗口进行7天的ewma计算,计算出一个趋势的ewma曲线,以曲线最后一个值,也是最新的值来替代均值,再做上面的3sigma的计算比较,这样超出了则视为异常。这个算法考虑到了历史同期的数据对当前数据的影响。在数据中心流量图这块选两个时间,t时刻和t-1时刻,再取两个时间窗口,分别取均值,用后一个窗口比前一个窗口再比绝对值再乘百分之百,就是波动的比例。方法二采用时间窗口可

7、以有效吸收一定的瞬时波动,也牺牲了敏感性。2.3 动态阈值如上图有一个正常的区间,两侧异常的区间,把14天的历史数据倒数第二小的乘以60%,倒数第二个大的乘以1.2就认为它是异常,看起来缺点很大,虽然实现了阈值的动态,经过几次波动以后会发现阈值拉高或是降低了。2.4 小流量监控优化这是我们针对实际业务做的优化算法,应对一些小流量时的处理。X轴是时间,Y轴是大小,大小的单位是1兆到9兆,从1个G到9个G,虽然都是9倍,但是从运维角度看所代表的意义是不一样的。我们希望通过一条曲线,能动态的有些容忍度,曲线在流量很小的时候很陡,越往后的时候曲线越缓慢,数学比较了解的人知道是用对数函数实现。y=w*1

8、n(x+b),b一开始放在外面,放在外面的效果不如放在里面的好,放在里面的影响大一些,w表现斜率。四个算法同时应用的时候,对于平稳的数据占DC出口的80%很OK,用算法解决是很好的。还有一种数据,用时间窗口切它,在一个里面很难切出相似的情况,这种情况下比较难优化,也比较头疼。三、机器学习面对上面说的比较难优化的情况,工程师会想办法解决它,我们看到了当前流行的一种方法-机器学习。3.1 机器学习架构考虑到用机器学习,首先看一下架构,我们希望通过设计一个自动Update的 Model,为什么呢? 业务流量模型往往是不固定的,上个月和这个月可能就不一样,上个月没有频繁的抖动,这个月可能波动就频繁。可

9、能依赖与业务的调度方式等,往往越近的趋势越能反应业务当前的流量特征。拿到训练后的 model ,我们把实时的流量进行特征提取,作为样本输入模型以后,模型能告诉这个流量是正常还是异常的,上面的部分因为训练需要一定的时间,也不满足实时处理的要求,我们把它放在 Offline 上进行,而下面的实时预测要放到online实时的进行。3.2 学习方式对比学习方式的选择也做了一些尝试,先说一下有监督的机器学习,一般要求正负样本的比例是1:1,而且有人工标注,通过标注可以有效的做算法提升,实现整体的提升。无监督是不需要考虑正负样本的比例,不用做标注能自动从信息中学到一些有用的信息,但是也需要一些调参,这个得

10、根据工程师的结论不断的手动调整这些参数。3.3 特征提取输入一些特征和原始数据的信息,我们怎么抽取这个特征呢?我们的目标是通过分析,把第一张图中的异常数据分离出来,实际上解决的是分类问题。右边这幅图这是两个正常的簇,蓝色和红色代表正常的数据,打叉的数据离得比较远的是异常数据,异常点也叫离群点。那么如果抽取这样的数据特征呢?特征出现的时候一定是有波动的,平稳就不叫异常了,如果这个数据时时刻刻都是这样波动,我们认为就是正常的,异常的时候一定是小概率事件。特征向量,我们也做了一些尝试,最终是数据归一化流量大小,我们是在分位数的概率分布,时间段分开后,一般分布数据的分布概率是固定的,还用了很多同比周期

11、、环比变异系数的数据所为特征进行训练,效果最后测出来总不太理想,目前还是采用直接拿数据归一后的大小和环比振幅作为特征。3.4 Model选择既然是分类问题,Model的选择也很多,尝试了经典聚类 K-Means 算法:给定一个数据集,要定义分几种类别,然后进行计算,设置最大的循环次数,输出样本集的中心点,每个分类的中心在什么位置,每个数据进行打标,它是什么样的情况,下面是循环的计算,最后计算出我的中心点的过程。计算出中心点之后怎么知道输出异常呢?往往需要在这里面设置一个阈值,通过最后的训练我拿到的是每一个类别簇的中心点,要判断异常的时候需要设置一个阈值,计算该点到中心点的欧式距离,距离超过阈值

12、我认为它算是异常。这张图是我们在测试的时候阈值设置2.4完全可以分开,绿色的部分都是正常的数据,波动的点就是这个红点。接下来分享的是独立森林,算法来自周志华在2011年 Isolation-based Anomaly Detection 通过切蛋糕的方式看谁先被切出来,比如随机切100次,几次就把B切出来了,而A则要切了很多次才分出来。在实现上则是采用的森林的算法,随机建立一些二叉树的方式,把小的放左边,大的放右边,在距离根最短的路径经过score的仲裁后来进行预测是否是异常。比较两个方法,目前我们拿到的数据特征还是比较少,之前同比和环比的特征还是比较少。我们做分类的时候,如果特征比较多的情况

13、下 K-Means 比较好。分类的设定 K-Means 要剔除一些异常的样本, Iforest 不需要。在易用性上,我们认为 Iforest 更好一些,最后我们选择的是 Iforest 。由于每个DC的场景不一样, IN/OUT方向的流量特性也不一样,最好是每Port每方向就训练一个model,这样可以更贴合业务。也就是 每个Port 的一个方向就是一条曲线,每个曲线对应一个 Model ,窗口大小选择10分钟,模型更新是每天更新一次。如果说我用前面四种方法进行仲裁,仲裁的概念就是多种算法进行投票,四种算法中符合两个以上出现异常,算法就是异常,这种情况下准确率比较低。多种算法仲裁的情况下,再加

14、上机器学习,最后 Model 的判令,准确率能提高到98%以上。四、当下与未来异常检测可以检测出来了,但异常出现的时候,如果不能定位是哪儿的业务做这个意义不是很大。基于之前的积累,我们把数据中心在出口上进行分割,流量镜像可以获得完整的数据,写了一些C语言的开发,能够知道这里面哪个IP跑得比较高,哪个跑得比较低,出现异常的时候,告警里面可以调用API拉一下 TopN ,突发的时候看 TopN,陡峭的时候是看不了的。前两天我们刚改进一版,知道哪个业务的哪个IP还不够,还给出了流量的协议类型,知道是TCP/UDP/ICMP等。找到对应的业务人,直接给业务人和运维负责人发邮件,最为异常的依旧。还有一种判定方法是 Pearson相关系数相关系数,两条曲线的相似度,如果小于等于0.3是不存在线性相关,0.3到0.5是低度线性相关,0.5到0.8是显著线性相关,大于0.8是高度线性相关。出口流量出现曲线波动的时候,我们要抓取IDC相关 Port 的曲线出来。我们做了千里眼,网络运维平台上鼠标一选,就会帮你后台计算相同时段DC里面还有哪些曲线和你选择的相似度最高,并显示是哪个业务。在这之前都是工程师肉眼去分析流量图,一个图一个图去看,如果交换机特别多端口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论