作者:中国民生银行信息科技部
孔再华 朱彬 周鹏 王健
金融行业是当今实现电子化发展最靠前的行业之一,商业银行尤其如此。IT建设在此背景下也成为企业重中之重,几乎所有的重要业务都需要信息系统支撑。这对于信息系统的业务连续性就存在非常高的要求。一旦信息系统出现异常或者处理不及时,损失将会非常惨重。因此金融行业的IT运维首要任务便是确保重要业务在运营中断事件发生后快速恢复,降低或消除因重要业务运营中断造成的影响和损失,保障业务持续运营。
商业银行的IT运维面临非常多的挑战:
面对如此大规模的系统和数据需要进行管理,传统的监控和自动化运维存在一些痛点。数据中心现有的性能容量分析手段仅仅做到对性能容量的单项指标监控和进行大致的趋势分析。例如监控CPU、内存、IO、文件系统使用率等信息,然后根据经验人为设定阈值,超过阈值就进行告警。这种自动化运维是“基于人为指定规则”的模式,需要大量人力资源来分析和制定规则。
当告警发生后,还需要人及时登录系统分析是什么原因导致告警的产生。这一点完全依赖处理人的经验和水平。对于性能容量类问题的分析,人力运维是基于专家经验和产品理论的基础,无法快速准确定位到问题根源,在日常处理问题的过程中存在不足。因此当前的运维能力是不能做到对问题根源进行深度和快速分析的。
人工智能(Artificial Intelligence)是计算机科学的一个分支,是包含应用计算机科学、生物学、心理学、神经科学、数学、统计学和哲学等学科的科学和技术。人工智能的应用领域非常广泛,尤其在智能机器人、自然语言处理、图像识别、语音识别、专家系统、智能搜索等应用场景表现突出。“机器学习”(Machine Learning)是人工智能的核心研究领域之一,也是实现人工智能的核心方法。机器学习顾名思义,是赋予机器(计算机)学习的能力,通过分析已有的数据,获取数据的内部规律或者价值,并且实现对新数据的处理方法。
机器学习最强大的能力是分类和回归。众多机器学习模型都是为了实现这两种能力。各种应用场景都是基于这两种能力的应用。分类能力很好理解,例如判断一张图片是猫还是狗。回归则是预测连续的值,例如根据房屋的地理位置、面积等特征预测房价。在IT运维中,我们需要机器学习的分类能力来判断当前指标是正常还是异常,需要回归能力来预测容量等。将人工智能技术运用到IT运维中,将为解决传统IT运维面临的难题带来转机。
人工智能技术运用在IT运维中,提升运维能力,这就是AIOps(Artificial Intelligence for IT Operations)智能化运维。智能运维是在自动化运维的基础上,利用机器学习的能力,改进和完善现有运维方式。智能运维涉及场景也非常广泛,包含异常检测、异常预测、根因分析、舆情监控、异常自愈、智能变更、问答机器人、容量管理和容量预测等。智能运维的核心是挖掘海量运维数据的价值。因此在智能运维建设中涉及到大数据技术、人工智能技术、自动化技术等很多领域。
民生银行一直在探索智能运维的应用和落地。民生银行信息科技部在各个运维环节都在尝试结合人工智能技术改进运维方式和运维能力。其中异常检测和根因分析场景是故障运维的事中和事后处理环节,也是IT运维中最核心的部分。这套智能运维系统通过持续接受系统产生的性能数据,采用人工智能技术,从历史数据中获取规则,生成相关分析方法,为实时数据提供运维分析能力。
前面提到在IT运维中,性能数据的告警方式是通过人为制定阈值结合自动化运维实现的,这种方式有两个弊端。首先相同指标的阈值的定义是普适性的,所有的系统采用相同的阈值进行告警,不能为单独的系统单独设置,只有极少数系统人为调整过;其次是只有人从经验总结过的指标才会设置阈值告警,不熟悉的指标就忽略了。而机器学习的能力可以弥补上述两种弊端。
该系统异常检测功能将会分析每个系统的每个指标的历史数据,产生机器学习模型,并对实时指标进行预测。因为历史数据没有标签,也没有能力去打标签,所以异常检测场景主要采用机器学习里的无监督学习方法,在一群数据分布中找到可疑的点。例如下图例子中,红色的点就是可疑点,需要标记出来。
为了寻找异常点,该系统异常检测功能将会分析每个系统的每个指标历史数据分布,训练出机器学习模型,然后对实时指标进行预测。
在众多机器学习算法中,民生银行实践比较好的算法有如下几种:
快速找到异常问题的根源是在异常处理过程中面临的最大挑战。处理人需要从采集的大量数据分析问题的根本原因,还需要有丰富经验才能做出正确判断。这是比较耗时并且比较容易出错的环节。如果机器学习模型能够快速分析当前数据并帮助处理人做出正确判断,那么处理人只需要快速采取有效措施,大大减少异常问题处理的时间,减少损失。
问题根因分析其实是一个追本溯源的过程。因为机器学习的能力是做预测,也就是依据特征数据判断结果。然而现在的需求是从结果找到影响最大的特征数据。所以这里要求机器学习的算法有逆向的解释性。根因分析主要使用机器学习里的有监督学习算法。民生银行实践比较好的算法有如下几种:
智能运维涉及场景广泛,异常检测和根因分析只是其中比较重要的两个场景。机器学习的算法也适用于很多其他运维场景。比如:
民生银行的智能运维实践还属于起步阶段,当前在异常检测和根因分析方面取得一些阶段性成果,将人工智能运用在其他运维场景也在探索和开发中。
民生银行智能运维平台当前已经上线了智能故障发现与分析模块,包含智能异常检测,自动故障定位和调用链路分析等功能。其中智能异常检测基于无监督学习,无需事先标注。系统全自动训练异常检测模型,定期更新模型参数,算法不断迭代,准确性高,漏报误报少。这里异常检测采用多种模型,包含时序模型,孤立森林,DBSCAN,高斯分布等算法,最后通过集成算法获取最终检测结果,算法容错性高,检测结果更准确。
自动故障定位功能基于多元线性回归,决策树,DBSCAN聚类算法等,分析不同指标之间的关系。一方面量化上下级指标间的关联关系,找到异常时刻贡献度最大的根源指标。另一方面基于聚类算法,找到相同行为的其他指标并展示出来。最终异常定位通过关系图示一目了然,加快故障定位和处理。
民生银行的系统是典型的SOA架构,系统之间调用比较多。因此在故障定位过程中,上下游的关系也变得尤其重要。因此民生银行对系统间访问链路进行监控和分析,展示不同系统的上下游关系。调用链路分析功能支持交易性能分析,差错分析,单笔交易链路分析,下钻分析等分析行为。
机器学习的强大能力和应用前景已经非常清晰。智能运维就是将机器学习的能力充分利用到当前IT运维工作中,提高运维效率。人工智能将为IT运维带来非常大的好的改变。
本文首发在《金融电子化》
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞10
添加新评论2 条评论
2019-05-15 13:42
thirsd: @atpeace331
thirsd: @atpeace331 没想象那么好。现在还过于依赖样本空间的覆盖率,而实例故障数据缺失比较多,单指标和关联预测还行,其他大场景类还是弱
2019-05-13 11:47