龙空技术网

案例丨​基于大数据的监控平台建设及应用

金融电子化 100

前言:

现在你们对“js 数据处理”大致比较看重,姐妹们都想要剖析一些“js 数据处理”的相关资讯。那么小编也在网络上收集了一些有关“js 数据处理””的相关文章,希望同学们能喜欢,小伙伴们快快来了解一下吧!

文 / 英大泰和财产保险股份有限公司  刘峰耀 张国庆 张凯男

随着保险科技的快速发展,基于微服务的分布式构架不断创新,虚拟化数据中心以及云计算等部署方式不断涌现,创新式保险业务流程不断增多,保险核心系统管理的复杂度呈现指数级增加的态势,即使是最优秀的软件构架师都很难完全把握他们应用是如何运行的。因此,充分利用先进科技建设专业的应用监控平台,建立生产系统的故障发现与IT运维预警机制,制定系统故障预测与故障预防的方案,提高对生产系统故障的及时发现和预测管控能力,对保证信息系统稳定运行和业务持续发展具有重大意义。

应用监控工具技术选型

目前,市场上主流的应用监控工具,以监控数据获取方式的不同,大致分3类。

首先,Agent代理方式(SDK)。根据所监控系统的操作系统、开发环境及软件版本等因素,开发对应的Agent版本,通过相应API调用进行数据采集和监控。该方式可以深入底层运行代码,有效收集全面的J2EE性能数据,缺点是对系统性能有影响,在特殊环境下需要对软件本身的调用方法进行改造;需要适配应用服务器版本和环境,属于紧耦合关系,版本管理复杂;SDK方式无法面向业务交易进行监控,只能看到应用报头,无法实现业务层面端到端全链路监控和单笔交易追踪。

其次,基于日志分析。通过收集和分析交易流水日志,对系统交易进行性能分析。该方式对日志的数据字段可定制化强,无需使用复杂的解码技术。缺点是对于不同设备、不同格式的日志做正规化处理难度较大,一般需要对已经上线系统进行改造,工作量大,项目周期长;占用生产系统的计算、磁盘IO和网络资源,和业务系统是紧耦合关系;监控力度越细,对生产系统和分析系统的压力就越大;日志生成的时效性略差。

第三,基于网络报文分析。基于网络SPAN流量镜像的方式,从旁路镜像获取每笔交易的网络通讯原始报文,通过数据包解码技术,得到全量的业务交易数据,实现对业务交易性能的准实时监控。该方式通过旁路镜像获取数据,对系统本身的运行没有影响,同时网络报文的时效性高,可以保障准实时的监控效果;支持网络数据包的回溯分析;快速进行端到端的业务路径的梳理,在业务路径上进行交易的路径追踪查看。缺点是无法对不对外发包的数据进行分析,对于应用系统本身代码质量和性能不能做细粒度监控,适用在关键的核心业务系统和对稳定性要求高的环境。

考虑到金融领域审慎性决策和稳定性管理的要求,在技术选型过程中,重点考虑了如下选型原则:一是不对所监控系统做大的系统性改造,能够对公司新老架构应用系统进行统一的监控;二是尽量不过多占用所监控系统运行资源,不对系统运行性能造成影响;三是能够对交易链路实现端到端的全流程闭环监控,展示交易关键路径的性能情况;四是能够提前预测系统性能瓶颈,提前进行系统性能优化,能够实时进行故障预警,实现故障的快速定位和交易流程的多维度分析。

通过对比不同监控平台实现方式,根据确定的技术选型原则,确定选用网络流量镜像的方式,构建本项目的应用性能监控平台。

功能需求分析

根据对项目整体需求的分析,确定保险应用性能监控平台主要包括6类功能需求。平台整体结构功能如图1所示。

图1  保险应用性能监控平台结构功能图

监控视图:包括宏观视图、全景视图和云视图。宏观视图实时展示业务系统健康指数,为运维团队及管理层提供宏观的顶层视图,通过简单直观的界面展示每个应用系统的运行状态;全景视图实现端到端的业务流拓扑,极大地提高了定位业务的时效及准确度,可以捕捉和分析业务请求在系统内部各节点之间的全部传输过程,对每一笔业务进行端到端追踪,将业务路径全面可视化展示;云视图实现缩略型的业务流拓扑,能够将几个节点重新规划成一个逻辑系统,对这些逻辑系统间的整体交易或者网络情况有所了解。

仪表盘:可以提供多种仪表盘模板,支持曲线图、柱状图、饼图等常见图表,并且支持拖拽和钻取功能,能够将指定业务通过仪表盘进行实时情况展示。

业务流设置包括业务聚合和业务智能发现。交易聚合功能,能够从后台实现无序、有序的多个业务步骤的合成,或者异步数据构成的同一笔业务,运维人员从监控平台监控到的交易数与实际发生的交易数一致,实现准确的交易数统计;业务智能发现通过对网络数据包的深度解码,自动发现网络中各节点的服务关系,通过设置唯一标识ID,对业务流程进行自动生成及追踪,实现高效的运维管理。

一体化监控包括交易监控、性能监控和智能告警。交易监控实现对重要类型交易数据的实时监控和展示;性能监控使用大数据技术记录用户请求在业务系统内部的每一步处理过程的性能指标,实现精细地单笔应用性能实时监控;智能告警可以针对业务路径设置告警,既可以人工确定预警阀值实现特征类告警,也可以通过机器学习规则实现基于基线的告警。

体验指数:通过统计用户访问系统的响应时间分布情况,计算出该业务系统用户访问体验的流畅程度,该指数越高代表访问的整体情况越流畅,反之则越差;自动基于源IP地址,统计来自各区域的请求的用户体验指数,通过地图展示各区域用于体验指数差异。

监控报表:可以实现多维度统计分析应用监控的指标数据,实现对主要应用系统、重要系统、关键业务的报表展示,关键指标可以根据用户自定义生成日、周、月、季、年等维度报表。

平台架构设计

1.系统架构设计原则

在进行应用性能监控平台的整体设计时,充分考虑适应金融保险领域IT架构规划,应用当前流行、成熟技术,平台易于扩展和维护,主要包括以下5方面:首先,开放式系统,采用SOA的架构设计思想,以服务为导向,结合模块化结构,参数化设计,交易模板定制技术,层次清晰,封装性好,便于系统功能的扩充,维护灵活。其次,采用成熟的中间件技术,确保交易的稳定性、完整性,提高系统整体处理能力和动态伸缩能力。第三,采用平台开发技术,保证系统稳定、灵活,便于扩展,易于维护。第四,系统具备较高的可靠性和可用性,支持24×7小时不间断运行;数据存储采用冗余备份技术;应用系统具备良好的数据备份和数据恢复功能;系统具备高效的处理能力,满足各种技术指标要求;具有高效的联机处理能力和并发处理能力;系统能够与硬件同步升级,当硬件能力提升时,系统能够线性地提升处理能力;具备良好的可扩展能力和可维护性。第五,系统具备良好的应用层次结构,快速响应业务请求;按应用封装,便于系统的组装。

2.应用架构

业务性能监控平台采用B/S架构,前端基于HTML5技术开发,底层基于大数据平台实现,主要包括展现层、服务层、业务逻辑层、引擎层、大数据平台层等五个层次,详见图2。

图2  应用性能监控平台应用架构图

大数据平台层:获取旁路网络镜像流量、自运维数据和外部接口数据,通过对原始数据进行格式化操作,包括数据解析、打标签、完成数据的集成,系统采用Flume实时传输引擎,把数据传输到ES实时数据库,对于静态配置数据,存入到MongoDB当中,方便后续查询数据。

引擎层:构建基于搜索引擎、分析引擎、规则引擎、计算引擎完成对数据的处理,最终实现数据的统计计算。

业务逻辑层:提供系统的基本功能,直观展现业务监控数据,实现运维的动态感知,重点包括:业务墙、交易监控、应用性能、仪表盘和可视化分析等,提供给运维人员通过前端页面直接使用。

服务层:提供基于REST协议ES的数据接口给第三方系统,用于监控数据和用户告警数据的三方传输。

展现层:基于HTML5技术开发,实现运维人员前端操作的所有功能。

3.技术架构

监控平台采用模块化、松耦合的技术架构设计思路,主要分为数据采集(解码探针)、数据处理(Manager分析引擎)和数据存储(SearchEngine搜索引擎)3大模块。解码探针是整个系统最重要的部分,负责将接入的网络流量数据进行解码分析,同时按一定的规则生成结构化的数据,供后台存储分析;分析引擎平台把结构化分析好的数据记录存入搜索引擎(SearchEngine),并根据系统的配置要求,进行数据的基线、告警、统计等计算;SearchEngine搜索引擎技术是目前主流的大数据存储技术,这种技术在架构上,可以快速横向扩展node节点。在技术实现上选择了ElasticSearch开源框架作为大数据平台,通过shard+replica的数据分片复制技术,实现分布式部署集群,极大提供可扩展性和搜索速度。

应用性能监控平台实现

保险应用性能监控平台的实现需要充分掌握保险领域概念和流程,明确保险核心业务系统规模、应用架构、数据流向和部署架构等,规划出所要监控应用系统的宏观视图和全景视图,通过宏观视图,掌握核心业务系统全面运行情况;通过全景视图,捕捉和分析保险业务请求在系统内部各节点之间的全部传输过程,实现保险业务流的端到端监控。通过交易量、成功率、响应率、响应时间这四类关键性能指标,进而实时评估每个系统的健康情况,进行告警信息生成和提示。

同时,应用监控平台的实现,关键是针对不同网络流量数据的解码过程,因此,本节也重点对解码探针的实现逻辑进行了描述。

1.宏观监控视图

保险业务的核心流程包括投承保流程和理赔服务流程,限于篇幅关系,本节只展示了这两个流程涉及应用系统的宏观监控视图,图3是保险主要业务系统宏观监控视图。该宏观视图重点监控了保险公司核心业务主系统之间的调用关系,直观展示了从前端用户到应用中后台服务之间的层级调用逻辑,通过所监控的关键性能指标,实时展示出保险公司主要业务系统的运行情况。

图3  保险主要业务系统宏观监控视图

2.投保全景视图

全景视图重点监控重点业务流程各节点之间的运行情况,本节重点展示车险投保流程的全景视图,该视图展示了车险保单从订单录入、订单保存、提交核保……到生成保单、打印保单的全链路监控节点,直观展示了车险展业流程的系统健康度。

3.解码探针逻辑实现

解码探针根据不同的业务数据报文格式选择不同的报文解码器进行解码,如当前比较常见的XML解码器和JSON解码器,在一些场合,比如和银行或监管机构的交互数据的报文,会用到定长解码器。

于数据包来说,从应用层来看,分为Header(包头)和Payload(包体),Payload往往存在业务信息,如XML协议,Payload就是XML格式的规则,通过正则表达式匹配出指定文件的关键字,转换成格式文本数据,从而实现解码的过程。

结 语

基于大数据的保险业务性能监控平台的应用,使公司业务系统的异常管理由被动变为主动;实现了全景式的业务监控可视化能力;并具备了智能化异常告警及分析能力;实现了快速异常定位及回溯查询,提高了用户的体验,保障了业务连续性。随着国家大数据战略的提出以及企业大数据分析能力的提高,应用监控平台已经不仅仅是作为运维监控使用,它同时也具备业务运营数据的分析能力。因此,下一步,我们将通过分析保险实时交易数据,实现业务运营数据的态势感知,指导企业的运营决策,助力保险企业实现做大、做强、健康发展的战略目标。

标签: #js 数据处理