业务点到点性能监控系统的设计与实现

(整期优先)网络出版时间:2017-12-22
/ 2

业务点到点性能监控系统的设计与实现

唐武雷

广州乐庚信息科技有限公司510663

摘要:本论文主要要解决的技术问题是为复杂程度高、规模大、网络节点多的业务系统中的交互问题的快速定位提供解决方案,通过快速定位并解决问题,提高问题定位的工作效率,降低人力成本,提高用户满意度,提高产品的用户感知。

关键词:点到点;性能监控;大数据

0背景技术

随着公司业务的变化和发展,用户量的日益增加,系统的设计日益复杂,规模逐渐扩大,业务节点越来越多,业务系统的性能问题和系统服务质量越来越被重视。在各种应用和服务突起的互联网时代,产品功能已经不是吸引用户的主要因素,用户更注重的是使用过程的感受和服务体验,因此保障好业务系统的性能,保证用户与系统交互过程的平、稳、顺是各信息类产品系统的一项重要工作。本系统为业务系统的性能问题定位提供方法和数据依据,提高用工作效率,可及时发现各类业务在业务处理流程的主要时间耗费节点或主要的业务环节等存在性能瓶颈的点,对发现的问题进行优化和改进,可帮助及时发现业务上线后存在的问题,提高系统性能,用户满意度,降低运营成本。

1系统总体流程

本文方案主要监控业务系统的业务处理性能,通过对业务系统中各种业务的业务类型进行编码定义,在业务系统的各节点系统中对处理的每一笔业务,按业务类型编码定义和指定格式,对业务办理进行日志记录,记录好每一笔日志办理的业务流水号、节点序号、操作页面编号、用户ID、开始时间、URL、业务描述、业务类型、办理渠道、开始处理时间、结束处理时间等信息。再通过大数据系统对各业务节点系统日志进行采集、分析、计算、得到每一笔业务从发起到响应完成在每一个节点系统中的处理时间,和业务请求及响应在物理网络中的流转处理时间。然后对得到的各处理时间进行环比和同比监控,对同一流程中处理时间长的进行告警提示,对同一笔业务在整个流程中的主要耗时进行告警提示。通过使用此系统可以为业务系统中的交互问题的快速定位提供解决方案,能够快速定位业务系统中的问题,从而解决问题,提高问题定位的工作效率,降低人力成本,提高用户满意度,提高产品的用户感知。

2.系统技术方案

本监控分析系统,是一套基于大数据的分析和监控系统,对业务系统的分析是一种旁路的分析方案,业务系统只需要进行普通的日志记录,对业务系统性能影响可以忽略,具体方案包括以下步骤是:

(1)首先,对需要进行分析监控的业务进行定义,定义用于分析监控的数据中各字段的取值作为业务分析的字典,以便后续的分析时通过定义的业务字典进行查询和监控。

(2)按照定义将需要监控的业务的网络请求包,从业务发起到完成操作,在业务系统各个业务节点中流转的过程进行记录,记录好每一笔日志办理的业务流水号、节点序号、操作页面编号、用户ID、开始时间、URL、业务描述、业务类型、办理渠道、开始处理时间、结束处理时间等信息,并按照格式写入到性能日志文件。

(3)部署业务系统性能日志采集模块。

日志采集模块是大数据分析模块的基础,业务系统每天都会产生大量的日志数据。本日志采集系统具有高可用性,高可靠性和可扩展性等本特征。日志采集模块的功能实现是基于目前开源的日志收集系统Flume,图1是本日志收集系统的整体框架图。

整个系统分为三层:Agent层,Collector层和Store层。其中Agent层每个机器部署一个进程,负责对单机的日志收集工作;Collector层部署在中心服务器上,负责接收Agent层发送的日志,并且将日志根据路由规则写到相应的Store层中;Store层负责提供永久或者临时的日志存储服务,或者将日志流导向其它服务器。

Agent到Collector使用LoadBalance策略,将所有的日志均衡地发到所有的Collector上,达到负载均衡的目标,同时并处理单个Collector失效的问题。

Collector层的目标主要有三个:SinkHdfs,SinkKafka和SinkBypass。分别提供离线的数据到Hdfs,和提供实时的日志流到Kafka和Bypass。其中SinkHdfs又根据日志量的大小分为SinkHdfs_b,SinkHdfs_m和SinkHdfs_s三个Sink,以提高写入到Hdfs的性能。

对于Store来说,Hdfs负责永久地存储所有日志;Kafka存储最新的7天日志,并给Storm系统提供实时日志流;Bypass负责给其它服务器和应用提供实时日志流。

(4)部署大数据分析监控和查询模块。

本分析监控和查询模块是基于目前开源的实时日志分析平台ELK实现的,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,它可以用来进行日志进行收集、分析,但是由于logstash在采集上的性能相对于flume差很多,对cpu和内存消耗很大,所以本模块放弃使用Logstash做为日志采集工具,而是选择flume做为前端采集平台,减少对应用服务器资源的消耗,同时提高采集性能。

kibana也是一个开源和免费的工具,可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以通过配置实现日志汇总、分析和搜索重要数据日志。

图2是本模块结合flume采集模块的的整体框架图。

3系统各模块功能及流程

伴随科技的飞速发展,现代企业的生产节奏也越来越快,建立一个实时监测的环境是公司在市场竞争中稳步发展的重要条件之一。当前行业中对业务系统或生产数据的实时监控还没有完全在企业中普及。对信息数据的分析处理模式还是以传统用户主动触发数据管理和分析居多,会导致问题处理滞后,使企业错失机会,利益损失。本论文所研究的业务点对点监控系统正是基于企业以上的需求所提出的。业务点到点监控系统的核心功能是能够实时精准分析告警系统的异常情况,在分析规则引擎的支撑下,结合数据分析动作触发对业务活动进行全面整体实时监控。同时将业务逻辑从代码中分离出来,使用户可按需定制,及时发现系统、产品、流程存在的危险,获得预警或提示信息,以最大的可能提高企业的工作效率和经济效益。根据监控的基本思想,采用分层监控的结构,分别定义了采集代理ysec_agent、分析引擎ysec_server、接收器ysec_hub等多个对象,由此组成点对点监控系统的业务流程。此外还定义了分别对应发送电子邮件、发送短消息、修改数据库值和业务流程启用等动作的功能模块,给企业的管理人员提供提示信息等。以下是各功能模块的流程图。

4结束语

本文实现了业务点到点的性能监控系统,可及时发现各类业务在业务处理流程的主要时间耗费节点或主要的业务环节等存在性能瓶颈的点,对发现的问题进行优化和改进,可帮助及时发现业务上线后存在的问题,提高系统性能,用户满意度,降低运营成本。

参考文献:

[1]靳建彬,秦艺力.基于web的多模式网络监控系统的设计与实现[J].电子设计工程,2012,24:15-19.

[2]朱姝.浅谈网络监控系统的设计思路[J].电脑知识与技术,2012,23:11-15.

[3]张雨桐,梁伟伟.新时代智能化的监控技术浅析[J].工科报,2012.