关于运维自动化:根因分析思路方法总结|保障-IT-系统及其稳定性

56次阅读

共计 4057 个字符,预计需要花费 11 分钟才能阅读完成。

云智慧 AIOps 社区是由云智慧发动,针对运维业务场景,提供算法、算力、数据集整体的服务体系及智能运维业务场景的解决方案交换社区。该社区致力于流传 AIOps 技术,旨在与各行业客户、用户、研究者和开发者们独特解决智能运维行业技术难题,推动 AIOps 技术在企业中落地,建设衰弱共赢的 AIOps 开发者生态。

引言

近年来,随着 IT 系统监控能力的日益成熟,IT 零碎运行时问题的根因剖析畛域吸引了很多研究者的眼光。本文通过调研大量运维畛域根因剖析的相干文献,并联合运维的理论须要,将根因剖析问题进行了拆解,并对各子问题的解决方案进行了总结和剖析。

一、IT 零碎及其稳定性的概念及形象

IT 零碎,即 IT 基础设施。其定义千差万别,但个别认为是包含经营整个组织所必须的一系列物理设施和应用软件的汇合,也包含由管理层估算所决定的组织范畴内的人和技术能力的服务汇合。业界常常提到的信息技术硬件、软件、服务方面的投资,其实就是 IT 基础设施。对于企业来说,这些设施可能为客户服务、与供应商建立联系和外部治理提供根底。IT 基础设施的收入往往占到大型企业信息技术收入的 25%-30%。IT 零碎运维的工作要尽可能保障服务运行环境的稳定性——即在无限的 IT 基础设施所提供的资源条件内,保障服务得以安稳运行。如图 1 所示,通过监控零碎运行状态(状态监控),运维人员须要剖析其中的故障点(故障检测),并通过回溯排查问题的源头(根因剖析),进而对系统进行治理(控制策略及管制信号生成),以使零碎运行恢复正常或放弃安稳。

根因剖析作为 IT 运行的重要组成部分,旨在找出哪些事件真正触发了 IT 零碎中的景象或症状。与临床诊断相似,操作人员通过综合剖析指标数据和系统日志,判断零碎的次要问题在哪里,从而实现故障定位。在很多企业当中,出于对管制老本,维持服务稳固等方面的思考,根因剖析技术是有微小需要的。良好而成熟的根因剖析技术能够帮忙零碎的运维人员疾速定位到零碎问题,从而放慢问题的修复速度,以尽量小的代价解决 IT 零碎在运行过程中遇到的问题,减少零碎的安稳运行工夫,缩小企业损失。在图 1 中,根因剖析作为问题发现模块和问题解决模块之间的枢纽环节,起到十分重要的作用。一方面,当今的 IT 零碎十分复杂,零碎动辄上千节点,且节点之间的构造和性能高度耦合,单点的问题也往往有相当大的影响范畴,使得运维人员往往无奈间接确定零碎的故障点。另一方面,为了化解系统故障带来的影响,运维人员修复零碎须要以根因剖析的后果作为根据来隔靴搔痒,使得零碎得以在尽可能短的工夫内恢复正常。

传统运维须要通过人工形式进行。运维人员在该阶段排查故障根因往往须要经验艰苦的过程,须要通过查看系统日志、监控指标,理解零碎状态,能力推断系统故障的起因所在。而随着自动化运维的倒退,零碎的主动监控和信息收集日趋完善,运维人员对系统的监控越来越直观,且实时化水平大大提高。在面对小型 IT 零碎时,自动化运维极大地增强了运维人员对系统的掌控能力,得以缩小运维人员在放大问题根因范畴方面所投入的工作量。但与此同时,随着 DevOps 和云技术的倒退,IT 零碎的规模变得越来越大,一个独立零碎领有上千节点已不算常见。另外,服务的微服务化也使得 IT 零碎的构造变动越来越迅速,系统结构对于大型零碎的根因剖析,因为监控数据量宏大,仅仅依附运维人员来进行根因剖析便显得顾此失彼。

因为人工排障依然具备诸多有余,自动化的根因剖析能力便成了大家关注的热点。自动化的根因剖析,是利用算法对给定的故障问题进行自动化剖析,输入举荐后果来辅助运维人员排查零碎问题的过程。实现自动化的根因剖析,能够加重运维人员的工作累赘,缩小零碎问题的均匀修复工夫,进步零碎的均匀可用时长。另外,对于 C 端的企业来说,它更是缩小客户投诉,缩小运维老本,进而进步经济效益的重要伎俩。

二、根因剖析思路与办法总结

根因剖析(root cause analysis)一词本不是运维的创造。在 IT 畛域里,根因剖析起初是指剖析导致程序运行异样的问题点,即咱们平时所说的“找 bug”。起初,随着运维与开发变得越发密不可分,开发口中的根因剖析一词也逐步拓展到了运维行业,演变成咱们当初了解的 IT 运维中的根因剖析。

顾名思义,根因剖析是一个从问题景象探索到问题实质的过程。依据 IT 运维自身的特点,根因剖析问题能够进一步分成两局部。首先,咱们须要从宏观层面上确定问题产生的地位,给出相干的地位信息和大抵的问题范畴;这个过程咱们称之为根因范畴压缩。其次,咱们要依据根因范畴压缩的后果对单点进一步进行排查,具体定位到节点上的问题事件,为运维人员解决问题提供相干的逻辑证据;这个过程咱们称之为根因事件查找。

在上面的篇幅中,咱们别离介绍目前已有的针对根因范畴压缩和根因事件查找的思路和办法,并对各办法的优缺点进行简略的剖析。

1、根因范畴压缩办法

根因范畴压缩的次要目标是从 IT 零碎宏大的监控数据当中筛查出问题的次要故障点。因而,该过程中所用的办法次要以数据驱动为主,运维逻辑为辅,通过数据的统计特色和运维教训的联合来筛选出问题源头的范畴。因为数据驱动的模型和办法不可避免地会受到数据品质的影响,因而该过程也须要对后果的可信水平进行预计。

基于分类器的模型,例如决策树、反对向量机(二分类模型)、神经网络(二分类或多分类)等模型,将零碎状态转换为特色,通过对系统的特色和特色之间的隐含逻辑进行学习,从而对系统所处的状态和对应的根因范畴进行判断。通过统计学习或机器学习的伎俩,分类器模型都能够很不便地进行对系统束缚关系的主动抽取,从而推断出不同状况下的根因范畴,因而该类模型具备较好的适用范围:只有能对系统的特色进行提取和对数据进行标注,往往能够应用该类模型进行根因范畴压缩。但随之而来的是,基于分类器的办法广泛具备后果可解释性比拟差的问题,且零碎常识隐含在模型构造中;对于根因剖析问题,咱们很难验证模型所学到的“运维常识”是否实在存在。另一方面,目前咱们还未发现有较为无效的特征提取和筛选的通用办法。对于不同的运维数据,须要关注哪些特色来解决根因范畴压缩的问题,也须要通过肯定工夫的积攒。因而,此类办法对系统监控数据的数量和品质是有肯定的要求的。

此外,还有一类较为常见的模型例如马尔可夫模型,随机 Petri 网等,通过对系统结构的模仿,利用内置在模型中的运维教训对根因范畴进行预计。此类模型的特点是,以数据为导向,通过图模型搭建零碎的大抵框架,而后通过机器学习的伎俩确定模型中转移关系的概率分布,从而主动生成运维常识的概率模型。在此类模型中有现阶段比拟风行的根因剖析思路,即在节点或指标的关联拓扑上,利用统计学习进行零碎建模,而后将运维教训设计为算法逻辑进行根因范畴压缩。例如,一些办法利用故障的散布特色对根因地位进行辨认,其前提假如为,如果大量异样业务通过某节点,则该节点成为根因的可能性会更大。该系列办法将零碎模型与运维教训联合起来,能够起到较好的根因范畴压缩成果。

总的来说,数据驱动的办法在放大根因范畴方面的确能够起到肯定的作用,但其在大部分场景下仍然无奈对后续剖析提供足够的帮忙,对问题细节的展示并不充沛。在更深层次上,因为“因果性”与“相关性”两个概念之间差别难以弥合,算法所抽取的相关性与系统故障流传的因果关系较难进行良好的对应。运维教训在算法中的交融能够适当地拉近根因剖析中“因果性”和“相关性”的间隔,但仍不足以使运维人员获取足够的信息进行问题的修复。因而,只有根因范畴压缩的能力,咱们依然须要局部的人工问题排查,很难实现 IT 系统控制闭环的自动化。

2、根因事件查找办法

目前对根因事件查找问题的解决办法较为少见,学术界对此问题的探讨并不充沛。贝尔实验室早在 1999 年提出了一个基于事件推理的根因剖析框架。该框架提出了基于事件关系图的根因推理方法,并且思考了不齐全信息下的根因推理问题以及时序信息的引入对事件关系图建模能力的影响。该办法对现今的智能运维根因剖析有很好的领导和借鉴意义,但惋惜的是,起初对该方向的深入研究大部分转到了 Petri Net 上,慢慢地脱离了当初的运维场景——从剖析运维资源占用状况的角度讲,这样的办法依然能够解决一部分简略零碎的运维问题,但随着运维零碎规模越来越大,服务的数量越来越多,资源的占用状况越来越简单,基于 Petri Net 的剖析缓缓的开始变得有力。能够预感,间接以资源占用的细节开始进行运维故障的剖析会给剖析引擎带来极大的累赘。另一个乏味的想法来自一篇于 2012 年发表在 IEEE/ACM ToN 上的论文。这篇论文中提到的 G -RCA 零碎是根因剖析的一种很好的思路——通过剖析零碎事件之间的关系来构建事件的因果图,而后利用不同的推理方法来进行根因事件剖析。其中介绍的常识抽取办法,对于解决和刻画运维畛域的根因剖析问题也相当有借鉴意义。另外,其余一些基于 SAT 实践,诱导逻辑程序(概率模型或确定模型)等的根因推理的框架或模型,也在局部钻研中提到过,但因推理的简单度过高(尤其是一些非 on-the-fly 的办法)或与运维场景的需要相去甚远,并未有在 IT 运维场景落地的前景。

开源福利

云智慧已开源数据可视化编排平台 FlyFish。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现合乎本人业务需要的炫酷可视化大屏。同时,飞鱼也提供了灵便的拓展能力,反对组件开发、自定义函数与全局事件等配置,面向简单需要场景可能保障高效开发与交付。

点击下方地址链接,欢送大家给 FlyFish 点赞送 Star。参加组件开发,更有万元现金等你来拿。

GitHub 地址:https://github.com/CloudWise-…

Gitee 地址:https://gitee.com/CloudWise/f…

万元现金流动: http://bbs.aiops.cloudwise.co…

微信扫描辨认下方二维码,备注【飞鱼】退出 AIOps 社区飞鱼开发者交换群,与 FlyFish 我的项目 PMC 面对面交换~

正文完
 0