《基于有监督学习算法和无监督学习算法相结合的运维监控数据治理技术研究》由会员分享,可在线阅读,更多相关《基于有监督学习算法和无监督学习算法相结合的运维监控数据治理技术研究(8页珍藏版)》请在金锄头文库上搜索。
1、 基于有监督学习算法和无监督学习算法相结合的运维监控数据治理技术研究 吕垚 向华伟 王林 何映军摘 要:云南电网有限责任公司信息中心(以下简称云南电网公司)拥有多个不同厂商IT监控系统,由于运维监控数据没有统一的标准和规范,导致监控数据的利用率不高,尤其是各种硬件设备、网络、中间件和数据库等指标数据存在时间序列异常等问题,对监控告警和分析服务造成了很大的影响,通过基于有监督学习算法和无监督学习算法相结合的运维监控数据治理技术研究,实现IT运维监控数据的标准化和规范化,提高了IT运维监控数据的质量,为运维监控数据的关联分析、根因分析和告警提供有力的支撑,从而实现云南电网公司IT端到端的全链路监控
2、能力。关键词:有监督算法;无监督算法;运维监控;数据治理:TP311.13 :A :1671-2064(2019)02-0040-020 引言云南电网公司IT运维监控有多个IT监控系统。但每个系统相对独立,并且数据种类繁多和数据格式不统一,存在网络数据、应用性能数据、机房数据、服务器数据、平台性能数据、数据库性能数据和终端数据等,存在着数据分散、数据量大和数据标准和规范不统一等特点,造成数据共享困难等实际问题,导致运维监控数据的开发利用满足不了运维监控业务的需要。通过基于有监督学习算法和无监督学习算法相结合的运维监控数据治理技术研究,从数据采集、治理、存储和分析服务四个步骤分析处理监控数据,重
3、点阐述了结合了机器学习算法的数据治理技术和方法,实现了数据质量的提高。1 机器学习算法本文涉及到的机器学习算法分为有监督学习算法和无监督学习算法,根据运维监控数据的特点,采用One Class SVM算法和Random Forest相结合的方法来处理数据,One Class SVM算法特点是不需要人工干预,但是可能导致和实际不匹配的结果,Random Forest可以不断标注样本,使得结果更加准确,需要人工干预,所以结合两种算法的优点来实现数据的处理,具体两种算法如下:1.1 One Class SVM算法One Class SVM由SVM算法演化而来,为了正确应用One Class SVM,
4、简单介绍SVM的主要原理:在线性可分条件下直接进行分箱,如果是在线性无法分解的情况,通过非线性关系映射,从低维线性不可分解的样本变为输出空间的高维特征空间,进而达到使其线性可分的目的,最后对高维特征空间采用线性算法,并且对所有样本的非线性特征样本进行线性分析1。One Class SVM属于无监督算法使用了超平面的思想,适用于连续数据的异常检测和对样本进行一定比例的筛选,可以寻找高维平面区分正常点与异常点。本文利用One Class SVM异常值检测、解决极度不平衡数据,公式如下:min|w|2+ i- subject to(w*(xi)-i i=1,2,1i01.2 Random Fores
5、t随机森林由多棵CART(Classification And Regression Tree)构成的。对于CART每一棵树,存在训练集中的样本频繁多次出现在一棵树的训练集中,当然也存在从未出现在一棵树的训练集中。当训练某一棵树的节点时,选用特征值是从所有特征中根据预先设定比例随机地无放回的抽取的,设总的特征数量为M,占比分别是sqrt(M),1/2sqrt(M),2sqrt(M),随机森林(Random Forest)的训练过程如下:(1)训练集S,测试集T,特征维数F。首先确定各个参数:即将用到的CART的数量t,每一棵的深度d,每个节点特征数量f,停止前提:节点上最少样本数s,节点上最少
6、的信息增益m,相对于序号为1-t棵树,i=1-t。(2)从训练集S中取出放回的抽取大小和S一样的训练集S(i),以此作为根节点的样本,从根节点开始训练。(3)假如在当前节点上满足终止条件,就把当前节点设置为叶子节点,假如是分类问题,该叶子节点的可能输出为当前节点样本集合中数量最多一类c(j),概率P为c(j)当前样本集的占比比;假如是回归分析问题,可能输出为当前节点样本集各个样本值的平均值。随后不断训练其他节点。假如当前节点不能满足终止条件,可以从F维特征中无放回的随机选取f维特征向量。从f维特征向量,查找出分类效果最好的一维特征k及其阈值th,目前节点上样本值的第k维特征小于th的样本,划分
7、到左节点,另外划分到右节点,不断训练其它剩余节点。(4)重复(2)(3)直到所有节点都训练(标记为叶子节点不训练)。(5)重复(2)、(3)、(4)直到所有CART都被训练过。2 整体实现2.1 数据采集数据来源于开源监控工具zabbix和其它厂家的监控数据以及各类日志数据,鉴于数据源和数据格式的多样性,制定了数据采集的方法和步骤,支持结构化和非结构化数据的采集。对于非结构化数据、结构化数据及半结构化数据,通过选择不同的采集模型,建立合适的数据采集策略2。下面介绍了两种数据采集方法,一种是对各监控指标数据进行采集,另外一种对日志数据进行采集。2.1.1 各监控指标数据源采集对于监控数据根据数据
8、源的格式,采用相应的分析方法,建立相應的数据模型,制定出合适的数据采集策略,硬件指标数据、网络数据、中间件数据、数据库性能数据和应用业务质量数据等。2.1.2 日志采集日志采集采用Flume和kafka相结合的方法进行日志采集,flume的数据采集模块功能强大,兼容大多数的数据源,能够减少开发量,kafka可以作为日志缓存的中间件,对flume起到补充作用。Flume是一个可靠性高和分布式的海量日志采集的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。由于flume采集数据的速度和数据处理的速度不一
9、定同步,利用kafka作为数据缓冲中间件处理flume动作流数据。2.2 数据治理运维系统中通常是两大类监控数据源是:指标数据和日志文本数据。指标数据大多数是时序数据,包括指标采集时间和对应指标的值;日志文本数据大多数是半结构化文本格式,如程序日志、中间件日志等。随着运维系统规模的变大和数据格式复杂度的变高,各个运维监控系统产生數据量越来越大,运维人员很难从大量监控数据中查找数据质量问题。通过有监督学习算法和无监督学习算法相结合的运维监控数据治理技术的实现,可以自动、实时和精准地从监控数据中发现数据异常,并对异常数据进行处理,为后续的数据存储和数据服务打下坚实的基础3。2.2.1 分析问题运维
10、监控数据的分析通常分为指标数据和日志数据,指标数据通常为时序数据,日志数据通常是结构化和半结构化的数据。运维监控数据异常通常分为数据源异常、单指标异常、多指标异常和日志数据异常。数据源有时会出现难以预测的结果,产生异常数据,这些异常数据往往会引起整个指标统计值的频繁波动,使得统计结果不准确和用户体验不好。通常的运维监控系统会时常出现两种情况:(1)单指标异常:如果时间阈值设置过高,会导致遗漏告警增多,如果时间阈值设置太低,告警太多引发告警风暴。(2)多指标异常:在运维过程中,单独分析某个指标是正常,但是综合多个指标来分析,往往就是异常的数据。有时单独分析某个指标异常的,但是综合多个指标来分析往
11、往是正常的。日志数据通常是在特定条件下触发生成的(比如中间件停止服务、重新启动服务和启动服务),并符合一定的格式(半结构化文本)。传统的日志检测有两种方式:根据日志级别(如一般、警告、重要)进行报警,往往告警级别设置不合适,不能够满足实际需求,导致数据准确性差;通过设置规则引擎,匹配日志中预先已经规定好的字符串进行匹配并报警,但该方法的局限性依赖人工经验,只可以发现既定模式的异常,无法发现未知的异常。2.2.2 处理问题鉴于上述监控数据的问题,采取以下措施:针对单指标数据和日志数据,使用统计算法3-sigma和EWMA(指数加权移动平均)和机器学习结合方法处理这两类数据,机器学习方法用到了上述
12、有监督学习算法Random Forest和无监督学习算法One Class SVM。2.2.3 解决问题首先针对数据源的特点进行分类,先用统计算法3-sigma和EWMA(指数加权移动平均)模型实现数据的分类。3准则又称为拉依达准则,如果一组检测数据仅仅含有随机误差,计算处理并得出标准偏差,按既定概率统计,并指定一个区间在正态分布中代表标准差,代表均值。x=是坐标图像的对称轴。如果3分布在(-,+)中,概率为0.6827;如果3在(-2,+2)中,概率为0.9545;如果3分布在(-3,+3)中,概率为0.9973,结论:Y轴取值范围几乎全部集中在(-3,+3)区间内。EWMA是指数加权移动平
13、均值的控制图。每个EWMA点都结合来自3-sigma分组。定制EWMA控制图进而检测过程中大小的偏移,每个EWMA点都根据自定义的加权因子结合了以前所有信息数据。通过更改使用的权重以及限制的s数量,构建该控制图,控制图可以检测过程中所有数据大小的偏移。鉴于此,使用EWMA来监控正态3-sigma过程中的数据,得出偏离目标的较小偏移。算法表示:设计权重系数,01,如果越大,则Y(t)越大,t-1时刻相应就越小。EWMA(t)=Y(t)+(1-)EWMA(t-1) for t=1,2,n.利用机器学习算法和统计算法相结合的方法去分类处理数据,使用统计算法和One Class SVM无监督算法过滤掉
14、大量正样本,为了使结果更加准确,对样本库进行人工标注,人工标注正负样本,然后通过特征工程提取特征值,通过设置有监督算法Random Forest的参数进行训练,从而实现数据质量的提高。2.3 数据存储与数据服务数据存储分为指标数据和日志数据,对于时间序列数据(性能指标),主要以时间维度进行查询分析数据,选用主流的rrdtool时序数据库;对于日志文件,数据需要进行实时全文检索和分词搜索,选用主流的ElasticSearch引擎。通过开发丰富、灵活的API接口实现数据服务,前端web展示调用API即可。3 结语本文通过无监督学习算法One Class SVM和有监督学习算法Random Forest,并结合统计算法3-sigma和EWMA实现了指标数据和日志数据质量的提高,为实现IT端到端的监控能力打下坚实基础。参考文献1 简宋全,李青海,黄心蕊,秦于钦.基于One Class SVM的电信用户流失情况研究J.现代计算机,2017(29):32-34.2 秦燕,周湘贞.实例分析基于异构数据源的XML数据转换方法J.西南师范大学学报(自然科学版),2018(3):77-82.3 韦建杰.云计算环境下的数据采集模型分析J.信息通讯,2014(7):142. -全文完-