九州官方网站 版权所有 2003-2023
-
您的位置:
- 网站首页
- > 九州(中国)科技有限公司官网
- > 鲸品堂
您的位置:
AIOps,即 Artificial Intelligence for IT Operations,智能运维,将人工智能应用于运维领域,基于已有的运维数据(日志、监控信息、应用信息等),通过机器学习的方式来进一步解决运维没办法解决的问题。
早期的运维工作大部分是由运维人员完成的,这被称为手工运维或人肉运维。很明显,在互联网业务快速扩张、人力成本高企的时代,这种落后的生产方式难以维系。
从BSS3.0到极简受理,在AIOps领域上我们是怎么摸爬滚打一步步迭代的呢?
回到最初的异常处理方案:《BSS3.0-系统优化提升-异常编码规范与异常处理方案》,其流程如下:
通过字典识别异常,查询日志,然后定位问题。由于业务发展、人员迭代原因,上述流程远远不够:
日志规范没有严格执行:编码规范的落实没有监督、各中心代码没有按规范落实、异常编码的定义、调用并未遵循规范。
边界模糊问题找不到人:规范定义业务没有区分角色,营业员可以看,运维人员可以看,开发也可以看。当前由运维人员管理,他必须了解掌握所有错误,才能做出准确的判断。
没有沉淀每次都是新问题:运维事务没有反馈,没有总结。操作成果没有沉淀,没有归档传承下来。
静态字典:只能解释老场景,识别不了新情况,也经常存在人工维护缺失的问题。
被动防御不能主动“自愈”:人肉运维,没有自动化运维手段。
为解决现状存在的问题,我们在业务系统改造过程中,引入了AI智能识别技术。但是AI的引入不是推翻重来,而是兼具业务和AI两方面视野。要使AIOps服务能力与受理系统、运维流程、专家经验紧密结合在一起,从而更精准地定位、更有效地解决受理领域的运维问题。
巨大挑战
受理业务复杂性与相应需求越来越多。特别是分布式架构到来后,一些运维要求,如微服务、中间件、分布式给运维管理带来了巨大的挑战。单纯增加人力已经满足不了现在的运维要求。
储备远远不够
当前运维人员90%的时间都用来识别发现故障的原因。与此同时,各专业运维支撑系统功能也面临开发周期长、闭环流程自动化程度低的技术瓶颈。对此,运营商期望引入AI、大数据分析等技术,实现智能运维,做到主动维护和故障“自愈”。
大趋势和主方向
AIOps平台能力的构建,已经成为各行业智能化演进的一大趋势和主要方向。
智能化运维在实际运用过程中,优先要解决几个关键问题:
故障样本更全面:从java异常架构出发,事先导出所有异常样本
诊断字典更精准:运用NER(实体识别)+solr(搜索引擎)抽取异常特征
智能应用更广泛:辅助识别异常,引导业务受理
样本的全面性处理主要通过下面2步进行:
1)样本库3大来源分别是:应用代码、中间件、业务系统。采集手段不尽相同。应用代码通过java异常框架,由其继承关系,进行全量遍历,搜集全量的异常关键字。中间件和业务系统的手段则是通过日志来获取。
2)得到上述基本数据后系统再进行加工,加工的工具有apache的NLP和Solr。加工的流程如图所示,粗滤→规范→增强→归并→精滤。通过以上环节得到的情景所需的特征keyword。
上述2步作为前提应用到我们运维场景。
在这里我们提供了识别引擎和预定义处理场景。当匹配到我们特征异常出现,预定义的场景功能自动触发,无需人工干预即可自动化完成。
异常汇集:动态字典
搜集系统所有的异常形成特定标识,积累自动化运维规则引擎触发的判定条件。
初始化:Java异常机制
继承是java面向对象编程技术的一块基石,通过继承创建分等级层次的子类。从java架构通过反射获取到全量异常的关键字录入字典库。如图所示,关键代码:
其遍历结果持久化入库,如图所示:
增量汇聚:中间件+业务领域
中间件的异常场景和业务的异常场景不能一蹴而就,需要在日常运行过程日志中挖取和积累。
中间件异常场景与上述java应用相比范围相对固定,但方法不同。我们通过ELT组件归集日志,粗滤筛选出异常特征,录入知识库。在系统中我们形成标准样本库后,以后的项目就可以复用,最大化这块价值。提供样本供其他省份借鉴。
利用NLP手工标识异常
利用ELK进行日志归集在这里不再累述,关注的是怎么从日志中挖掘出异常特征。关键技术在NLP和solr:Apache OpenNLP库是一个基于机器学习的自然语言文本处理的开发工具包,它支持自然语言处理中一些共有的任务,例如:标记化、句子分割、词性标注、固有实体提取(指在句子中辨认出专有名词,例如:人名)、浅层分析(句字分块)、语法分析及指代。这些任务通常都需要较为先进的文字处理服务功能;Solr是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本的处理:
结合数据流处理流程和关键技术的应用最终获取异常特征库
异常识别:辅助运维
这种场景下,抛错内容AI计算,即精准错误定位。有它,明显可以带来以下好处:减少等待、减少沟通成本、划清角色边界从而提高工作效率、减低成本、提升客户体验。想象一下,如果抛出一个异常不能精准定位的反向情景:客户在营业厅等待抱怨,营业员再紧张上报沟通,运维人员一头大......
异常处理:半自动化运维
半自动化运维是异常识别的加强版,在识别的基础上提供预定义处理方案。这些预定义处理可以是api,可以是sql脚本。都是以往运维处理手段日常积累后的程序化手段,并没有直接处理,决定权交给操作人员。也由自动处理的,操控权的级别取决于以往的准确率统计,当准确率达到95%后即可以上升自动调用级别。
准确性:通过对运维专家库的不断丰富,系统处理过程中的异常提示会越来越精准,一线人员在判定错误类型时,也更加易懂和高效。
减少误报消耗:减少角色间的沟通成本,减少运维人员的人力成本。
专家系统
专家系统基于知识的系统,知识库和推理机是其重要组成部分。其三要素:领域专家级知识、模拟专家思维、达到专家级的水平。在极简受理中我们有业务专家、研发专家、中间件专家。将专家的工作思考逻辑转译到知识库中,利用现有的规则引擎提供专业的指导意见。
故障自愈
实时发现告警,预诊断分析,自动恢复故障,并打通周边系统实现整个流程的闭环。
运维正在从后勤保障转变成业务伙伴,从成本中心转变到利润中心,从对基础设施“稳定、安全、可靠”的追求,转变为以支撑数字化业务的“体验、效率”为工作中心。运维顺应这些发展和变化,必须加强对应用程序性能的监控分析和自动化的能力,从而提高运维的敏捷性。
AIOps已然成了辅助企业运维的不二法宝,期望采用AI技术来建立数据之间相关性以及进行预测性分析,获得更准确,更智能的数据结果。
各位同学可以扫描上方二维码,添加胖鲸小助理,回复关键字“进群”申请入群。
大家可以和 鲸品堂 读者一起畅所欲言,和编辑们零距离接触,超值的技术礼包等你领取,超值活动等你参加,快来加入我们吧!