诊断路径的自动优化

网友投稿 680 2022-10-16

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

诊断路径的自动优化

在IT运维工作中,诊断路径的梳理、新发现与优化是十分重要的工作。这个工作因为比较依赖专家的参与,而很多专家又不愿意把自己的特殊技能与大家分享,因此这项工作变得十分困难。虽然很多企业都曾经考虑过对自己的IT系统的各个组件与组合体做出一套常用诊断方法的知识库来,但是由于这项工作的难度而往往无功而返。

我们做运维知识自动化的工作已经整整三年了,其中的艰辛是亲身经历过的。自己在这个领域干了二十多年,自以为够资深了,自以为积累够深厚了。没想到想把这一切都梳理出来会如此的艰难。

最初我们的设想是梳理出运维问题场景,然后再通过专家的经验梳理出这些场景的常规分析处置方法,然后将这些路径用工具实现自动化的分析。做了一段时间后发现这种方法虽然有效,但是倒用户现场效果有限,因为我们梳理出来的诊断路径总不能覆盖客户新发现的问题。随着对用户现场问题理解的深入,诊断工具的开发工作量太大了。

2018年7月,在为一个沙龙准备演讲题目的时候,我们根据当时正在和上海电力合作的“操作系统诊断路径自动优化”的科技项目的内容,写了一个“基于人工智能的信息系统运维生态体系”的演讲稿,里面提到了一个全自动化的闭环流程。

这个闭环流程中的大多数工作都是可自动化执行的,部分流程节点需要专家的介入。为了十年这个流程,引入了一个新的知识体系模型。

这个模型里有几个要素:运维经验,知识点,诊断,脚本,处置。运维经验是用于发现问题的场景,知识点是用于解决和分析某个某个问题的专家知识。知识点是实现知识诊断的路由器,通过知识点,可以发散诊断路径。诊断是针对某个单一问题的分析工具,诊断可以独立完成某个诊断工作,也可能还需要调用某些脚本才能完成某个独立的工作。某个知识点可以调用一个诊断,也可以通过调用某个脚本来实现某些诊断路径的扫描。当发现的问题属于可自动修复的问题的时候,可以调用处置工具来完成自动化的处置。

这个模型把复杂的处置过程分解为一系列的独立元素,这一每个独立元素在统一了接口的情况下,就可以独立开发了。而且开发出来的每个独立元素都可以在不同的运维场景中通过不同的组合,参与到不同的运维经验场景中去发挥作用。为了更好的体系化知识,知识点、脚本、诊断三种元素最后都被统一为知识点。这样一来,整个体系的架构就更为简单了。

这种知识体系使用图数据库来存储是最为合适的。我们在neo4j上构建了一个运维知识库。不过这个知识库的建设过程中也遇到了一些问题。专家梳理出来的知识库与后续在运维工作中发现的知识库如何融合为一体的问题。如果我们每次分析问题的时候总是通过原有的知识库解决了问题,那么我们是幸运的,知识库也是有效的。但是我们还是经常会遇到运维知识库提供的诊断路径并不足以解决某个问题的情况。这种时候,我们通过其他的方式以及专家的介入最终也解决了问题。那么在解决问题的时候专家可能又会使用某些特殊的诊断路径去进行分析,自动化扫描工具也会扩大扫描范围,从而定位了问题。在目前的大多数情况下,这种新的诊断路径的发现往往就被忽略了。虽然这个案例被完整的保留了下来,但是由于缺乏后续的案例回顾过程,专家也往往没有精力对这些案例进行及时的总结与分析,这样就造成了新知识无法及时总结的问题。

我们刚刚开始的时候考虑的比较简单了,专家在诊断过程中做一些标注不就可以了吗?事实上,很多实验室产品都是这么出来的,似乎也很正常。不过如果真的在实际工作环境中,系统遇到了严重的问题,客户在催着马上解决问题,专家满身是汗,在冥思苦想中一点点尝试诊断,让他在每条诊断路径上都去标注一下,或者在每次启动诊断工具的时候都和相关问题做一个关联,每当有问题发现的时候再做一个标注,这个专家非骂娘不可。只有这一切都变成自动化的,这个工作才真正可行。

因此我们选择了一个新的技术方案,通过一个被称为复诊的自动化诊断工具去为每个故障做后台的自动化诊断。当某个故障发生的时候,自动产生一个后台任务,这个任务的目的就是通过知识库找到可能的诊断路径,并进行诊断路径的自动化扫描,把有问题的路径记录下来,直到关联性较强的诊断路径全部扫描完成,然后对扫描中发现的问题进行汇总,抽象整理出问题点,然后根据问题点自动归并诊断路径,形成某个CASE的问题路径。同类的CASE积累到一定程度后,把问题路径进行自动统计,形成相关的计数器。最终根据计数器的数据,向知识库系统推荐新的诊断路径。这些诊断路径被专家接纳之前,作为备选诊断路径,也参与到新的故障的后台复诊分析中去,但是并没有归并到常规诊断路径中。经过专家审核确认后,某些诊断路径就可以正式被归并到专家诊断路径中去。

随着这个工作的不断开展,随着生产案例的不断积累,知识库中的诊断路径的升级也就变得更为便捷了。在2018年到现在的几年里,诊断路径的升级工作的工作量十分大,一些老的知识点的诊断路径可能有一年多都没有升级了。一方面是智能化推荐的路径解决了一部分这方面的问题,一方面是我们的专家太忙了,无暇顾及这些工作。虽然智能化推荐已经解决了以往的诊断路径覆盖面不足的问题,但是又引出了一个新问题,那就是推荐的路径数量太多,动不动就推荐出十几条甚至几十条诊断路径,大大增加了诊断的工作量。

而新的算法中,自动化的复诊工作利用智能推荐的诊断路径做后台的自动化扫描,经过一定时间的积累后,把积累的成果推荐给专家,专家再把发现的诊断路径推荐到常规诊断中。同时根据积累的案例的统计数据,在某个系统中可以自动调整诊断路径的优先级,可以让诊断路径的推荐更为智能化和个性化。

上一篇:不做糊涂大头鬼——常见分布式数据库故障
下一篇:某省国税系统基于客户体验的应用性能管控建设方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~