华青融天战略拓展总监王旭详解 IT 运维的九阳神功
近日,华青融天战略拓展总监王旭在内部分享活动中针对IT运维的九重重要保障进行了详解。
我们的生活和工作,越来越依赖于IT系统,无论支付、办公、吃穿住行……离了互联网和软件,一天也玩不转。当然,与前端应用日益丰富对应的,就是IT系统后台的日益复杂、运维工作的日益困难。
如果你是某单位的IT运维人员,那么下面这些状况一定不陌生:
-周一,网络部门做了负载均衡的升级,业务部门反馈偶尔出现业务响应慢,是升级的问题还是应用系统的问题?
- 周三,文档系统进行了硬件迁移,用户发现文档系统的页面打不开,是网络问题?服务器问题?还是应用问题?
- 周日,大量用户投诉办理业务卡顿,系统的架构非常复杂,毛病出在哪儿?
业务部门和用户眼巴巴等着,你怎么办?如果短时间找不到问题原因,搞不定系统,那这个锅你算背定了。其实,在很多单位,IT运维部门基本就是专业背锅侠。
尤其是,IT监控技术已经从传统的NPM(网络和基础设施监控)进化到APM(应用监控),从数据为中心进化到业务为中心,上面三个例子,都必须由APM技术出马搞定。
今天,就来聊聊IT运维技术的天下大势,教你怎样练就一身张无忌般百毒不侵的九阳神功,重重进阶,金刚不坏。
九阳神功第一重:氤氲紫气
当下将“九阳神功”的练法和口诀传了无忌......丹田里的真气似香烟缭绕,悠游自在,那就是所谓“氤氲紫气”。——《倚天屠龙记》
何谓紫气?正所谓紫气东来,数据来源是也。要想洞察IT系统的运转情况,监控数据的来源当然是基础。这就是九阳神功第一重。
采集IT系统的运行信息,有哪些主流技术?大致有四种:agent、代码植入、主动探测和今天要讲的旁路流量抓包。
简单讲讲前面几种技术的弊端:agent曾经非常流行,但它要求在业务服务器上安装和运行新的软件,本身就会消耗服务器的性能;代码植入,要求对被监控的应用系统进行改造,植入监控代码,这对很多动辄几十套、上百套应用系统的大型单位来说不可能;主动探测,与前两者类似,也是一种消耗系统资源的方法。总之,这三种都是带有一定“侵入性”的技术。
而旁路流量抓包技术,是近年来出现的一种新的监控技术,从网络设备的镜像端口把服务器之间的流量直接导出,接入单独的监控系统,完全不消耗业务服务器的资源,也不需要做应用系统的改造,是一种非侵入性的技术。
而且数据包是最真实的,做不得一点假。通过反向工程,从数据流中重建应用系统之间的一切交互,计算指标,发现问题。
上图就是交换机SPAN抓包技术,通过交换机流量拷贝到一个新的端口,获取所有被监控系统之间的数据流。当然还有很多技术,如为了提高性能可以引入多台TAP SWITCH,以后有机会再谈。
采用流量抓包技术做APM监控的,目前国外主要有Compuware、Riverbed APM等,在国内很多大型机构有使用。国内厂家中,掌握这种技术的不多,华青融天的EZSonar(鹰眼平台)是毫无疑义的扛把子。作为国内厂商当然具有价格实惠、定制开发灵活等优势,而系统的品质也并不弱于国外同行。
九阳神功第二重:易筋洗髓
易筋洗髓是为深厚内功,得此功犹入无人之境。——《倚天屠龙记》
修炼到第一重,获得了旁路数据流量,只是具备了监控的基础,怎样解析它,让数据包说话,从中重建出各个应用系统之间的信息流,计算指标和发现问题,才是挑战所在。
经过系统的报文解析,将杂乱的数据流转化为规范的信息项,正所谓易筋洗髓,改头换面,呈现出所有应用交互信息和指标的本来面目。
很多大型商业机构如银行、证券、运营商等,动辄几十上百套应用系统,有些是标准的商业软件,有些是国内定制开发的行业软件,它们的数据报文格式五花八门,犹如进了联合国,要求监控系统必须有几百种语言的同声传译水平。而且性能也是一个关键挑战,因为每秒都有若干GB的流量汹涌而来,能否及时地解析它们,要求软件的流量工程能力极强。
例如,上面就是一段报文。肉眼一看,如看天书 。但是如果解码引擎合理地配置了报文解码规则,就像大脑内置了一本强大的字典,就能解码报文背后的应用信息,进而计算出各种指标。
有哪些常见的报文协议类型?DNS、FTP、Telnet、ICMP、Syslog、SNMP、HTTP、POP3、IMAP3、DHCP、RSYNC、NFS、RSH、MEMCHAED、REDIS、XML、Weblogic JMS、Tuxedo、XML OVER TCP、EJB、RMI、JSON、SOAP、CUPS、CTG、Oracle TNS、短信通知平台(移动,电信,联通)、MYSQL、DB2……
可见,对于一个APM系统的建设,应用系统报文协议的解析规则是重要一环。一方面,开发商需要具有深厚的积淀,具备丰富的报文解析规则库,能解析常见的商业软件;同时,建设单位需要提供自身的定制化系统的报文规则,供系统配置补充,这方面也必须方便易用。
九阳神功第三重:至阳热气
至阳热气,全力施展可将人焚为焦炭,专门克破所有寒性和阴毒内力。——《倚天屠龙记》
天下武功,唯快不破。
如果系统已经出现了性能劣化,甚至应用已经宕机,你肯定不希望明天早晨才发现。所以,对于应用监控系统来说,性能计算和告警的时效性是关键,第一时间发现问题先兆,听风辨器、及时预警、防患于未然,才是运维的最高境界。业界往往把数据分为热数据(实时)、温数据(warm)和冷数据,对于关键性的业务监控系统而言,对于数据的要求一定是最高热度的,正所谓至阳热气。
例如,上面是一个金融单位的典型的业务监控界面,每个业务板块和业务系统的性能指标实时刷新,当某系统出现问题时,红色告警就会闪现。这些性能指标的更新和告警的判断,要求后台的计算引擎有着最强大的计算和判断能力。
各位少侠要了解,告警的判断是一个非常复杂的问题。如果仅仅是与静态阈值相比较而触发告警,是远远不够的。例如,一家机构的业务量往往具有一定的时间分布特点,如工作日较高节假日较低,上下午会各有一个交易高峰等等,只有具备智能的算法,对一段历史时间内的指标进行动态基线比对,发现指标的浮动超出了一定范围,才判断为异动,触发告警,提请用户注意。
要做到这些,让热气腾腾的性能和告警数据实时呈送到界面,就需要在秒级完成从数据流采集到报文解析到性能指标计算和告警识别。具体技术,各村都有各村的高招,华青融天通过采取不落地的内存计算方式,能够保证数据的秒级处理,在近期一家金融机构的实测中,每秒处理的交易量超过70万笔。
九阳神功第四重:缩骨大法
他心中只一个念头:“这小子比我高大,他能钻过,我当然更能钻过。”想法原本不错,只是有一点却没料到:张无忌已练成了九阳神功中的缩骨之法。——《倚天屠龙记》
缩骨大法者,化大为小,小中见大,见微知著也。
魔鬼往往在细节中。对于业务系统的监控,基本的监控粒度有多大,决定了故障定位的精度。前面给大家讲过监控系统的数据来源,以旁路镜像数据流为最佳选择,数据流中全部业务系统之间的数据流纠缠在一起,剪不断理还乱,必须化大为小,从大的数据流中拆分一个个小的逻辑对象,才能锁定真正的问题。
举个例子,上面是一个的典型银行应用。
粗看起来,每分钟2000笔的交易量,平均响应时间100ms,成功率90%,响应率90%,看起来还不错。大部分业务监控系统,只能做到这一步了。
但如果我们细看不同的渠道发出的请求,就会发现,应用细分为网银、柜面、第三方支付和理财平台四个部分,其中前三个是正常的,但理财平台的成功率和响应率都只有10%,已经是严重故障了。
因为理财平台的这200笔交易,只占了总交易量的10%,问题被其他交易掩盖了。如果这些细微的隐患不及时发现,以后会逐渐演变为更大范围、更严重的问题。
这就是细化监控对象、化大为小、见微知著的价值所在。作为一个运维人员,必须练就一双慧眼,有一套神器,方能及时杜绝小隐患引发的大麻烦。
运维人员使用的软件工具,必须具备细分监控对象的能力。华青融天的EZSonar系统(鹰眼),一个重要特点就是微监控,在数十家金融机构得到广泛应用。
九阳神功第五重:龟息大法
这乾坤一气袋密不通风,他在袋中耽了这许多时候,早已气闷之极,仗着内功深湛,以绵绵龟息之法呼吸,需气极少,这才支持了下来。——《倚天屠龙记》
江湖上有气长命长之说,龟一次呼吸45秒一般寿命500年,人一次呼吸5秒一般寿命80年。要是看见一个人大口喘气,上气不接下气,估计离挂掉不远了。
所谓龟息大法,就是内功高手对生命节奏的掌控。从容淡定,方能应付裕如、行稳致远也。
作为一个IT系统的运维人员,最重要的就是不要让自己被虚假的无意义的信息淹没,忙的四脚朝天,反而忽视了重要的问题。我们经常看到,大量软硬件平台和应用系统不断发出告警信息,快速刷屏,在这种情况下,如何对告警进行高效的精准处理,分级、压缩和降噪,去伪存真,及时识别真正的故障和隐患,就是最重大的课题了。
第一是减少误告警。比如,某一时刻交易量突然降低,但只是暂时性波动,很快又恢复正常,这种异常是没必要告警的。有些批处理也可能导致某一刻交易量突发,这种也属正常情况,往往也不需要告警。
第二是准确把握业务的正常规律,精准地对异常业务流发出告警。这张图显示了对交易量的监控,利用大数据和机器学习技术,根据历史数据产生动态基线,以基线来反映正常交易量的规律,如果真实的交易量与基线的差异过大,则说明发生了异动,此时才触发告警,避免误告警的发生。
第三是提升每一个告警的有效性,减少告警数量和频次,通过告警关联功能找出事件之间的联系,去除告警杂音,让告警更加精准有效。
凡此种种,在告警的处理上要寻找一种平衡,通过智能的算法,反映实际业务的规律和异常事件间的关系,不漏报不误报,让运维人员应对从容。这就是华青融天EZSonar强调的“轻告警”。
九阳神功第六重:壁虎游墙
赵敏笑道:“张公子,你的壁虎游墙功当真了得,这陷阱是纯钢所铸,打磨得滑不留手,连细缝也没一条,你居然游得上去!”——《倚天屠龙记》
一说到墙,当然联想到运维部门的大屏。如今的运维大屏,不仅可视化效果美轮美奂,实时性也可以达到秒级,网络、服务器和应用的问题,第一时间上墙。数字和红绿点线游动跳跃,如同壁虎游墙。
可视化做的好,各种实时数据集中直观地显示,是大屏的最大优点。一般都是从大屏发现了问题,才一步步向下钻取,挖掘到问题的根源,所以一块丰富而直观的大屏、实时性的数据展现、随心所欲的视图定制、方便快捷的钻取功能,是每个运维人员的梦想,也是衡量一个监控系统好坏的关键。
九阳神功第七重:诸毒不侵
这一役中,凡赴水阁饮宴之人,除了张无忌有九阳神功护体、诸毒不侵之外,所有明教首脑,无不中毒。——《倚天屠龙记》
无论硬件还是软件,不出故障是不可能的,关键不是不出故障,而是怎样预先做好充分准备,在故障出现时迅速解决,不让故障给系统造成太大的毒害,所谓练就内功、百毒不侵也。
某天早晨,银行接到客户投诉,大量客户在使用APP转账时出现交易失败,问题在哪里?是网络有问题?还是转账系统有问题?随着IT架构越来越庞杂,一次请求往往涉及到多个服务,有可能分布在几千台服务器上,横跨多个数据中心。为了看清交易整个流程每个环节的性能表现,以业务为中心、端到端部署的全链路性能监控需求由此产生。
举例,上面是华青融天EZSonar(鹰眼)系统一个典型的银行应用全链路图。
我们可以看到,这里有手机银行WEB、手机银行App、手机银行F5、ESB前置(只聚焦手机银行的内容),包括后面的ESB、核心、理财、数据库,都是手机银行相关板块。
从这张图可以清晰地看到,故障是因为理财平台的延时过大导致的,整个业务路径上,都出现了告警。可见,有了全链路视图的帮助,判断分析问题时就可以顺藤摸瓜、一目了然。
九阳神功第八重:金刚不坏
这人是崆峒五老中位居第四的常敬之。他一拳命中对方要穴,见张无忌浑如不觉,大感诧异,冲口而出:“你⋯⋯你已练成‘金刚不坏体’神功。——《倚天屠龙记》
练成金刚不坏功,就像悟空的铁头经过八卦炉的锻造,任你刀砍火烧岿然不动,这当然是运维人员的最高追求。
如前文所说,既然故障的发生不可避免,运维人员的最大任务就是当故障出现时,尽快定位和解决问题,恢复生产,尽可能缩短MTTR(Mean time to repair,平均修复时间)。简言之,就是快定位。
很多运维产品在设计时,缺乏对运维工作的深入理解,结果在使用中变成了花架子,不出事时看看大屏挺漂亮,一旦出事却无法快速解决问题。所谓快定位,关注的是能否真正帮助运维人员缩短MTTR、提高效率,这才是衡量运维产品是否有用的金标准。
要做到快定位,练成金刚不坏之身,需要综合运用前面所修炼的各项武功:
-通过轻告警,准确而及时地向用户发出警报,提示系统发生了性能劣化或者故障,让用户第一时间听风辨器,启动处理流程。
- 通过全链路,快速定位故障发生的部位,并掌控故障影响的范围和路径。
- 通过微监控,深入钻取故障出现的参数和场景,准确发现哪些系统或部门需要采取措施处理故障,及时通知有关人员处理问题,启动应急响应流程,排除故障,恢复系统。
- 通过完备的日报系统,观察每天系统运转情况,全面掌控业务运行的整体态势。
正所谓运用之妙存乎一心,当你修炼到第八重,八重功力已经在体内锻成一体,达到统合综效的境界,各种手段信手拈来运用自如,再复杂的系统也可以从容应对了。
九阳神功第九重:反噬金刚
那胖僧运劲于臂,猛击张无忌胸口,正打在“膻穴”上。张无忌的九阳神功……不但将敌人打来的拳劲反弹了回去,更因对方这么一击,引动了他体内九阳真气,劲上加劲,力贯力,那胖僧立时便即毙命。——《倚天屠龙记》
这九阳神功的最高一重境界,就不是一般人能达到的了。
从目前基于人力的运维到未来机器人开飞船,当然相隔千山万水,需要科技方面的飞跃和无数人的努力,短期还做不到,但有一个领域已经有了巨大的突破,初步成果已经显现,那就是当前热点话题——AIOps,或者叫智能运维。
回顾历史,早期的运维工作大部分是由运维人员手工完成的,被称为手工运维或人肉运维。这种方式在互联网业务快速扩张、人力成本高企的时代,难以维系。自动化运维因此应运而生,基于用可被自动触发的、预定义规则的脚本,执行重复性的运维工作,从而减少人力成本、提高效率。但随着IT系统日益复杂,以及服务类型的复杂多样,基于人为制定规则的专家系统逐渐变得力不从心。
AIOps随之横空出世,它不依赖于人为制定规则,主张由机器学习算法自动地从海量运维数据中学习,不断提炼规则。基于机器学习的大脑,指挥监测系统采集大脑决策所需的数据,做出分析、决策,并指挥自动化脚本去执行,从而达到运维系统的整体目标。
不是由人设置规则处理数据,而是由算法自动从数据中学习规则,就像乾坤倒转、反噬金刚。
AIOps系统的建设当然不是一蹴而就的,目前还处于初期阶段,要不断进阶,逐步达到减少甚至取代人力的目标。
很多企业已经开始尝试在系统运维中引入AIOps的理念,在一些环节上利用机器学习来提高效率,降低对人力的要求。
以华青融天的EZSonar(鹰眼)系统举例,它的告警维度推荐功能就应用了AI技术。通常告警是对一组交易指标异常的反映,但具体是什么因素引起的,例如是某个渠道、某种业务、还是某个主机异常,还需要人为定位分析,在处理告警的应急状态下,人为排查非常费时费力。
EZSonar提供的维度智能推荐功能,就可以从历史运维数据中自动发现规律,自动向用户推荐可能的告警维度,大大减轻人的工作量。
上图就是一个真实故障发生时,系统自动推荐的告警维度,自动发现了对方系统和交易类型,整个故障从告警发生到验证,只用了30秒,对方也在20分钟内解决了此故障。
此外,在动态告警基线、日志智能解析、日志降噪等方面,EZSonar也实现了基于AI的算法,在AIOps之路上迈出了坚实一步。
至此,带大家游历了九阳神功的九重境界。
最后多说两句,无论九阳神功还是倚天宝剑,都必须在内功深厚的人手中才能发挥效力。运维管理系统只是工具,必须与经验丰富的人、完善的管理制度相结合,才能保障IT系统稳健运行。人在不断使用运维系统的过程中,也会反哺运维系统,让它日益强大。内修武功,外磨利器,人剑合璧,方能立于不败之地。
这,才是九阳神功的真谛。
评论