基于云的应用动态监控方法及系统与流程

文档序号:12692565阅读:593来源:国知局
基于云的应用动态监控方法及系统与流程

本发明涉及计算机软件领域,具体涉及一种基于云的应用动态监控方法及系统。



背景技术:

随着云计算技术的发展和逐渐普及,越来越多的应用被部署或迁移到云上。如何基于云,实现以应用为中心、从底层资源到业务应用的全面监控,成为了当前企业IT部门(信息中心)急需解决的核心难题和关键需求之一。

现有的各种监控方案中,要么是纯粹针对底层物理资源或虚拟机的监控;要么是不管基础资源,只监控中间件、数据库等运行状况的监控,对应用本身运行状况的监控较少,缺少一个从底层资源到业务应用的全面监控方法。另外,绝大多数监控方案的监控对象和监控指标都是厂商定义死的,如只能监控虚拟机、Tomcat、MySQL……等等对象的XXX指标,也就是说监控对象只能在厂商定义的这些对象、这些指标内进行选择,而不能够让用户根据自身需要实现监控对象动态调整和扩展,以及监控指标和页面展示方式的自定义。

相关专利文献1:申请(专利)号为201110199482.4的专利文献提供了一种云计算服务监控系统及方法,其用于对包含有云服务节点的云计算服务系统进行监控;包括至少一个云管理节点,多个监测节点,至少一个主监控节点;其中监测节点根据从主监控节点所接收到的监控命令对云计算服务系统中的云服务节点进行监测,并将监测结果返回给主监控节点;主监控节点用于向监测节点发送监控命令,收集各个监测节点所返回的监测结果,并展示给管理员;云管理节点用于提供管理功能,所述管理功能包括:创建或删除所述云服务节点、主监控节点、监测节点;动态调整所述云服务节点的配置。

该专利文献的不足之处在于:

1.该专利文献主要是实现对云服务节点的监控,缺乏对节点上运行的服务及应用本身的监控;

2.该专利文献所述动态调整的只是调整云服务节点的配置,对监控对象并不能实现动态调整(只能监控节点本身);

3.该专利文献不能实现自定义监控项和监控展示方式。

相关专利文献2:申请(专利)号为201410052286.8的专利文献提供了一种基于云计算的监控管理系统,其包括数据采集单元,其包括:用以实时采集大规模集群服务器中的节点数据的监控客户端,以及三个用于存储所述节点数据的监控数据库;以及故障特征库、故障处理单元;所述故障特征库,用于定义并存储故障特征项,监控客户端将实时采集到的节点数据与故障特征库中的故障特征项作验证,以判断是否为故障,若是,则发送故障指令至故障处理单元;所述故障处理单元,用于响应由监控客户端发送的故障指令,并生成故障处理策略,并发送至大规模集群服务器。通过本发明,可对基于云计算中的大规模集群服务器进行中各节点故障自动地进行数据采集、预警和故障解决,提高了大规模集群服务器的稳定性和可用性。

技术要点比较:

1.该发明主要是实现对云计算服务器的监控,没有说明对服务器上运行的虚拟机、服务及应用本身的监控;

2.该发明强调的监控预警和故障处理,与本发明研究重点并不一致。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于云的应用动态监控方法及系统。

根据本发明提供的一种基于云的应用动态监控方法,包括:

步骤S1:自定义开发所针对监控对象的监控插件;

步骤S2:部署监控插件,将监控插件存放到监控服务器;

步骤S3:制作服务的虚拟机镜像,并打包监控的初始化脚本;

步骤S4:当通过虚拟机镜像创建并启动虚拟机时,触发自动执行监控的初始化脚本;其中,所述脚本自动链接到监控服务器下载监控客户端和监控插件,并令监控插件在虚拟机上运行;

步骤S5:将监控插件采集到的监控数据自动上报到监控服务器;

步骤S6:监控服务器将监控数据存储到数据库。

优选地,还包括:

步骤S7:自定义监控指标和界面展示的方式,从数据库获取与监控指标对应的监控数据,并通过自定义的界面进行展示。

优选地,当应用发生弹性伸缩时,相应的对应用的监控也会自动进行伸缩;对于扩充的虚拟机,自动触发监控初始化脚本实现自动监控;对于收缩的虚拟机,监控服务器自动发现,停止对收缩的虚拟机继续进行监控。

优选地,所述步骤S5包括:

步骤S5.1:通过监控客户端,将针对不同监控对象的监控插件搜集到的监控数据发送给消息中间件;

步骤S5.2:通过消息中间件将监控数据发送给监控服务器。

根据本发明提供的一种基于云的应用动态监控系统,包括:

监控插件开发装置:自定义开发所针对监控对象的监控插件;

监控插件部署装置:部署监控插件,将监控插件存放到监控服务器;

初始化装置:制作服务的虚拟机镜像,并打包监控的初始化脚本;

监控插件运行装置:当通过虚拟机镜像创建并启动虚拟机时,触发自动执行监控的初始化脚本;其中,所述脚本自动链接到监控服务器下载监控客户端和监控插件,并令监控插件在虚拟机上运行;

监控数据上传装置:将监控插件采集到的监控数据自动上报到监控服务器;

监控数据存储装置:监控服务器将监控数据存储到数据库。

优选地,还包括:

展示方式自定义装置:自定义监控指标和界面展示的方式,从数据库获取与监控指标对应的监控数据,并通过自定义的界面进行展示。

优选地,当应用发生弹性伸缩时,相应的对应用的监控也会自动进行伸缩;对于扩充的虚拟机,自动触发监控初始化脚本实现自动监控;对于收缩的虚拟机,监控服务器自动发现,停止对收缩的虚拟机继续进行监控。

优选地,所述监控数据上传装置包括:

监控数据搜集装置:通过监控客户端,将针对不同监控对象的监控插件搜集到的监控数据发送给消息中间件;

监控数据传输装置:通过消息中间件将监控数据发送给监控服务器。

与现有技术相比,本发明具有如下的有益效果:

1)提供适用于云计算的,支持从底层硬件到虚拟设备、容器、数据库、中间件到最终的业务应用的以应用为中心的一体化全面监控;

2)实现监控对象的动态调整,可根据用户需要灵活进行扩展;

3)监控指标和页面展示方式,可让用户实现自定义;

4)实现应用监控的弹性伸缩,新增加的监控对象可自动实现监控,减少了的监控对象,可自动取消监控。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为监控系统的逻辑架构图。

图2为监控方法的步骤流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的基于云的应用动态监控系统,包括:

监控插件开发装置:自定义开发所针对监控对象的监控插件;

监控插件部署装置:部署监控插件,将监控插件存放到监控服务器;

初始化装置:制作服务的虚拟机镜像,并打包监控的初始化脚本;

监控插件运行装置:当通过虚拟机镜像创建并启动虚拟机时,触发自动执行监控的初始化脚本;其中,所述脚本自动链接到监控服务器下载监控客户端和监控插件,并令监控插件在虚拟机上运行;

监控数据上传装置:将监控插件采集到的监控数据自动上报到监控服务器;

监控数据存储装置:监控服务器将监控数据存储到数据库。

展示方式自定义装置:自定义监控指标和界面展示的方式,从数据库获取与监控指标对应的监控数据,并通过自定义的界面进行展示。

当应用发生弹性伸缩时,相应的对应用的监控也会自动进行伸缩;对于扩充的虚拟机,自动触发监控初始化脚本实现自动监控;对于收缩的虚拟机,监控服务器自动发现,停止对收缩的虚拟机继续进行监控。

所述监控数据上传装置包括:

监控数据搜集装置:通过监控客户端,将针对不同监控对象的监控插件搜集到的监控数据发送给消息中间件;

监控数据传输装置:通过消息中间件将监控数据发送给监控服务器。

下面对本发明进行更为具体的说明。

监控客户端(mon-client):用于监控的客户端,安装在被监控主机上,负责将针对不同监控对象的监控插件(plugin)搜集到的监控数据发送给消息中间件(RabbitMQ)。

监控插件(plugin):采集数据的代理(agent),安装在被监控主机上,支持各种语言编写,不同的agent负责监控不同的对象,例如:jvm,server,weblogic,mysql,oracle,等等。

消息中间件(RabbitMQ):监控客户端(mon-client)将监控数据发送到消息中间件(rabbitmq),监控服务器(mon-server)从消息中间件(RabbitMQ)中获取得到监控数据并存入数据库中。

监控服务器(mon-server):监控的服务端,负责从监控客户端获取监控数据,并处理这些数据。监控服务器可处理系统默认的监控数据,也可处理用户自定义的监控数据,并将这两种监控数据存到数据库(mon-db)中。

数据库(mon-db):存储监控配置信息及监控数据。

监控接口(mon-api):监控的后端接口,包括添加监控接口、修改监控接口、生成安装agent的url接口、事件查询接口、监控数据查询接口等接口。这些接口可提供给不同的监控系统进行调用。

监控界面(mon-ui):监控的前端展示界面,可根据用户自定义的展示方式进行展示。

进一步地,本发明方案主要包含开发监控插件、部署监控插件、自动下载并运行监控插件、上报监控数据到监控服务器、自定义监控图表等实现过程。

具体地,本发明提供的基于云的应用动态监控方法,包括如下步骤:

步骤S1:开发监控插件,用户根据自己的实际需要,按照系统约定的规范,通过任何开发语言,自定义开发所需监控对象的监控插件;

步骤S2:部署监控插件,将开发完成的监控插件存放到监控服务器,以便监控客户端能够根据需要到监控服务器下载所需监控插件;

步骤S3:制作各种服务的虚拟机镜像,并打包监控的初始化脚本;

步骤S4:当通过虚拟机镜像创建并启动虚拟机时,会触发自动执行监控的初始化脚本。该脚本会自动链接到监控服务器下载监控客户端和监控插件,并在虚拟机上运行;

步骤S5:监控插件采集到的监控数据自动上报到监控服务器;

步骤S6:监控服务器将监控数据存储到数据库;

步骤S7:自定义监控指标和界面展示方式,从数据库获取数据,并进行最终展示;

步骤S8:当应用发生弹性伸缩时,相应的对应用的监控也会自动进行伸缩,对于扩充的虚拟机、会自动触发监控初始化脚本、完成一系列步骤后,实现自动监控;对于收缩的虚拟机,监控服务器会自动发现,停止对其继续进行监控。

所述步骤S5包括:

步骤S5.1:通过监控客户端,将针对不同监控对象的监控插件搜集到的监控数据发送给消息中间件;

步骤S5.2:通过消息中间件将监控数据发送给监控服务器。

本发明能够实现:1)对基于云计算环境的应用实现从底层基础资源,到数据库、中间件,和上层业务应用的全面监控;2)监控插件可让用户根据实际需要,通过任何开发语言,按照约定规范,进行自定义开发,从而实现监控对象的动态调整和灵活扩展;3)通过自定义监控指标和展示方式,可让用户实现自定义监控;4)应用监控可实现弹性伸缩,新增加的监控对象可自动监控服务器下载插件、实现监控,减少了的监控对象,监控服务器会自动取消监控。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1