jxnxsdengyu
作者jxnxsdengyu2018-07-09 13:46
系统工程师, 江西农信

“六脉神剑”助力打通智能运维的“任督二脉” ——智能运维为多运维技术的“融合体”而非“组合体”和“独立体”

字数 6058阅读 6564评论 5赞 14

0、前言

近年来,随着金融企业的业务规模不断增长,越来越多的运维场景和问题无法用传统运维方法来解决,而运维效率也难以继续支撑业务规模的快速扩张,所以企业运维部门开始更加关注如何解放运维自身的效率,以解决传统运维方法(人工、自动化)所解决不了的问题,智能运维应时而生。智能运维是一种将人的知识和运维经验与各类监控大数据、机器学习技术相结合,开发成一系列的智能策略,融入到运维系统中,并通过自动化的手段,辅助运维人员去完成日常繁杂困难的运维任务。由此定义看来,智能运维体现的是一种多运维技术的融合,而非简单的技术组合或者堆砌,也绝非独立的个体,融合的重点在于数据、策略、流程、执行和可视化的联动,其中数据是智能运维的源泉与基石,策略是分析大脑,流程是联动各平台的中枢,执行是以自动化手段为抓手,可视化将各平台聚集,进行统一直观展现,而简单的组合就失去了智能运维的本质和意义,容易出现运维数据不一致、监控信息孤岛、故障定位不准确、执行不合流程,全局性差等问题,无法真正实现业务、运维系统与人的联动,多运维技术的融合十分必要和重要,下面笔者就这些重点以及彼此间融合的重要意义一一剖析。

1、CMDB——智能运维的数据“基石”

CMDB也就是配置管理数据库,其重要性应处于智能运维体系的核心地位,在整体规划建设智能运维体系时,因放在首位建设,作为数据的基石。然而企业在建立运维管理系统时,最容易忽视CMDB的建设,而是先着手建设监控、流程和自动化体系,再反过头建设CMDB,寻求运维项目建设的效益最大化,或者在建设CMDB过程中,企业的一些认识问题,也容易导致一些问题,比如建立多套CMDB,像硬件管理平台、云资源管理平台、运维流程平台、信息资产管理平台、监控管理平台和架构管理平台等等,这其中每个平台都包含自身角度的CMDB,为各自平台提供数据服务和来源,企业IT架构庞大的数据信息,必然需要这些不同角度的平台来提供数据管控支撑,但各CMDB间的数据联动和数据共享却很少被提及,数据的统一性、一致性容易遭忽视,倘若智能运维处于这样多种杂乱的数据源当中,智能运维所做出的决策,谈何正确和具备指引性? 数据的真实性该信任哪个数据源?倘若我们建立统一的完整的CMDB,将各平台CMDB的共性和异性字段提取出来,从大CMDB的角度出发,共性数据由CMDB下发至各平台,异性数据由各平台推送至CMDB中,通过这个大CMDB实现数据的集中管理,建立CMDB数据共享平台,这样一来,智能运维所需的数据仅仅需要对接CMDB即可,无需每个相关平台都对接,智能运维所产生的基础数据也可推送至这个CMDB数据共享平台,供其他运维平台调用。如此,基础数据才能用活,用对。那么企业该如何做?笔者认为,首先应当合理定位CMDB中数据对象的细度,切勿细分过度,要按照企业IT精细化管理程度而言,不可一口气吃成一个大胖子,比如在CMDB数据维护人员仅一人的情况下,将IT资产的线缆标签也纳入CMDB的范畴,则CMDB的数据运维难度过大;其次CMDB的运维需要专岗和专责,专门的基础数据规划和管理岗,数据的正确性要责任到人,从上到下严格执行;最后清晰界定其他运维平台CMDB数据的边界,哪些可通过自动化采集而来,哪些是人工录入部分,哪些数据必须共享,上送至大CMDB,哪些数据可以独享,如何解决数据人工录入的问题等。

2、T/N/B/APM——智能运维的监控“探针”

要实现智能运维,不同角度、平台的监控“探针”是必须的,这里的“探针”,不是像过去传统那样认为不同层面(如动环、系统、网络、数据库等)的多个监控点,而是按照不同角度的所搭建多套异构的监控平台,比如动环、系统、存储、数据库和网络等监控系统只是面向基础监控角度的监控平台,向上又可延伸为面向用户/终端性能(U/TPM)、网络性能(NPM)、业务性能(BPM)和应用性能(APM)角度的监控平台,为什么要如此划分?一是因为在互联网业务迅速发展的时代,业务开始横向分布,应用开始纵向模块化,网络运维开始延伸至外网,仅仅依靠基础监控平台或者单个监控平台,已完全无法定位故障根因,APP/WEB终端、网络、业务、应用、系统的共同故障诊断已成为常态。因此在现时代运维的背景下,智能运维的首要目标即是将各个监控平台的监控数据信息整合,通过大数据挖掘、分析,结合策略,来定位故障根因,首要的一步就是要实现这些不同角度的监控“探针”,实现真正的端到端的监控,彻底规避某个点监控的缺失造成整个监控链的中断;二是因为现如今监控市场已不再是原先的基础监控或者集中事件监控,而是更加的细分化,向着用户、业务、应用本身的监控发展,做监控的厂商也多如牛毛,在多个细分市场展开角逐。对于企业用户而言,厂商竞争是好事,可以加剧产品更新优化,然而却又容易被厂商带入,无法定位和选择,原因是监控产品太多,角度不一,没有一定的市场调研、POC测试和选型讨论是无法最终选择的;三是因为借助这些不同角度的监控平台,可以为业务发展和风险控制提供实时的统计、分析和决策,监控平台不再只是简单的“监”,更大的意义在于分析和解码,为业务提供价值,如用户画像、用户行为分析、精准营销和风控等。因此,现如今,企业IT的监控范畴实际上大大扩展了,那么企业该如何做呢?笔者认为,首先我们的任务就是界定好这些监控的边界,对T/N/B/APM或者日志监控的范畴界定清晰,不能模棱两可和跨界,每个领域要专用而非通用;其次就是在每个监控领域,进行充分的调研、选择和测试,选择最合需的产品,尽量选择旁路的监控方式而非代理的方式,尽量选择国内大型案例较多市场占有率靠前的产品,尽量选择产品而非定制化软件,监控平台要平台化和可配置化。最后是要有将这些监控进行融合的思想,如不同的监控平台对接智能运维的分析平台,融合才能产出价值。

3、运维大数据——智能运维的决策“大脑”

智能运维需要数据才能有产出,基础配置数据来源于CMDB,分析数据来源于各不同角度的监控平台,通过建立运维大数据平台,来整合所有的基础性能数据、用户终端性能数据、网络性能数据、业务性能数据和应用程序性能数据等指标型数据,事件数据、应用日志数据和系统日志数据等日志型数据,甚至网络报文数据等。指标性数据通过对接大数据的kalfka消息集群,进入spark/storm进行实时流数据分析,例如基线分析、单/多指标性能预测、容量预测和策略决策等,日志型数据进入ES集群,进行结构化处理、统计分析、单日志/多日志字段分析与关联等等,指标性和日志型的历史数据统一存入HDFS中,进一步供大数据挖掘,产出例如告警事件与指标性数据的关联,进行智能分析,得出可能的原因,定位告警源;应用/系统日志上下文历史挖掘分析;告警事件的周期型规律分析;告警成对成组出现分析;告警相关与因果分析;告警事件与变更流程的关联分析等等。运维大数据不仅仅是简单的数据集中化和展示,更深层次的目标是数据挖掘和分析,以此来推进运维工作的自动化和智能化,甚至将运维数据业务化,推进业务创新,提高用户体验。因此,笔者认为,简单的堆积运维技术,不是拥抱智能运维的方式,更难的是融合多种运维技术,实现运维和业务价值。 运维大数据平台的技术壁垒正在于此,然而目前大多数将大数据技术用于运维的厂商均依旧停留在数据的集中收集和单一数据的分析方面,例如指标型数据的基线和预测,通常通过对单一数据源的历史数据按照一定算法模型计算出趋势值和未来可能的值;日志型数据的统计分析,通常对单一日志源中日志进行格式化处理后,对字段或者关键字进行归类统计、多字段的联合统计等;网络报文型数据进行解码、分析、业务字段提取后,对用户行为、异常进行监测等等。毋庸置疑,该方式的确能产生一定的运维和业务效益,但离智能运维的差距依旧较大,最能代表智能运维的场景之一就是故障定位及建议,单一数据源的挖掘后的结果可能只是“现象”,而非“根因”,端到端多数据源的挖掘后的结果才能真正定位问题。例如银行业常见的手机跨行转账业务流转:手机银行-ESB-统一支付,手机银行应用端出现问题,线程繁忙,CPU利用率高,应用端口频繁UP、DOWN,业务量急剧下降,统一支付和ESB业务量正常,按照传统的运维模式,定位在手机银行应用故障,结合大数据分析,定位可能是JAVA程序导致。然而实际情况却是,统一支付因某原因导致应用线程挂起,影响出账,进账正常,造成跨行转账业务受影响,手机银行线程等待跨行转账消息返回,全部挂起。倘若运维大数据融合了所有数据源,真正做到了端到端的大数据挖掘,立即根据上游部分交易故障导致下游的问题策略,排除了事件杂音,准确定位了故障根因。当然,智能运维的场景远不止这么简单,实际运维出现的故障状况和现象复杂得多,多运维技术的融合也许并不能解决所有运维问题,但起码我们走在了正确的路。

4、运维流程平台——智能运维的串联“中枢”

当前绝大部分企业,尤其是金融企业,均已完成由传统纸质运维流程向电子化运维流程的转变,基于ITTL理念所设计的运维流程平台也在各企业遍地开花,相关厂商也是百家齐放,然而流程如何和其他平台紧密衔接与联动逐渐成为运维系统建设中的关键点和难点,比如传统监控所要求的监控、流程、变更、审计一体化,实现监控事件产生、审批到处理、审计的全生命周期,在智能运维时代,同样亟需一个串联中枢来实现各运维平台间的流转,实现企业IT组织架构对运维的管控,没有流程,没有人工审批的干预,任由机器的“智能运维”是不健全的,也是极具风险的。下面举两个案例说明。案例一:多个监控平台同时预警,并将告警事件上报事件集中平台和运维大数据平台,通过智能分析和定位后,发现根因在于某网络交换机某端口出现故障,导致部分业务成功率骤降,应用日志也开始报错等,这时需要立即重启该将交换机来恢复业务,但重启该交换机同时也将影响该交换机承载的其他业务,假如流程平台没有对接智能运维和各监控平台,那么恢复此故障要么挨个上报相关领导,由领导决策,事后再补事后流程,决策者也只能从报告者口头报告中获取决策依据,并无实际相关数据支撑。假如流程平台对接了其他运维平台,故障事件和相关决策数据已自动化通过运维大数据上送给了流程平台,领导决策有了依据,通过数据,知晓了当前的实际情况和执行操作可能带来风险,这时下出的决策才真正符合实际情况,也符合监管要求,事后审计也有据可查;案例二,某业务系统运行时,突然业务响应时间较高,运维大数据结合指标性数据和日志型数据立即定位了故障根源,为业务虚拟机所在的服务器压力较大,出现多虚拟机争抢资源的状况,这时需立即通过云平台或自动化运维平台将该虚拟机在线迁移至其他物理机或者关闭部分重要性不高的虚拟机,此时如果对接了流程平台,相关操作经过审批后,自动恢复了业务的运行。结合这两个案例,笔者认为,智能运维与运维流程化不是矛盾而是相互融合的两个个体,智能运维需要运维流程化作为支撑,通过将智能运维以节点形式添加至流程链中,辅以人工干预和指导,将智能运维领上更高一个台阶;同样运维流程化需要智能运维的数据和决策为参考依据,推动流程的合理化和健康,真正实现运维事前预警,事中决策和变更,事后审计的一体化。

5、自动化运维——智能运维的执行“利器”

自动化运维在智能运维体系中也是必不可少的部分,智能运维需要自动化运维平台实现决策的最终落地,同时减轻运维人员的工作压力。单一的自动化运维绝对不是智能运维,智能运维需自动地结合监控的“探针”数据和基础配置(CMDB)数据,具有丰富的自主决策和判断的能力,同时也具有自动化执行的能力,而自动化运维是仅仅只有简单的判断逻辑或者需要人工的数据和智慧的输入,才能获取输出。所以自动化运维现阶段为止,只是适合大批量辅助运维人员执行常规的运维操作,将操作脚本化,减少人工执行命令的时间成本,但并不能真正“自动化”,因为它没有判断和决策的能力。智能运维则是充分发挥了数据、数据挖掘与处理、机器学习的价值,使得自动化运维更有“灵魂”,随着将来AIops技术的升级,笔者相信智能运维会更加智慧,成为运维人员不可获取的一部分。那么企业在智能运维时代该如何建设自动化运维呢?笔者认为有以下三点:一是将运维操作场景化,哪些场景需要自动化,常规的比如投产、补丁更新、巡检、查询配置、安装系统及软件等,智能化的比如资源横纵向扩展和迁移、业务系统的容灾切换、异常问题的业务恢复等;二是将自动化运维平台化和服务化,以开放的态度兼容新的自动化场景,以服务的形式供其他平台调用,智能运维根据不同决策策略调度不同的自动化服务;三是把控自动化运维执行的安全性,自动化场景的上线、更新必须经过充分测试和审核,正式执行前需要预执行,执行时需要流程审批,执行后需要有详细的执行报告,包括耗时、中间过程、结果、甚至包括执行前后业务运行情况等。

6、IT监控可视化——智能运维的高效“指挥”

如前面笔者所描述,智能运维的建设引入了大量专业的监控平台,这些监控平台的引入,一方面极大丰富了我们的管理信息,但另一方面也带来了大量冗余的告警,虽然运维大数据可以将多数据源整合,智能分析出可能的故障点,并将事件告警关联多指标和日志数据,但却无法在整个系统架构层面直观展示该故障点所处的位置,可能带来的后果及隐患;另外在告警风暴来临时,一线运维人员要在此风暴中疲于奔命,容易忽略关键告警,因为多告警间关系是极其复杂,大数据的智能化程度无法覆盖该场景,导致定位准确性存疑,这时则需要人工介入,而运维人员技术细分化,无法站在全局性的角度思考问题的根因。因此企业需要一个高效的“指挥者”,以可视化的角度,让运维人员从整个IT架构或者应用系统架构的角度,清晰直观掌握各组件的运行状态,消除运维过程中不同角色之间的认知偏差和监管盲区,实现管理透明,促进运维管理从传统的黑窗口式运维走向可视化和智能化运维。笔者认为,IT监控可视化解决的实质问题是运维“直观化”,该平台并非需要进行数据分析和处理,而仅仅是数据的集成,如将所有监控平台、流程平台、云平台、短信平台和运维大数据平台等等异构的运维平台进行数据汇集,结合高效、友好的视图工具,灵活的进行IT视图组合和钻取,将“数据”与“图”联动起来。而运维大数据解决的实质上是解决的是数据的分析和决策,虽然这两个平台都进行了数据整合,但其本质是不一样的,运维大数据同样也作为提供数据的一方,供IT可视化展示,这两者在智能运维体系下,缺一不可。

7、结语

罗马并不是一天建成的,智能运维的建设也并非一朝一夕之事,它是一个运维体系的建设,涉及企业IT运维的方方面面,缺一不可,同时它也是一个多运维技术融合的体系,在建设之初,我们就要合理、统一规划,逐步搭建,尽量用平台化、松耦合、统一化的思想去指导智能运维的建设。相信随着人工智能技术的进步,智能运维技术的发展与成熟,运维将迈向更高、更新的高度。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

14

添加新评论5 条评论

雪山飞狐ZZB雪山飞狐ZZB技术总监, 某IT企业
2018-07-15 17:31
学习了,感谢分享
thdk78thdk78研发工程师, 吉林省汇新诚自动化技术有限公司
2018-07-10 12:06
爬格不宜,支持同行。
koyokoyo系统运维工程师, 苏格集团
2018-07-09 16:25
请问,博主,文章可以转发吗?
ppqqppqq网站架构师, ppqq
2018-07-09 15:17
一堆概念,不实用

koyo@ppqq 问题是你连概念都不知道

2018-07-09 16:28
wuwenpinwuwenpin软件开发工程师, 南京
2018-07-09 14:27
感谢分享!
Ctrl+Enter 发表

本文隶属于专栏

趋势观点
本专栏的文章全部来自国内外行业或领域一线最强实践专家的深刻洞察,他们的分享如同为正在摸索前进的更多同行和企业带来一盏明灯。他们的观点也为企业迎接趋势挑战、克服各种困难提供了最好争议的标的。希望有更多一线最强实践专家加入趋势观点栏目,你们是推动中国企业IT应用最值得尊敬的人。

作者其他文章

相关文章

相关问题

相关资料

X社区推广