【IDCC2019】中国民生银行毕永军:金融数据中心智能运维的探索和实践
根据刚才画出来的图,发现可用性发现里面有单指标的异常检测,对日志有些异常检测,影响分析的时候会对交易进行多维分析,看看到底哪些交易、哪些点出问题了。另外一个是跨系统,多个系统之间做故障传播分析,通过分析和排查把所有监控指标汇聚到一起,看哪些监控指标产生了异常,找一些蛛丝马迹做匹配。最后刚才讲过自动化流程,通过自动化流程把既定操作步骤串起来解决问题。这是整个过程。 后面我们看一下中间做的成果,刚才讲到了几点:1、对于可用性故障发现希望发现及时还不能漏报少报,我们就从这个出发抓对业务系统来讲、对于用户体验的关键性指标,可用性指标,交易率、成功率、响应时间等等,从这个看有没有异常,这个做了一些算法,这种算法看起来以前也有类似的简单的算法,像3sigma、LOF、孤立森林,在特定情况下产生效果,有些情况下会产生误解,所以我们设计的时候采用GBRT回归接待算法,中间加一些处理,包括跑批时长、剑锋、偏移、节假日的尖峰等等。 自动运维给我们带来一些好处,这个系统响应率偏低,高级系统会设一个阈值,地于95%告警,系统出恩情到95%之间时间还很长,我们做的监测系统大概能提前一个小时发现问题,这一个小时还是非常宝贵的,能够解决很多问题。还有一个,系统出现问题的会产生告警风暴,这时候我们怎么做一些进一步的分析呢?这个例子是我们举的交易量的分析,我一个系统对外提供服务,比如提供500个服务,但是中间可能个别服务出现问题了,这时候看到系统不正常,但是要排查这500个服务找哪个服务有问题需要花很长时间,这时候我们怎么做?把这些交易数据网络传输做出来之后,把数据通过交易的实时分析可以对它进行区分,区分到每个不同的交易类型,比如几个计费服务,银行系统做有些中间服务要收费,计费系统就是计价的,这时候我们看发生告警,告警说某个服务响应时间低于多少,另外对于主机也做了细分,是哪几台主机有这个问题,当人看到这个信息的时候会帮你排除掉很多,省掉很多排他问题的时间,让你快速的找到问题的原因。 前面杨总也提到护网行动,特别金融行业,今年护网行动持续一个多月,我们很紧张,都在7×24小时盯着看这个事情,我们智能运维在这个过程当中也做了一些贡献,刚才我们做检测的时候发现它现在有些特殊性的攻击,前面大家知道传统做安全防护有防火墙,在交易层面会做交易过滤,但是伪装成正常交易发到服务器上来,服务器负载能力是有限的,一定会把你搞垮,我们这时候发现它去查新客户信息的模拟一个正常交易过来的特别多,从它的来源是啥,这时候我们就能很快锁定攻击的IP,把攻击的IP封掉,缓解这次的网络攻击,这是一个例子。 第三个是多维故障筛查,我们知道哪怕拿手机的交易来看,我们做个转账维度信息很多,手机哪个分行,做跨行转帐、转给谁,会发现很多信息,但是当故障出现的时候要去看,比如通过人行系统做一个跨行转账,某对手行系统出问题了,其他行都是好的,就这个行有问题,这时候我们要准确快速的区分出来哪个行的系统可能出问题而不是我们行的系统有问题,这是我们要做故障分析去看。包括一些交易上,下面一个例子,比如我们做抢购,黄金当时涨价了,很多人都去实物黄金、纸黄金通过互联网渠道去买,发现这个交易量容易上升,上升之后互联网渠道一般负载能力比较强,会到后端系统上去,这时候要对后端系统做重要的保障。 简单讲一下它的原理,主要还是在交易层面,从交易明晰提取维度来,形成交易明晰的维度库,根据维度库信息、事件出发来的信息进行多维定位,根据渠道,所属银行、交易明晰黄金购买基本上确定了故障点。 另外多维故障异常定位是一个例子,这个例子提前十个小时就发现问题,发现个别交易存在无响应的交易,无响应交易集中在某个交易网查询交易明晰有个源系统,这就比较好的定位问题了,跟源系统的人沟通解决,这个可以提前十小时定位问题,这个图因为当时还没有正式投产,在试运行过程当中,是事后复盘的图可以看到效果,理论上说投产了大家关注这个东西就不会有降下去的情况出现了。 多维故障筛查的时候,交易出故障之后我们做筛查这个例子是做理财交易,大家知道现在经济不好,国家也降息,美国也降息,欧洲也降息,银行有比较好的产品锁定高利率的就是大额存单,另外像有些高利率的理财产品,我们当时发现突然系统响应率下降了,因为晚上但是都抢大额存单,但是大额存单产品是有开放时间的,10点钟放出来才去买有一定的额度,在此之前去抢发现产品没有开放但是对于系统的压力已经过来了。 刚才讲的基本上是个单系统的问题,实际上我们刚才讲的微服务系统之间越来越复杂,很多交易全是跨系统的,跨系统的就有个问题,特别是后端系统出问题的时候发现前端手机银行网银各方面都会出问题,到底问题在哪儿呢?每个人负责自己的系统肯定上去一顿查,在查的过程中信息沟通也没有那么顺畅,所以我们做故障传播,希望快速当告警出现的时候就能定位哪个系统出现问题就能集中精力检查这个系统出现的问题,提升效率。 我们做的方法是构建一些国家TOP与系统的调用关系,以及故障的传播关系建立相应的信息,当故障出现的时候根据TOP信息做计算,推荐出可能的TOP3系统帮助人进一步做定位。 这个例子是十多套系统展示有告警,TOP关系就可以分出来,定位是调用的最底层的系统出问题了,这样花的时间比较少,最后涉及到指标定位的时候关联过去,看这个系统到底出现什么异常,发现有异常系统指标,当时是我们数据库的某个节点出问题,这样快速的定位到根源。 另外一个是监控指标的排查,现在监控指标非常多,出了问题怎么查,这时候可以通过人工智能进行分析,把系统指标分析出来,哪些类别哪些指标出现异常可以关联起来。做法就是通过对每个指标做异常度的评价,因为大多数指标特别是性能类的容量指标是比较稳定、比较有规律的就看异常,出现异常就打分,通过机器学习的算法打分高的排前面,找的时候发现TOP的是什么情况,右下的图能看出来出了问题,所有服务器某一指标上都出现了异常,这样可以帮助我们快速的定位问题。这里一个例子,当时某个系统响应时间增加,这边的定位结果是定位出来是磁盘繁忙,因为我们分运维专业,银行数据中心一般有应用运维的,下面会有系统的、网络的,要去做跨专业要找其他人帮你看这个事情,有这个系统之后关联起来了,出现问题发现现在磁盘有问题,马上找存储的人解决这个问题,存储的人一看确实业务量比较大,存储前端口比较繁忙,后续优化一下分布一下负载量。这是我们碰到的一个典型的例子。 还有某个系统响应率失败率下降的时候,我们通过繁杂的指标里面找到是某一个进程出问题了,一个系统里面的进程也是很多的,可以准确定位到出问题的进程。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |