首页 > 作文

王一大

更新时间:2023-03-21 18:50:58 阅读: 评论:0

儿童益智故事-佛手瓜怎么炒好吃

王一大
2023年3月21日发(作者:春的寄语)

技术广角

BroadAngleforTechnology

72

基于孤立森林算法的分布式服务故障分析

模型研究与应用

摘 要 

为解决大型分布式系统中服务故障排查困难及系统恢复漫长的问题

需要实现分布式服务故障分析技术

针对分布式服务故障定位复杂并需要快速定位故障的需求

文章提出一种基于孤立森林算法的分布式服务故障分析

模型

通过滑动平均算法对主机性能数据进行时序计算生成动态阈值区间

并利用孤立森林算法进行模型训练

而实现对分布式系统服务进行故障定位与分析

该方法可有效提升运维人员的工作效率并减轻运维人员的工作负

同时协助运维人员快速排查故障问题

达到对分布式服务故障快速定位快速处理的效果

关键词 

孤立森林

异常检测

异常分析

王一大

中国联合网络通信有限公司济南软件研究院济南250100

引言

随着互联网业务的全面发展

企业IT架构发生重大

变化

分布式云化架构应用越来越多

传统运维模式面

临越来越多的挑战

难以适应业务的高速发展需求[1]。

目前

信息化系统广泛微服务化

运维机器数量

容器

数量

外部服务日均调用量

系统服务数量均显著上

在此规模下

支撑难度

运维难度

排查问题难度

呈几何增长

对运维模式及技术有更高的要求

互联网业务具有业务无间断在线

业务敏感性较

负面影响大

传播范围广

传播速度快等特点

运维要求越来越高

传统运维模式已无法适应互联网业

务的高速发展需求

智能运维(AIOps)成为必不可少的

运维利器[2]。

在大型互联网架构中

为提升平台计算能力及资源

利用率

普遍采用分布式技术

然而使用分布式技术也

会带来一些潜在问题

若主机资源需求与资源分配不均

部分主机长时间负载过重

容易导致服务失效

成服务中断甚至数据丢失

同时当系统发生故障时

务分散在不同主机会导致故障问题难以定位

故障排查

耗时较长等问题[3]。

通过国内外相关文献分析

目前针对分布式服务故

障分析的研究仍处于初级阶段

其中大部分系统是根据

领域知识人工设定报警规则

难以自动检测故障并细粒

度定位问题原因[4]。

近年来机器学习算法广泛应用于各项

领域

其中孤立森林算法是十分优秀的异常检测算法[5],

然而目前尚未有研究人员将孤立森林算法应用于大型分

布式系统中进行故障分析

针对上述优缺点并借鉴国内外相关文献

本文提出

一种基于孤立森林算法的分布式服务故障分析模型

过采集分布式环境中服务主机监控数据及服务调用耗时

数据

对采集到的时序数据通过滑动平均算法计算生成

阈值区间

并利用孤立森林算法对预处理后的数据进行

模型计算

构建合适的异常分析模型

实现了分布式环

境下服务故障分析功能

有效提升了运维人员的工作效

率并减轻了运维人员的工作负担

同时协助运维人员快

速排查问题

达到对分布式服务故障快速定位快速处理

技术广角

BroadAngleforTechnology

73

的效果

1相关算法

1.1滑动平均算法

滑动平均算法是时间序列分析算法的一种

可以

用来估计变量的局部均值

使得变量的更新与一段时

间内的历史取值有关

比较常用的滑动平均算法有简

单移动平均法

加权移动平均法

自回归滑动平均模

型等

目前工业界比较流行的滑动平均算法为自回归

滑动平均模型

自回归滑动平均模型(Auto-RegressiveandMoving

AverageModel

ARMA)是研究时间序列的重要算法

根据时间序列数据逐项推移

依次计算包含一定项数的

时序平均值

以反映长期趋势[6]。

ARMA模型的计算公式为

(1)

由于本文系统采集到的监控数据具有一定的时间序

列性

因此选择ARMA模型对监控数据进行时间序列分

方便后续模型计算

1.2孤立森立算法

孤立森林算法是一种适用于连续数据的无监督异常

检测方法

其基本思想是计算对象与对象之间的差异

通过检测两点距离或某一区域点的密度

计算异常点得

分值越高

则代表对象越有可能是异常点[5]。

对于如何查找哪些点容易被孤立

孤立森林算法使

用了一套非常高效的策略

在构建孤立森林模型中

归地随机分割数据集

直到所有样本点都是孤立的

这种随机分割的策略下

异常点通常具有较短的路径

即密度高的簇是需要被切很多次才能被孤立

而密度低

的点很容易就可以被孤立

这里参考下面的图1

2进

行说明

从图2中可以直观地看到

相对更异常的点x

0

只需

要4次切割就从整体中被分离出来

而更加正常的点x

i

图1孤立森林算法示意图

经过了11次分割才从整体中分离出来

这里的分割方式

采用的是

随机选择一个特征以及拆分的值(这个值位

于该特征的最小值和最大值之间)

其中图2展示了异常

点的平均路径长度小于正常点的平均路径长度

2基于孤立森林算法的分布式服务故障

分析模型

2.1背景介绍

分布式系统即一组异构计算机和处理器通过网络

联接在一起

通过机器间紧密配合

共同完成一项任

务[1]。

不同主机的性能都会对分布式系统中的服务有一

定影响

因此本文的关键数据为分布式系统中不同服务

下的主机性能数据

通过监控工具实时采集分布式系统

中各主机的性能指标数据

其中监控工具采集到的主机

性能特征指标为

网络流入流量

网络流出流量

用户

CPU使用率

系统CPU使用率

CPU整体剩余情况

写IO量

ICMP

数据库连接数

数据库慢SQL数量

数据库长连接数量等

采集到的监控数据如表1所示

图2平均分割路径长度

a

v

e

r

a

g

e

p

at

h

l

e

n

g

t

h

1

0

5

10

15

510

(logscale)

技术广角

BroadAngleforTechnology

74

时间主机主机性能

2020-12-02 08:01IP1SET1

2020-12-0无条件歌词 2 08:02IP1SET2

2020-12-02 08:03IP1SET3

2020-12-02 08:04IP1SET4

2020-12-02 08:05IP1SET5

2020-12-02 08:06IP1SET6

2020-12-02 08:07IP1SET7

2020优美文字 -12-02 08:08IP1SET8

2020-12-02 08:09IP1SET9

………

2020-12-02 09:01IPnSET1

………

2020-12-02 09:09IPnSET9

表1监控数据

针对分布式服务故障分析场景

本文的目标是对监

控数据构建模型

给出故障的定位及原因

本模型需要

完成的两大任务是异常检测及异常分析

其中异常检测

是通过AI异常检测模型找出分布式服务中发生故障的主

机及引起服务故障的性能指标

而异常分析是通过大数

据统计分析出导致故障发生的异常信息

由于本文的异常检测场景是在监控数据中寻找异常

同时采集到的监控数据具有连续性

因此选择孤立

森林算法比较合适

同时采集到的监控数据具有时间序

列性

因此选择滑动平均算法对监控数据进行时间序列

分析

2.2基于孤立森林算法的分布式服务故障分析模型

基于孤立森林算法的分布式服务故障分析模型由两

部分组成

一个是异常检测模型

另一个是异常分析模

其中异常检测模型为核心模型

异常检测模型的主要思想是通过滑动平均算法对一

段时间内单一主机单一性能指标数据利用孤立森林算法

进行模型训练

生成异常检测模型

对不同主机不同性

能指标数据进行异常检测

从而实现对分布式服务故障

进行问题定位

目前工业界异常检测场景中效果较好的算法即孤立

森林算法

同时孤立森林算法是无监督机器学习算法

无需对数据进行人工打标处理

能够节省很多人工成

因此本文选择孤立森林算法构建异常检测模型

而本文中采集到的监控数据具有时间序列性

因此选择

滑动平均算法对监控数据进行时间序列分析

进行数据

处理

方可进行模型训练

异常检测模型流程图如图3

所示

ⴁ━㇇⌅・἞㇇⌅Ự⍻⁑

图3异常检测模型流程图

异常检测模型的核心代码如下

importnumpyasnp

leimportIsolationForest

importget3SgamByMedian

#遍历不同主机

foripinipLis原画和插画 t:

#遍历不同指标

forindexNameinindexList:

#获取数据

train_X=list(getData(dbConfig,indexName))

#使用滑动平均算法计算阈值

thresholdDict=get3SgamByMedian(train_X,

9,18)

lower_limit=thresholdDict['lower_limit']

upper_limit=thresholdDict['upper_limit']

#模型训练

rng=State(100)

max_samples=len(train_X)

max_features=1

ifindexName=='CPU_IDLE'orindexName

=='MEM_AVAILABLE':

outliers_fraction=getProportion(train_X,

技术广角

BroadAngleforTechnology

75

lower_limit,'<')

el:

outliers_fraction=getProportion(train_X,

upper_limit,'>')

model=IsolationForest(max_

samples=max_samples,max_features=max_

features,random_state=rng,contamination=outliers_

fraction)

model.fit(train_X)

#保存模型

save_model_file=r"../model/

AnomalyDetection_"+ip+"_"+indexName+".pkl"

save_model(model,save_model_file)

异常检测模型主要使用sklearn代码库中的Isolation

Forest以及Numpy

Scipy等科学计算包分别实现了孤

立森林算法及滑动平均算法

针对不同主机不同指标分

别进行模型训练

对训练好的模型统一进行保存

方便

系统调用

异常分析模型的主要思想是对一段时间内异常检

测出的异常值进行不同维度的大数据统计分析

通过

对各种指标进行聚合

统计得出这一段时间内哪些主

机哪些指标频繁发生异常

并通过异常得分排序得出

故障发生的IP及指标

从而为运维人员节省大量时间

及精力

提高了问题排查的效率

异常分析模型流程

图如图4所示

Ự⍻⁑

㔏䇑

图4异常分析模型流程图

从图4可以看出

模型会针对实时获取的监控数据

调用已训练完成的异常检测模型

生成异常检测结果

再对一段数据内调用到的异常检测结果进行大数据统

针对不同主机统计结果排序可以定位故障主机

对不同指标统计结果排序可以定位故障指标

由此对故

障进行根因定位

3基于孤立森林算法的分布式服务故障

分析系统

3.1技术架构

基于孤立森林算法的分布式服务故障分析系统以机

器学习

大数据框架为基础

结合AI

大数据等技术对

监控数据进行建模分析

是集异常检测

智能告警

障智能分析

监控视图

业务视图为一体的智能运维平

其系统架构如图5所示

该架构融合机器学习与大数据的分析流程

即获取

到基础数据后

对基础数据进行数据预处理生成特征矩

然后对特征矩阵进行特征分析

挑选出适合的特征

进行模型训难得一人心 练

最终对模型训练完成的数据进行大数据

统计分析

生成所需的报表视图

3.2功能架构

基于孤立森林算法的分布式服务故障分析系统通过

接入统一监控平台采集监控数据

通过接入日志归集平

台采集日志数据

将采集到的历史数据通过大数据框架

进行数据预处理

再将处理完成的特征数据通过机器学

习核心框架构建模型

最终通过源于历史故事的成语 可视化大盘将分析后的

结果数据展示

其功能架构图如图6所示

统一监控平台

自主研发的跨平台

支持多种中间

件的IT综合监控平台

全面覆盖IasS

PaaS

SaaS三

层监控

日志归集平台

提供日志采集

检索

告警

可视

化大盘等功能

解决海量日志的管理难题

大数据

机器学习框架

基于孤立森林算法的分布

式服务故障分析系统的核心

提供数据预处理

数据分

特征工程

算法

建模等能力

3.3智能告警功能

系统将告警与异常检测结合

基于动态阈值

进行

智能告警

当接收到告警时会自动进行信息压缩整合

数据分析等操作

异常检测生成的动态阈值是基于海

技术广角

BroadAngleforTechnology

76

ⴁ━㇇⌅

Ự⍻

・἞㇇⌅䳌㜭

ⴁ㿶

㔏䇑

㜭䆖

图5基于孤立森林算法的分布式服务故障分析系统架构图

量历史数据分析产生的

能够反映

业务趋势的变化规律

使告警更精

质量更高

而且释放了部分人

工配置的繁琐工作

工作效率大大

提高

智能告警对告警消息进行关联

分析

同时对各类信息进行整合

数据库存在长连接时

会自动

对数据库CPU

连接数

响应时间

等指标进行分析

并基于异常检测

确认数据库性能是否存在波动

测到异常时才会进行消息发送

送告警信息时会将数据库的一系列

信息进行压缩

合并

统一进行发

智能告警的功能流程图如图7

所示

使用基于孤立森林算法的分布

式服务故障分析系统的智能告警功

能后

告警数量大幅度减少

告警

质量得到大大提高

告警信息更精

更有效(告警数量由每天5000

多条压缩至100条左右)

3.4异常分析功能

对异常检测进行改造

将多

维度指标数据进行大数据统计分

自动分析出故障时各指标的

影响占比并生成异常分析报表

快速定位故障问题

大大提高故

障排查效率

故障排查耗时由

30min缩短至2min

其中传统运

维流程如图8所示

异常分析流程

㔏ⴁ

・἞㇇⌅Ⲵ䳌㌫㔏

图6基于孤立森林算法的分布式服务故障分析系统功能架构图

㔏ⴁ㌫㔏

Ự⍻

⭏䰸

⎸䆖

䴰亴

䀖䆖

䘋㹼㕙

䆖⎸

䙏䰞仈

图7智能告警示意图

如图9所示

从以上图8和图9的对比中

统运维当接收到监控告警后

需人

工对不同主机不同组件的各个指标

进行逐项排查

最终对排查结果进

行汇总定位根因

流程十分繁琐

并需要耗费大量人员精力

而基于

孤立森林算法的分布式服务故障分

析系统的异常分析功能流程十分清

晰明了

同时引入了异常检测模

故障定位更加准确

系统能够

采集到监控告警后自动对故障进行

统计分析

自动得出定位根因

放了大量劳动力

故障排查效率有

所提高

4基于孤立森林算法的分

布式服务故障分析系统在

中国联通分布式架构系统

中的应用效果

目前

基于孤立森林算法的分

布式服务故障分析系统已在中国联

通号卡系统等应用上线

服务在故

障发生时

借助基于孤立森林算法

的分布式服务故障分析系统能够快

速定位故障问题

有效减轻运维人

员的工作压力

4.1单指标异常检测

单指标异常检测基于滑动平

均算法生成动态阈值

再使用孤

立森林算法构建异常检测模型

最终基于异常检测模型实现实时

异常检测

使用滑动平均算法

孤立森

技术广角

BroadAngleforTechnology

77

ⴁ䆖

ḕḕ1ḕ㓴ḕ㓴1

ḕḷḕḷḕḷ1

㚊䰞仈ṩ

图8传统运维流程示意图

ⴁ䆖䟷䳶⁑㺘㔏䇑䰞仈ṩ

图9异常分析流程示意图

图10异常检测报表

图11异常分析报表

图12导航式故障排查分析报表

林算法对海量历史数据进行建模

分析

实时发现海量数据中的异

常点

可以实现动态调整阈值

生成异常检测报表

其效果如图

10所示

4.2多指标异常分析

目前

异常检测仅能够对单

维度指标实时计算

无法对多维

度指标进行有效分析

多指标

异常分析是基于异常检测进行改

对各指标数据进行大数据统

计分析

通过对各种指标进行聚

分析出故障发生时各指标的

影响占比并生成异常分析报表

其效果如图11所示

4.3导航式故障排查

导航式故障排查功能通过对

现有的故障排查流程进行总结固

化为工作流

与单指标异常检

测进行结合

基于异常检测动态

调整阈值

通过重点标识故障指

动态生成故障分析报告

效果如图12所示

5结论

基于孤立森林算法的分布式服

务故障分析系统上线使用后

告警

质量得到大大提高

告警信息更精

更有效(告警数量由每天5000

多条压缩至100条左右)

同时能够

快速定位故障问题

大大提高故障

排查效率

故障排查耗时由30min

缩短至2min

因此相对于传统运维

模式

基于孤立森林算法的分布式

技术广角

BroadAngleforTechnology

78

服务故障分析系统在故障定位及故障分析等方面实现了

自动化

智能化

减少了运维人员的投入

人力成本及

运维成本都有所降低

证明了基于孤立森林算法的分布

式服务故障分析模型具有一定的可行性及有效性

基于孤立森林算法的分布式服拙政园简介 务故障分析模型还有

很多地方需要改进

由于本文特定场景的需求并没有引

入其它主机性能指标

在今后的研究工作中将引入更多

性能指标及异常检测算法进行多项验证

探索能否形成

一套通用模型

可应用于不同生产系统

从而大大提高

模型的鲁棒性

AbstractInordertosolveproblemsofrvicefailuredetectionandlongrecoveryinlarge-scaledistributedsystems,itis

atthecomplexfaultlocationofdistributedrvices

andtheneedforrapidfaultlocation,thispaperproposadistributedrvicefaultanalysismodelbadonIsolationForest

rtolocateandanalyzedistributedsystemrvices,themovingaveragealgorithmisudtocalculatethe

timequenceofthehostperformancedatatogeneratethedynamicthresholdinterval,andtheIsolationForestalgorithmis

ingtothemethod,t怀孕能喝酸奶吗 heworkefficiencyoftheoperationandmaintenancepersonneliffectively

improved,theworkloadoftheoperationandmaintenancepersonnelisreduced,andtheoperationandmaintenancepersonnel

areassistedtoquickl81年属啥 ycheckthefaultproblem,therebyachievingtheeffectofquickdetectionandtreatmentofthedistributed

rvicefailure.

KeywordsIsolationForest;AbnormalDetection;AbnormalAnalysis

RearchandApplicationofDistributedServiceFaultAnalysisModelBadon

IsolationForestAlgorithm

作者简介

王一大

硕士

工程师

主要研究方向为数据研发工程师

研究机器学习

WangYidaJinanSoftwareInstitute,ChinaUnitedNetworkCommunicationsCo.,Ltd.,Jinan250100,China

参考文献

[1]GalliDL.分布式操作系统原理与实践[M].北京:机械工业出

版社,2003

[2]彭东,朱伟,刘俊,等.智能运维从0搭建大规模分布式AIOps

系统[M].北京:电子工业出版社,2018

[3]王晓峰,王一大,孙玉强.等.基于XGBoost算法的分布式服

务故障预测模型研究与应用[J].电信技术,2019(10):13-16

[4]王子勇,王焘,张文博,等.一种基于执行轨迹监测的微服务

故障诊断方法[J].软件学报,2017,28(6):1435-1454

[5]周志华.机器学习[M].北京:清华大学出版社,2016

[6]李航.统计学习方法[M].北京:清华大学出版社,2012

本文发布于:2023-03-21 18:50:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/bfd64fe88399c3e8920c9b49c45cf9aa.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:王一大.doc

本文 PDF 下载地址:王一大.pdf

标签:王一大
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图