如何看到平静海面下的暗礁



在大多数时候,我们的DBA都像是驾驶者一叶小舟行驶在一片平静的海面上,似乎一切都是那么和谐。不过平静总是暂时的,说不定什么时候海面会涌起巨浪,把这叶小舟拍碎在水面下的暗礁上。大海什么时候会起波澜,这个我们很难预知,因此我们总是希望能够了解哪里有危险的礁石,好让我们的小舟远远的避开它。这实际上是大多数DBA在努力做的事情。问题是这片海太广了,而我们缺乏声纳、遥感设备,因此无法进行广泛的有效的探查。这实际上也是目前大多数DBA的困惑。
曾经和一个大企业的DBA交流,他们的信息系统数量爆炸式的增长,从以前他们DBA只需要管理好二三十个关键数据库开始才短短3、5年时间,他的团队管理的数据库实例已经高达400多个了,而运维人员还只有他一个正式编制人员和2个外包人员。按照运检规范,每天做一次巡检,都是不可能的事情。弄个监控软件,让运维人员有时间上去看两眼指标,也是不现实的事情。他们现在需要的是一套能够帮他们在后台默默值守的监控系统,没事时候都不需要打开监控去看,而真正有问题的时候,发个短信给他们,他们再上去处置就可以了。这个需求提的似乎并不高,不过要做到这一点十分不容易。传统的网管式的运维自动化系统,不论是开源的zabbix、prometheus还是商用的Precise I3,都无法提供这样的能力,让他在没有收到报警短信的时候可以相信系统没有可以令他手忙脚乱的隐患。这些系统要么就是每天发送数千条基线、日志告警,要么就是什么都不告诉他。
另外一个案例来自于某银行,他们的一个DBA管理着50多套B级系统的数据库,其中不少B级系统是银监会和银联监管的,一旦出现故障导致业务停运超过30分钟,大行长都要去银监会做解释。这些让他们提心吊胆的数据库系统让他们头痛的问题是,他们就像平静的海湾一样,似乎安全无害,而突如其来的某个风暴会让他们措手不及。他们每天都花时间认真去监控的时候,啥事都没有,而他们去忙一些其他事情的时候,突然就会闹点幺蛾子,让他们忙活半天。当我和他们说他们需要一个DB AIOPS系统,对这几十套数据库做一些深入的分析的时候,他们还在怀疑是不是有这个必要。他们每年都会请专家对这些系统做几次巡检,也没有发现过什么重大的隐患。当他们看到我们利用离线的运维监控数据生成的一份20多页的深度检查报告中的50多类关键隐患的时候,吓了一大跳。他们认为十分安全可靠的这些数据库中,居然有这么多的隐患,而且有不少都是高风险隐患。特别是他们看到某个系统中有一条SQL在半小时时间里执行了100万次,每次都返回0条数据的时候,更是吓出了一身冷汗,一旦这条业务逻辑存在问题的SQL的执行计划出现一点偏差,那么这套系统就完蛋了。
实际上DBA需要AIOPS来提升运维自动化系统中的分析能力,传统的靠人去看的监控系统已经越来越难给DBA提供有效的支撑了。而AIOPS以前关注的领域都在信息系统运行的宏观层面。通过AIOPS对信息系统的全链路进行分析,发现可能存在的异常,并且通过异常特征的建模,发现异常可能出现的位置,是网络、中间件、数据库还是存储系统。做出一个初步的定位就可以了。在这些运维实践中,AIOPS发挥了其特长,效果很好。不过在微观运维领域,比如在数据库运维领域,利用AI算法来发现数据库可能存在的潜在风险,并且定位风险可能的原因,指导运维人员消缺。这一点不仅仅需要高水平的数据处理算法,还需要十分强大的知识库。
昨天我在讨论异常衍生路径的时候,也提到了知识库的问题,知识库的积累需要大量的专家资源、大量的实际应用案例,是需要时间去沉淀的。一个AIOPS系统如果要深入到微观的领域去发挥作用,离开这些知识库是行不通的。除非一个企业能够聚集一批专家对AI算法发现的系统异常进行人工分析,否则这些专家的分析能力必须数字化。数字化监控还是相对容易的,我们把SNMP的MIBS库中的指标抄过来,就已经可以构建一个相对完善的监控系统了,再找一个开源的监控平台,让一些专家配一些基线,数据库监控平台就构建起了了。而如何把专家脑子里的那些干货数字化,是个更为复杂的问题。首先是专家愿意不愿意把自己赖以生存的看家本领数字化了。其次是如何数字化这些专家知识。事实上,后者还是有解的,前者就真的需要商榷了。构建一个开源的,开放的知识库项目有可能是解决这个问题的一个方法,我为人人,人人为我的大同世界是令人向往的,虽然实现起来还是困难重重。

如何看到平静海面下的暗礁》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.hashtobe.com/1152.html