本发明涉及大数据平台监控领域,具体地说是一种用于大数据平台的联动分析系统及方法。
背景技术:
随着互联网+时代的到来,各行各业的数据都产生了爆炸式的增长,如何让数据更有价值,发掘、分析这些海量数据使之间的相互作用形成有价值的信息,是每个企业重点关注的内容之一,通过大数据平台对海量数据进行发掘分析。
大数据平台的复杂性,平台架构及组件的开源性、开放性,以及众多第三方应用的开发,给大数据平台造成了潜在的性能负担。而日常的运维平台比较分散,有些仅涉及主机,有些仅涉及数据库,有些只涉及到应用程序,这样在大数据平台运维时就会面临一个问题,如:在主机资源使用正常的情况下,某些应用的服务异常,或者响应时间过长不能正常访问,或者当应用程序异常时想关联查看该时刻的主机cpu、内存、磁盘io、网络等资源的使用,都没有有效的联动手段。
基于上述,如何实现主机操作系统、数据库、应用程序等大数据平台多个层面的联动分析,是需要解决的技术问题。
技术实现要素:
本发明的技术任务是针对以上不足,提供一种用于大数据平台的联动分析系统及方法,来解决如何实现主机操作系统、数据库、应用程序等大数据平台多个层面的联动分析的问题。
第一方面,本发明提供一种用于大数据平台的联动分析系统,用于对大数据平台进行层面监控,并结合大数据平台的各个层面对异常事件进行联动分析,所述层面包括主机操作系统、数据库、应用程序、中间件和大数据组件;所述分析系统包括:
事件定义模块,用于定义异常事件,并设定用于判断是否触发异常事件的状态规则;
数据采集模块,用于采集每个层面的监控数据,并基于状态规则判断所述监控数据是否触发异常事件,将触发异常事件的监控数据标记为事件数据;
联动分析模块,用于以异常事件为驱动,抓取与所述异常事件相关的多个层面的事件数据,并通过时间线将上述多个层面的事件数据联动、并钻取每个层面的事件数据,汇总与所述异常事件对应的事件数据组成联动数据,并分析所述联动数据形成诊断报告;
数据存储模块,用于存储监控数据、事件、状态规则、事件数据、联动数据以及诊断报告。
作为优选,所述数据采集模块还用于采集每个层面的日志文件;
所述分析系统还包括数据清洗模块,数据清洗模块用于对采集的日志文件进行格式转换,输出统一格式的清洗后日志文件;
所述日志文件以及清洗后日志文件均存储于数据存储模块,且每个层面对应的监控数据和清洗后日志文件组成新日志文件。
作为优选,所述数据清洗模块通过logstath组件对采集的日志文件进行数据清洗。
作为优选,所述数据清洗模块通过logstath组件对采集的日志文件进行数据清洗,包括:
用于对主机操作系统、数据库和中间件的日志文件进行数据筛选,将无价值的垃圾数据清除,并上述筛选后日志文件中数据格式化为统一格式;
对于应用程序的日志文件,用于对应用访问数据按照url、请求时间、请求头、请求体、响应头、响应数据、响应时间、调用关系进行格式化。
作为优选,所述数据采集模块通过编写的采集脚本按照频率采集每个层面的监控数据,所述采集脚本包括但不限于shell脚本。
作为优选,所述数据采集模块基于javaagent和java字节码注入技术采集每个层面的监控数据。
作为优选,所述监控数据包括性能数据和运行状态。
作为优选,所述主机操作系统的监控数据包括但不限于网络流量以及cpu、内存、磁盘、进程及网络的运行状态和性能数据;
所述数据库的监控数据包括但不限于数据库表空间、数据库磁盘以及数据库查询的运行状态和性能数据;
应用程序的监控数据包括但不限于url、sql查询、应用服务以及链路的运行状态和性能数据;
所述异常事件包括cpu异常、内存异常、磁盘异常、网络异常、进程异常、系统异常日志、数据库表空间异常、数据库磁盘异常、数据库异常日志、中间件使用异常、应用程序url耗时、应用程序慢sql、应用服务异常以及应用程序链路异常。
第二方方面,本发明提供一种用于大数据平台的联动分析方法,通过如第一方面任一项所述的一种用于大数据平台的联动分析系统,对大数据平台进行层面监控,并结合大数据平台的各个层面对异常事件进行联动分析,所述层面包括主机操作系统、数据库、应用程序、中间件和大数据组件;
所述方法包括:
定义异常事件,并设定用于判断是否触发异常事件的状态规则;
采集每个层面的监控数据,并基于状态规则判断所述监控数据是否触发异常事件,将触发异常事件的监控数据标记为事件数据;
以异常事件为驱动,抓取与所述异常事件相关的多个层面的事件数据,并通过时间线将上述多个层面的事件数据联动、并钻取每个层面的事件数据,汇总与所述异常事件对应的事件数据组成联动数据,并分析所述联动数据形成诊断报告。
更优的,所述方法还包括:
采集每个层面的日志文件,并对采集的日志文件进行格式转换,输出统一格式的清洗后日志文件,通过所述清洗后日志文件进行运维管理。
本发明的一种用于大数据平台的联动分析系统及方法具有以下优点:
1、在大数据平台的监控中,可将主机操作系统、数据库、中间件、应用程序等不同层面的监控平台相互融合,实现不同层面的监控以及联动分析;
2、对于异常事件,可钻取每个维度的数据,将异常事件追踪到细节,并通过联动分析将性能事件全面剖析、动态关联,为工作人员提供全面的性能问题定位服务;
3、采集主机操作系统、数据库、中间件、应用程序等不同层面的日志文件,对采集的日志文件清洗后与监控数据组成新的日志文件,实现了运维和分析的一体化。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
附图1为实施例2一种用于大数据平台的联动分析方法的流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
需要理解的是,在本发明实施例中的“多个”,是指两个或两个以上。
本发明实施例提供一种用于大数据平台的联动分析系统及方法,用于解决如何实现主机操作系统、数据库、应用程序等大数据平台多个层面的联动分析的技术问题。
实施例1:
本发明的一种用于大数据平台的联动分析系统,用于对大数据平台进行层面监控,并结合大数据平台的各个层面对异常事件进行联动分析,大数据平台的层面包括主机操作系统、数据库、应用程序、中间件和大数据组件。
该分析系统包括事件定义模块、数据采集模块、联动分析模块和数据存储模块,事件定义模块用于定义异常事件,并设定用于判断是否触发异常事件的状态规则;数据采集模块用于采集每个层面的监控数据,并基于状态规则判断所述监控数据是否触发异常事件,将触发异常事件的监控数据标记为事件数据;联动分析模块,用于以异常事件为驱动,抓取与所述异常事件相关的多个层面的事件数据,并通过时间线将上述多个层面的事件数据联动、并钻取每个层面的事件数据,汇总与所述异常事件对应的事件数据组成联动数据,并分析所述联动数据形成诊断报告;数据存储模块用于存储监控数据、事件、状态规则、事件数据、联动数据以及诊断报告。
其中,事件定义模块中内置有基础异常事件,包括cpu异常、内存异常、磁盘异常、网络异常、进程异常、系统异常日志、数据库表空间异常、数据库磁盘异常、数据库异常日志、中间件使用异常、应用程序url耗时、应用程序慢sql、应用服务异常以及应用程序链路异常等。
事件定义模块定义上述异常事件时,设定了用于判断是否触发异常事件的状态规则,例如,判断是否触发cpu异常的状态规则为:cpu90%以上持续10分钟为一个异常事件;判断应用程序异常的判断规则为:某个界面访问超过1分钟为一个异常事件。
数据采集模块中采集监控数据用于实现对大数据平台各个层面性能的监控,采集的监控数据包括性能数据和运行状态。其中,主机操作系统的监控数据包括网络流量以及cpu、内存、磁盘、进程及网络的运行状态和性能数据;数据库的监控数据包括数据库表空间、数据库磁盘以及数据库查询的运行状态和性能数据;应用程序的监控数据包括url、sql查询、应用服务以及链路的运行状态和性能数据。
本实施例中数据采集模块通过编写的shell脚本按照频率采集主机操作系统的监控数据;通过javaagent和java字节码注入技术采集应用程序和大数据组件的监控数据。
数据采集模块采集到监控数据后,根据状态规则,将触发异常事件的监控数据标记为事件数据。例如,如果采集的主机操作系统的监控数据中cpu运行状态为90%或90%以上,而cpu异常对应的异常规则为:cpu90%以上持续10分钟为一个异常事件,则该采集的监控数据会触发异常事件,将其作为事件数据;当在10分钟内采集的监控数据均在90%或90%以上,则形成一个异常事件。
对于异常事件,联动分析模块以异常事件为中心、将整个异常事件进行剖析展示该事件发生时cpu、内存、磁盘io、网络流量、进程、网络状态、数据库、中间件状态、sql执行情况等事件数据,并将上述相关的事件数据通过时间线关联起来,并向下钻取每个层面的事件数据进行深入分析,汇总与异常事件对应的事件数据组成联动数据,并分析联动数据形成诊断报告,通过诊断报告为维护人员提供一站式的性能问题定位服务。例如,对于cpu异常,可以钻取当前状态下,占用cpu使用率较高的进程、再次钻取可以获取该进程对应的应用程序路径,其它层面也可提供相同的功能,最终与应用程序完全联动。
本实施例的一种用于大数据平台的联动分析系统的使用方法为:
通过事件定义模块定义异常事件,如cpu异常、内存异常、磁盘异常、网络异常、进程异常、系统异常日志、数据库表空间异常、数据库磁盘异常、数据库异常日志、中间件使用异常、应用程序url耗时、应用程序慢sql、应用服务异常以及应用程序链路异常等,并设定每个异常事件对应的异常规则;
通过数据采集模块采集各个层面的监控数据,该监控数据为性能数据和运行状态,并根据异常规则判断监控数据是否会触发异常事件,将触发异常事件的监控数据标记为事件数据;
对于异常事件,通过联动分析模块抓取与该异常事件对应的多个维度的事件数据,通过时间线将上述多个维度的事件数据联动、并钻取每个维度的事件数据,汇总与异常事件对应的事件数据组成联动数据,分析上述联动数据形成诊断报告,通过诊断报告为性能问题提供定位服务。
作为本实施例的改进,数据采集模块还用于采集每个层面的日志文件以及实现大数据平台的运维。
由于不同层面的日志文件格式不同,为统一数据格式,该系统该包括数据清洗模块,数据清洗模块用于对采集的日志文件进行格式转换,输出统一格式的清洗后日志文件,
上述采集的日志文件以及清洗后日志文件均存储于数据存储模块,且每个层面对应的监控数据和清洗后日志文件组成新日志文件。
本实施例中数据清洗模块通过logstath组件对采集的日志文件进行数据清洗。具体为:对主机操作系统、数据库和中间件的日志文件进行数据筛选,将无价值的垃圾数据清除,并上述筛选后日志文件中数据格式化为统一格式;
对于应用程序的日志文件,对应用访问数据按照url、请求时间、请求头、请求体、响应头、响应数据、响应时间、调用关系进行格式化。
通过上述系统,可获取各个层面的日志文件,并将日志文件进行清洗通过日志文件的格式后存储在数据存储模块,在数据存储模块每个层面的监控数据和清洗后日志文件组成新日志文件,新日志文件包含了监控数据和日志文件,可实现性能分析以及运维的一体化管理。该改进的系统,可实现对性能问题的联动分析,也可实现常规监控运维。
实施例2:
本发明的一种用于大数据平台的联动分析方法,通过实施例1公开的一种用于大数据平台的联动分析系统,对大数据平台进行层面监控,并结合大数据平台的各个层面对异常事件进行联动分析,上述层面包括主机操作系统、数据库、应用程序、中间件和大数据组件。
如附图1所示,该方法包括如下步骤:
s100、定义异常事件,并设定用于判断是否触发异常事件的状态规则;
s200、采集每个层面的监控数据,并基于状态规则判断上述监控数据是否触发异常事件,将触发异常事件的监控数据标记为事件数据;
s300、以异常事件为驱动,抓取与上述异常事件相关的多个层面的事件数据,并通过时间线将上述多个层面的事件数据联动、并钻取每个层面的事件数据,汇总与上述异常事件对应的事件数据组成联动数据,并分析上述联动数据形成诊断报告。
其中,步骤s100中是定义的异常事件为基础异常事件,包括cpu异常、内存异常、磁盘异常、网络异常、进程异常、系统异常日志、数据库表空间异常、数据库磁盘异常、数据库异常日志、中间件使用异常、应用程序url耗时、应用程序慢sql、应用服务异常以及应用程序链路异常等。
定义上述异常事件时,设定了用于判断是否触发异常事件的状态规则,例如,判断是否触发cpu异常的状态规则为:cpu90%以上持续10分钟为一个异常事件;判断应用程序异常的判断规则为:某个界面访问超过1分钟为一个异常事件。
步骤s200中采集监控数据用于实现对大数据平台各个层面性能的监控,采集的监控数据包括性能数据和运行状态。其中,主机操作系统的监控数据包括网络流量以及cpu、内存、磁盘、进程及网络的运行状态和性能数据;数据库的监控数据包括数据库表空间、数据库磁盘以及数据库查询的运行状态和性能数据;应用程序的监控数据包括url、sql查询、应用服务以及链路的运行状态和性能数据。
本实施例中通过编写的shell脚本按照频率采集主机操作系统的监控数据;通过javaagent和java字节码注入技术采集应用程序和大数据组件的监控数据。
数据采集模块采集到监控数据后,根据状态规则,将触发异常事件的监控数据标记为事件数据。例如,如果采集的主机操作系统的监控数据中cpu运行状态为90%或90%以上,而cpu异常对应的异常规则为:cpu90%以上持续10分钟为一个异常事件,则该采集的监控数据会触发异常事件,将其作为事件数据;当在10分钟内采集的监控数据均在90%或90%以上,则形成一个异常事件。
步骤s300中对于异常事件,以异常事件为中心、将整个异常事件进行剖析展示该事件发生时cpu、内存、磁盘io、网络流量、进程、网络状态、数据库、中间件状态、sql执行情况等事件数据,并将上述相关的事件数据通过时间线关联起来,并向下钻取每个层面的事件数据进行深入分析,汇总与异常事件对应的事件数据组成联动数据,并分析联动数据形成诊断报告,通过诊断报告为维护人员提供一站式的性能问题定位服务。例如,对于cpu异常,可以钻取当前状态下,占用cpu使用率较高的进程、再次钻取可以获取该进程对应的应用程序路径,其它层面也可提供相同的功能,最终与应用程序完全联动。
作为本实施例的改进,还方法还包括如下步骤:
采集每个层面的日志文件,并对采集的日志文件进行格式转换,输出统一格式的清洗后日志文件,通过所述清洗后日志文件进行运维管理。
本实施例中通过logstath组件对采集的日志文件进行数据清洗。具体步骤为:
对主机操作系统、数据库和中间件的日志文件进行数据筛选,将无价值的垃圾数据清除,并上述筛选后日志文件中数据格式化为统一格式;
对于应用程序的日志文件,对应用访问数据按照url、请求时间、请求头、请求体、响应头、响应数据、响应时间、调用关系进行格式化。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。