关于AIOPS的最后一公里问题一直是从业人员一直想解决的问题,传统的运维方式依赖于专家与大量的人力工作,而智能化运维的目的是让这一切都变得简单。这些年AIOPS方向一直很热,大家都热衷于用数据与算法来解决目前运维领域最令人头痛的问题。在各种会议、沙龙上,似乎听到了大量的成功故事,顶会顶刊论文中也有大量值得学习的内容。不过在别人那里似乎很有效的方法到了自己那里总是效果不佳。
在目前常见的AIOPS实践中,依托高级算法的模式对于全链路中的故障环节定位有不错的效果,但是往往无法下钻到精确的位置,实现根因定位;基于运维知识图谱的RCA工程对于一些较为简单的明确的问题可以比较精准定位,但是对于一些存在变异的场景或者不太常见的问题还只能依靠泛化分析的方法大致给出一个方向,无法做到真正的根因定位;基于大模型的推理则像抽疯一样,有事神奇如上帝,有事蠢笨如白痴。
实际上想要解决AIOPS的最后一公里问题理论上是可以实现的,理论上智能体加扫描器的模式可以解决所有的问题 。上图是我为D-SMART V3画的草图,利用各种AI智能体推理,利用各种根因扫描工具来扫描,从理论上是能够帮助我们做根因定位的。在目前的AIOPS实践中,很多企业也都利用这个方法构建了大量的AIOPS工具。不过这个方法也仅限于对于已知问题的发现和分析,对于未知问题,连扫描器都没开发出来,如何实现根因定位呢?
从 上面的讨论可能大家还看到了另外一个问题 ,那就是扫描器的开发工作量十分巨大。如果是一个商用的通用场景的工具,那么开发几千个甚至上万个扫描器都不一定能够做到极高的场景覆盖。人工智能,智能的背后是满满的人工,这句话可见一斑。
比较高级的扫描器往往只有专家才能设计出来,然后专家把思路写下来,让程序员实现,这中间的难度大家可想而知。因此我们一直在寻找一种方法,让专家的知识高效低成本地变为AIOPS工具。运维知识图谱是我们最初的尝试,构建运维知识图谱的方式是有效的,但是能力还不充分。在D-SMART V1.9中我们推出了一种可以用2行代码描述的运维分析工具‘泛路由知识点’,这是一种让专家知识快速变现的方式,确实解决了专家知识快速变现为泛化分析工具的问题。
在即将发布的D-SMART V2.6中,我们将要推出一种新的分析工具,与泛路由知识点不同的是,这是一个较为精准地定位故障点的工具。只需要依赖于三行代码,就可以实现对某个问题的某种根因分析。其产生的分析报告,可以让普通的DBA看得懂。
昨天下午,我花了半个多小时,写了下面的几行代码。这个代码的作用是分析log file sync延时过高是否是由某几种原因引发的。
在编写这个工具之前,我大概花了二十分钟来思考这些指标之间的逻辑关系,然后花了几分钟时间完成了这个工具的开发,并把工具注册到D-SMART中。
当前我还没有在实验环境中模拟故障并测试这个分析工具,为了让大家看到效果,我用了一个在首发D-SMART V2.6的高斯生态版中的高斯IO分析工具的分析结果来做一个演示。通过指标分析扫描出存在问题的指标,根据异常检测结果与下面的“说明”中包含的运维知识,一般的DBA应该能够对问题的原因有比较清晰的分析了。
这个分析工具不仅能帮DBA分析问题,还能在自动扫描中发挥巨大的作用,根据扫描的原因、异常检测发现,自动扫描器可以做较为精准的问题归类。
解决AIOPS最后一公里,离开运维专家是不可行的,运维专家在精准分析方面的经验可以帮助目前的各种智能化分析手段提高性能。目前最大的障碍是运维专家的思想无法快速变成工具,我希望我们团队的这些尝试,能够给正在做这方面工作的朋友提供一种新的解决问题的思路。