关于智能运维中算法落地的一些思考——复旦大学教授、博导王鹏

举报
SRE确定性运维 发表于 2022/11/25 10:49:05 2022/11/25
【摘要】 本篇文章是复旦大学教授王鹏教授对智能运维的现状进行深度剖析,总结了智能运维在算法落地遇到的主要问题,以及关于智能运维算法落地的探索。

来源:华为云SRE确定性运维专刊(第二期)

1.PNG

      作者简介:王鹏,复旦大学计算机科学技术学院教授、博导,主要研究兴趣包括:工业物联网大数据、智能运维等;2012年获得教育部自然科学二等奖(第三完成人)。主持或主要参与科技部重点研发计划、国家青年973、自然科学重点/面上基金、上海市科委、上海市经信委的多个项目,以及华为、微软、IBM等企业的资助项目。在数据库领域顶级国际期刊和会议SIGMOD、VLDB、ICDE、TKDE等发表论文40多篇。担任众多国际学术会议的程序委员会委员,包括SIGKDD、ICDE、DASFAA、WAIM等。国际学术期刊VLDB Journal、TKDE、KIS等的审稿人。

2.PNG

      本篇文章对智能运维的现状进行深度剖析,总结了智能运维在算法落地遇到的主要问题,以及关于智能运维算法落地的探索。

      智能运维的现状
      近些年,在广大智能运维业内人士与爱好者共同努力下,算法日益丰富,效果也在不断提升,下面针对几个关键场景展开分析。

4.PNG

      1、指标异常检测
      指标异常检测是当前落地最多的智能运维场景,该场景下数据容易准备、效果容易验证。对某大规模指标进行异常检测(10000、100000、……)。
      研究者们提出了大量异常检测算法,包括单指标、多指标;基于统计模型或深度学习;无监督、有监督。目前多个公司和机构开源了异常检测数据集和异常检测算法。
      指标异常检测在真实环境中应用的效果还有如下主要问题:
      1)误报太多
      » 阈值紧,为了消除漏报,往往造成大量的误报;
      » 异常多,运维人员不得不忽略所有的指标异常告警。
      2)模型/参数难以设置
      » 不同类型的指标,往往适合不同类型的模型和参数。
      3)缺乏有效的反馈和修正机制
      » 缺乏问题发现能力:监测5万个指标,一天内报了2000个异常,难以对这些异常进行展示和分析,类型、主机、时间段、业务?
      » 缺乏基于反馈的模型调整能力,难以应对“这个不是异常,后续检测中不要再报了”的个性化需求


3.PNG


      2、日志/告警智能分析
      当前,很多企业上线了日志/告警相关算法,有如下困难:
      » 人工难以处理,基于规则的方法维护性差
      » 典型场景:模板提取,场景挖掘,基于日志的异常检测
      » 变量取值异常、模板数量异常、语义异常等
      也有研究者提出了大量的算法,比如:
      » 模板提取:Drain、Spell、LogCluster
      » 场景挖掘:OAS
      » 日志异常检测:DeepLog、LogAnomaly
      » 公开的数据集:Loghub
      当前,日志智能分析实践存在若干问题,如下:
      1)模板质量难以有效评估
      » 模板数量大(几百上千),逐个人工判断耗时太长
      2)缺乏有效的反馈和修正机制
      » 缺乏客观评判
      » 缺乏基于反馈的模板调整能力,难以应对“这种模板应该根据这个变量拆分”、“这个变量应该被泛化”之类的个性化需求
      3)根因定位效果欠佳
      » CMDB普遍质量不高
      » 可能真正的故障原因不存在与告警数据中
      » 标签数据缺失

      3、智能问答系统的现状差强人意
      当前众多研究者在对智能问答系统进行研究,提出了许多算法和技术,Google Scholar上可以搜索到近35万篇相关文章,但实际上,智能问答系统,回答的结果时常是差强人意,远没有达到真正的智能。

      问题分析
      造成目前状况的主要问题是哪些?
      从战术层面看:

      问题1:难以对数据和算法结果进行深入分析
      由于数据探索是算法研究的前提,算法结果分析是算法优化的必要步骤,但是由于以下两点难以进行深入分析:
      1)被监测对象规模庞大
      数据达到十万/百万个指标,每天上TB的日志;导致每天上千个异常,上千/上万个日志模板;难以进行可视化数据探索能力弱。
      2)可选算法多,参数搜索空间大
      主要表现为异常检测:不同指标适合的模型不同、参数不同;搜索空间巨大:指标规模 × 模型个数 × 参数取值个数。

      问题2:算法的自适应能力和反馈修正能力弱
      1)算法普遍缺乏反馈修正能力
      表现为如下几点:这个“异常”我不需要,后续检测中不要再报了;这两个“模板”应该合并掉,这个“变量”不能被泛化;目前的算法缺乏基于反馈的自动修正的能力
      2)标签数据获取困难
      主要因为:算法团队与运维专家沟通成本高;异常/故障本身就是小样本事件。

      问题3:全局算法能力弱
      1)缺乏异构数据的协同分析(横向)
      主要原因:指标、日志、调用链中的异常都可能反映故障相关征兆;缺乏统一的异常评估机制;缺乏不同数据的分析结果之间相互印证的能力。
      2)缺乏不同阶段的协同分析(纵向)
      主要原因:从数据采集到根因定位存在多个数据处理环节;异常/故障本身就是小样本事件。
      3)缺乏有效的异构数据处理工具
      这样会导致我们花很多时间进行数据查询和分析。

      从战略层面看:
      问题1:算法和领域知识结合较差
      1)数据、算法和知识的融合是AI的研究热点
      包括AI 3.0,数据模型和机理的融合,可解释AI,等等。
      2)运维本身是一个强知识领域
      运维老兵的重要性体现在经验和知识的丰富性,然而当前的现状是AIOps算法对运维知识的利用较少。

      问题2:对智能运维中算法作用的认识存在偏差
      1)论文中的算法与真实场景需要的算法还是有差异的
      以日志模板提取为例:
      由于大量的离线、在线日志模板提取算法;真实场景中的模板提取;受POC过程在线或离线影响;受生产环境的在线或离线影响。
      因此需要更为合理的日志提取算法,包括小批量测试数据上的离线算法和基于模板集合,流式数据上的在线算法。
      我们还需要别的算法吗?比如:长日志模板提取算法;多行日志模板提取算法;特殊日志模板提取算法;反馈算法;参数自动设置算法……
      2)“完全依靠算法实现自动化运维”现实吗?
      更现实的目标:算法做为一种辅助手段,让运维更高效。
      有很多场景需要,比如:
      » 数据量太大,用算法来提高效率,对每天几百TB的日志自动提取模板和变量,对上万的指标自动进行异常检测;

      » 用算法来提高运维工具的易用性。
      » 做为一种定位故障过程的辅助手段,灵活快速的查询和探索数据。
      » 算法做为一种积累知识的方式,构建知识图谱。

      智能运维三要素
      包括:算法的设计能力、运维知识的理解能力和数据平台的工程化能力。
      » 算法设计能力:客户需求是个性化的,需要设计针对性的算法;并且数据是个性化的,受参数调整的复杂性和反复性影响。
      » 运维知识的理解能力:算法只是手段,运维才是目标。
      » 数据平台的工程化能力:数据管理和探索能力是设计算法有效的前提;需要数据平台和算法的高效结合。

      探索工作
      一、拟定目标:
      1、提高算法应用效果。
      2、支持反馈,融合专家知识和经验。
      3、提高运维过程中的数据探索能力,从而提升运维工具的易用性。
      二、首先是异常检测:
      做好算法和参数推荐(如图),以实现上万个指标的自动模型和参数推荐。首先构建指标和异常的知识库,然后进行基于可视化的算法比较、过滤、选择(如图)。

5.PNG

      三、然后是告警压缩
      这是算法和专家经验的有效融合;将专家经验也做为一种算法,实现和真正算法同样的输入输出接口;充分体现专家经验的重要性。
      四、其次是告警精细管理
      业务理解和数据的深层次分析对于智能运维至关重要!
      我们将告警场景化为四类:高频事件(历史出现次数多,多天多次发生);周期性事件(出现天数很多,并且集中在指定的时间段);新增事件(某时间点才开始出现的事件);阶段性事件(某时间点后不再发生)。
      五、再进行日志聚类:我们的方法是多算法融合(如图)

5.PNG

      六、使用数据探索工具:作为辅助手段的数据探索技术让运维人员也能灵活的分析数据
      1、基于拖拽式的分析流程实现,有如下好处:
      » 1)便于领域专家结合不同分析算法搭建分析流程
      » 2)融合了异常检测、聚类、场景挖掘等多种算法
      » 3)支持不同语言开发的算法
      » 4)支持输入数据格式的智能学习

7.PNG

      2、基于自然语言的问题系统,高易用性,便于运维人员进行个性化数据探索

8.PNG

      3、面向时间关联的复杂查询
      如下图所示的HDFS日志,当我们想查询其中三个模板是否经常一起出现时,SQL查询较为复杂,PLQ查询更加简洁高效。

9.PNG

      4、异构数据统一查询系统
      该系统融合了指标数据(时间序列)、日志数据(文本序列)、CMDB数据及调用链图数据,实现四种类型数据的统一查询。

10.PNG

      总结
      1、智能运维中的算法发挥越来越大的作用;
      2、智能运维中的算法落地仍有大量问题需要解决;
      3、算法不能一蹴而就,需要有持续优化的能力;
      4、算法作为一种运维的辅助手段。

11.PNG

     拓展阅读:华为云SRE确定性运维专刊(第二期)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。