一种微服务异常检测方法和系统技术方案

技术编号:35354180 阅读:10 留言:0更新日期:2022-10-26 12:27
本发明专利技术公开了一种微服务异常检测方法和系统,涉及微服务异常检测领域,本发明专利技术包括:采集微服务性能数据和业务数据;根据采集的数据建立模型进行异常子服务预测;根据预测结果生成异常候选数据;根据异常候选数据确定异常根因服务,并将异常根因服务进行输出。本发明专利技术使用时间序列预测算法,充分考虑微服务架构特性和指标数据特点,通过Isito获取服务指标数据,继而服务调用时间,调用频率等分析,将微服务异常检测分为预测与检测两个阶段。预测阶段需要重点关于服务调用异常的情况,对服务之间调用的异常进行精准预测,并计算真实值与预测值之间的差异,当差异显著大于通常情况时,即可初步判定当前服务调用出现了异常,通过这种方式减少系统误报。式减少系统误报。式减少系统误报。

【技术实现步骤摘要】
一种微服务异常检测方法和系统


[0001]本专利技术涉及微服务异常检测
,尤其涉及一种微服务异常检测方法和系统。

技术介绍

[0002]微服务带来的挑战中具有极大意义的便是异常检测。异常检测指对不符合预期模式的数据的识别。异常检测作为数据挖掘领域的一项重要内容,在很多方面都有广泛的应用,例如图像异常检测、时间序列异常检测、日志消息异常检测等。从运维人员的角度出发,一次异常的排查大致从服务的性能指标、日志、继而追踪服务开始。因此我将会从这三个方面分别对异常检测的相关研究做总结。
[0003]基于日志的异常检测方法现在已经从人工手动检查进行到自动异常检测,并在相关领域提出了众多方法,包括基于规则、基于关联推断、基于时间序列分析、基于图等。理想状态下,微服务应该是无状态的,因此一旦碰到服务因为异常出现重启等问题(Kubernetes架构下的pod属于无状态的对象),日志变会丢失。其次,微服务架构下的一大特点是异构性,异构的服务也意味着对服务的日志的异构性,因此分析异构日志去记录跨多个平台关联事件也为运维人员增加了困难,故日志方法的实用性较差。另外从业务出发,更多的考量服务自身的表现和服务之间的调用情况,比如服务和服务的指标问题,比如响应时间,吞吐量,错误率和饱和度等。综上基于监控的指标数据对异构环境的服务异常定位适应性更强。
[0004]基于监控指标的异常检测。从监控对象出发,微服务的监控指标又分为:服务指标监控,业务指标监控,系统指标监控。微服务的业务监控指标包括业务的注册量,业务的登录量,服务请求笔数,响应时间等。应用服务的KPI是业务系统如网页访问量,交易量,失败量,响应时间等的指标。当单个指标异常的时候,无论是系统本身还是运维人员,都会很快很容易的很容易的额定位异常,但是实际业务场景中,很多请求都是多个指标同时异常,因此国内外学者更多的是关注如何在众多异常组合中定位真正的异常指标。针对KPI的异常检测与根因定位是智能运维中非常关键的一步。2015年,Yahoo!提出的异常检测框架EGADS,实现了工业界对异常检测一次有意义的实践和探索。EGADS通过监控系统指标和业务指标的时间序列,提出了时序建模方法和基于分解的方法做异常检测。还有另外一种情况的存在。便是当异常是因为多个指标在很短时间内同时触发的时候,针对KPI的异常检测是充满挑战的。2016年,Qingwei Lin等针对如何快速找出导致issue report数量突变的问题组合,提出了iDice框架。iDice提出了一种更符合实际情况的根因评估指标:Isolation Power,利用多种剪枝手段减少搜索的复杂度。利用了数据的时间序列,从一定程度上缓解了单一时间点做预测时不准的情况。但是对大量的节点做异常检测也带来了额外的复杂度,在维度和取值较多时,上层节点的数目要远远大于叶子结点的数目。从上至下的搜索以及至下而上的聚合的复杂度极大,虽然文献中提出了几种剪枝方法,但是并不能带来量级上的减少。2018年,Yongqian Sun等为了解决在不同组合的多维指标相互依赖且相互组合的情况下,如何定位多维指标异常中具体的异常或者异常组合子集的问题,提出了HotSpot
模型,该模型使用了“预测+搜索”的策略,针对基本类型的指标(可加型,例如交易量,PV等)提出了基于Ripple Effect的根因判断方法。为了减小搜索复杂度,作者提出基于MCTS(蒙特卡洛树搜索)和分层的剪枝策略去定位出根因元素集合。Z Li在2019年在HotSpot的基础上提出了Squeeze模型,基于更广义的Ripple Effect,证明RE不仅仅适用于基本类型的指标,也适用于派生类型的指标(eg.成功率)同时解决了0值预测的问题。增加了算法的通用性和鲁棒性。但是实际的业务场景可能会对算法的准确性产生一定的影响,例如预测不准可能会导致聚类不准确、同时有多个异常或者外部异常也会影响聚类效果等。伴随着机器学习发展,当算法人员没有运维知识,运维人员不懂算法的时候,自动化的异常检测产生了。Opprentice是第一个将机器学习应用于获取真实异常定义、自动组合和调整各种检测器以满足操作员精度偏好的检测框架。该文献任务由于异常很少,因此完全可以让运维人员手动标注异常,然后算法使用不同的提取器去提取异常,继而将异常检测问题转化为机器学习中的有监督分类问题。Opprentice只需要几十分钟就能完成以前操作员可能需要几十天才能完成的事情。
[0005]以上的研究大都是围绕KPIs展开,但是微服务的服务指标作为整个服务的支架其重要性不言而喻。其中服务指标的监控监控包括服务的可用性,服务是否异常,服务的响应时间,服务的资源占用率,服务的请求量,线程数,队列深度以及性能等。与针对KPIS的异常检测一样,单个指标的不具有说服力和难度,针对多维指标的检测才真正具有挑战。在学术界和智能运维中,多维时间序列变量的因果推断意义重大,主要用于探寻服务多指标之间的关联关系,用于根因分析与故障排查。微服务的系统监控指标是监控最基本的元素,在定位异常的过程中,也不能忽视服务主机的资源情况的影响。结合微服务本身的指标和基本的服务器资源指标,学术界和工业界试图将服务调用情况与服务资源情况结合起来,生成一定图模型或者树模型或者其他方式进行异常检测。下面将展开以上部分的总结。
[0006]针对多维时间序列,AutoMAP利用多种类型的时序指标来动态生成服务关联诊断根因。该工作分析时序之间的异常关联,推断异常行为图来描述不同服务之间的相关性。根据行为图,该工作使用前向、自向和后向随机游走算法设计启发式模型,用以识别服务故障的根本原因。AutoMAP可以快速部署在各种基于微服务的系统中,无需专家经验知识启动。同时,它也支持引入专家知识以提高诊断的准确性。MicroCause是另外一个用于定位监控指标故障的模型,其设计了一种简单而有效的路径条件时间序列算法,在充分利用传播延迟的情况下学习监控指标的依赖图,能够准确地捕捉时间序列数据的序列关系,同时提出了面向时间原因的随机漫步(TCORW)方法,算法中融合了监测数据的因果关系、时间顺序和优先级信息。同样和图结构有关,MonitorRank一种实时度量采集系统和异常检测框架,它是一种基于随机行走策略的无监督启发式方法。MonitorRank使用每个服务的历史和当前性能指标作为它的输入,以及它们之间生成的调用图。MonitorRank并不假设服务之间存在可靠的依赖关系,但它确实需要调用图作为基础。想要捕获精确的调用图的是需要很高的成本。CloudRanger根据观察到的性能指标进行动态因果关系分析,构建影响图,它将云本地系统视为黑盒,并监视其在服务端点中的性能,一旦检测到异常,便采用基于二阶随机游走的启发式调查算法对问题服务进行识别,它不受服务动态增减和性能基线的影响,减少了MonitorRank因为构建精准调用图而产生的额外开销。同时,学术界也有学者提出结合机器学习做异常检测的方法。2020年等Li Wu等基于容器的微服务环境设计了一个与应用程
序无关的系统MicroRCA,它持续本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务异常检测方法,其特征在于,包括如下步骤:采集微服务性能数据和业务数据;根据采集的数据建立模型进行异常子服务预测;根据预测结果生成异常候选数据;根据异常候选数据确定异常根因服务,并将异常根因服务进行输出。2.根据权利要求1所述的一种微服务异常检测方法,其特征在于,根据采集的数据建立模型进行异常子服务预测;异常子服务预测包括预测阶段和检测阶段;预测阶段结合多个不同时间分段的情况进行预测,检测阶段计算真实值与预测值之间的差异,当差异显著大于通常情况时,即可判定当前出现问题的异常子服务。3.根据权利要求1所述的一种微服务异常检测方法,其特征在于,根据预测结果生成异常候选数据,数据生成步骤如下:输入服务调用频率,时间范围T,C=0;通过对时间范围T的服务调用数据做处理,使其映射到n个服务组成的矩阵;从异常子服务节点i出发依次遍历每个服务节点并根据皮尔逊公式计算相关性矩阵表;分别将每个相关性结果pr值与异常检测置信度α做比较,如果大于α,则置矩阵中对应位置的值为相应的相关性结果pr值;将矩阵转置,重复第二步和第三步;剔除矩阵中为0的对于节点;输出服务调用图和异常候选列表。4.根据权利要求1所述的一种微服务异常检测方法,其特征在于,根据异常候选数据确定异常根因服务,并将异常根因服务进行输出,异常根因服务确定步骤如下:输入服务调用子图,服务性能指标数据,服务调用频率,服务响应时间;依次遍历异常服务候选列表,计算各服务响应时间并生成矩阵;根据服务调用频率和服务性能指标做相关性计算,并生成相关性矩阵;为各个节点计算异常分数;生成转移概率矩阵;根据PR计算并排序;输出异常根因服务。5.一种微服务异常检测系统,其特征在于,包括:数据采集模块:用于采集微服务性能数据和业务数据;异常子服务预测模块:用于根据采集的数据建立模型进行异常子服务...

【专利技术属性】
技术研发人员:邹瑞黄晓芳
申请(专利权)人:西南科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1