一种对云主机进行性能监控的监控方法.pdf

上传人:a3 文档编号:4037803 上传时间:2018-08-12 格式:PDF 页数:13 大小:669.85KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410787410.5

申请日:

2014.12.16

公开号:

CN104657250A

公开日:

2015.05.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/30申请日:20141216|||公开

IPC分类号:

G06F11/30; H04L12/26

主分类号:

G06F11/30

申请人:

无锡华云数据技术服务有限公司

发明人:

许广彬; 郭晓; 张银滨; 李德才

地址:

214000江苏省无锡市滨湖区科教软件园6号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供了一种对云主机进行性能监控的监控系统及监控方法,所述监控方法同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的虚拟资源利用状态进行监控以获得监控数据,通过计算节点Agent模块的Libvirt API连接到KVM虚拟机管理程序,并调用其对应的Libvirt API遍历获取所有云主机的监控数据,通过至少一个站点监控模块对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库,告警模块根据用户设置的告警设置规则对所有监控数据进行告警监控。通过本发明,用户可根据监控项与告警策略,全面了解云主机的可用状态,避免监控项目过多时,云主机Agent过多地占用云主机自身的虚拟资源。

权利要求书

权利要求书
1.  一种对云主机进行性能监控的监控方法,其特征在于,同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的虚拟资源利用状态进行监控以获得监控数据,具体包括以下步骤:
S1、通过计算节点Agent模块的Libvirt API连接到KVM虚拟机管理程序,获取当前处于运行状态的云主机列表,并调用其对应的LibvirtAPI遍历获取所有云主机的监控数据;
S2、通过至少一个站点监控模块对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库;
S3、告警模块根据用户设置的告警设置规则对步骤S1至S2中所获得的所有监控数据进行告警监控。

2.  根据权利要求1所述的监控方法,其特征在于,所述步骤S2中站点监控模块对云主机进行的网络可用性监控包括HTTP监控、PING监控、TCP监控。

3.  根据权利要求1或2所述的监控方法,其特征在于,所述站点监控模块部署在云平台环境中的任意计算节点上和/或云平台环境中的控制节点上。

4.  根据权利要求1所述的监控方法,其特征在于,所述步骤S2中所述“至少采用间隔地方式采集并计算云平台监控数据后保存至数据库”具体为:
提取执行步骤S1后所得到的监控数据,至少采集两次计算云主机内的内存使用率、CPU利用率、磁盘读写速率以及网卡速率,并将计算结果保存至数据库。

5.  根据权利要求1所述的监控方法,其特征在于,所述步骤S3中的告警设置规则包括基础项告警设置规则、网络可用性告警设置规则、进程服务端口告警设置规则。

6.  根据权利要求5所述的监控方法,其特征在于,所述基础项告警规则的设置项包括云主机名称、监控项设置、统计周期、统计方法、重试几次后告警、告警通知组、告警方式。

7.  根据权利要求6所述的监控方法,其特征在于,所述监控项设置包括CPU使用率、内存使用率、磁盘读写率、网络出入流量、TCP连接数、系统进程数。

8.  根据权利要求5所述的监控方法,其特征在于,所述网络可用性告警规则的设置项包括监控地址、监控频率、分布检测点、重试几次后告警、响应时间阈值、告警通知组。

9.  根据权利要求5所述的监控方法,其特征在于,所述进程服务端口告警规则的设 置项包括云主机IP地址、监控频率、监控项名称、告知通知组。

10.  根据权利要求1至9中任一项所述的监控方法,其特征在于,所述云主机Agent模块为运行在用户所访问的云主机中的采集程序,所述计算节点Agent模块为运行在计算节点中的采集程序。

11.  根据权利要求10所述的监控方法,其特征在于,所述云主机Agent模块在计算节点映射一个Linux类型的套接字文件,通过所述套接字文件与计算节点进行通信,计算节点上的采集程序周期性向套接字文件发送采集监控数据的执行指令,云主机Agent模块执行监控数据的采集操作,并将采集得到的监控数据通过所述套接字文件返回至计算节点并保存至数据库中。

12.  根据权利要求1、2、4、5、6、7、8、9或11中任一项所述的监控方法,其特征在于,所述数据库包括MySQL数据库、Oracle数据库。

13.  一种用于对云主机进行性能监控的监控系统,其特征在于,所述监控系统包括:云主机Agent模块、计算节点Agent模块、站点监控模块、告警模块以及数据库;
并同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的虚拟资源利用状态进行监控以获得监控数据;
所述云主机Agent模块与所述计算节点Agent模块共同对云主机的虚拟资源利用状态进行监控,LibvirtAPI连接到KVM虚拟机管理程序,获取当前处于运行状态的云主机列表,调用对应的Libvirt API遍历获取所有云主机的监控数据,通过站点监控模块对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库,告警模块根据用户设置的告警设置规则对监控数据进行告警监控。

14.  根据权利要求13所述的监控系统,其特征在于,所述站点监控模块部署在云平台环境中的任意一台云主机上和/或云平台环境中的控制节点上,所述云主机Agent模块部署在云主机上,所述计算节点Agent模块部署在至少一个计算节点上,所述数据库部署在控制节点上,所述告警模块部署在控制节点和/或计算节点上。

说明书

说明书一种对云主机进行性能监控的监控方法
技术领域
本发明涉及云计算技术领域,尤其涉及云计算虚拟化技术中的一种对云主机进行性能的监控系统及其监控方法。
背景技术
在现有技术中,对开放式云主机的虚拟资源利用状态进行监控大多采用在云主机中设置中介台式计算机(Agent)的方式,该中介台式计算机通过执行相应的shell脚本程序或者分析Linux系统/proc下的信息来获取云主机的资源利用状态信息,从而准确地获取到虚拟资源使用情况,以对开放式云主机的虚拟存储资源、虚拟计算资源、虚拟带宽、数据流量等多个项目进行监控。然而,当对云主机性能需要进行的监控项目过多时,执行监控任务的云主机Agent模块会过多的占用云主机自身的虚拟资源,导致用户体验的下降。
有鉴于此,有必要对现有技术中的云主机性能的监控方法以及监控系统予以改进,以解决上述技术问题。
发明内容
本发明的目的在于公开一种对云主机进行性能的监控系统及其运用该监控系统实现对云主机性能进行监控的监控方法,用户可以灵活的按需制定监控项与告警策略,实现对云主机的虚拟资源利用状态的全面了解,避免当需要监控的监控项目过多时,执行监控任务的云主机Agent过多地占用云主机自身的虚拟资源。
为实现上述第一个发明目的,本发明提供了一种对云主机进行性能监控的监控方法,同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的虚拟资源利用状态进行监控以获得监控数据,具体包括以下步骤:
S1、通过计算节点Agent模块的Libvirt API连接到KVM虚拟机管理程序,获取当前处于运行状态的云主机列表,并调用其对应的Libvirt API遍历获取所有云主机的监控数据;
S2、通过至少一个站点监控模块对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库;
S3、告警模块根据用户设置的告警设置规则对步骤S1至S2中所获得的所有监控数据进行告警监控。
作为本发明的进一步改进,所述步骤S2中站点监控模块对云主机进行的网络可用性监控包括HTTP监控、PING监控、TCP监控。
作为本发明的进一步改进,所述站点监控模块部署在云平台环境中的任意计算节点上和/或云平台环境中的控制节点上。
作为本发明的进一步改进,所述步骤S2中所述“至少采用间隔地方式采集并计算云平台监控数据后保存至数据库”具体为:
提取执行步骤S1后所得到的监控数据,至少采集两次计算云主机内的内存使用率、CPU利用率、磁盘读写速率以及网卡速率,并将计算结果保存至数据库。
作为本发明的进一步改进,所述步骤S3中的告警设置规则包括基础项告警设置规则、网络可用性告警设置规则、进程服务端口告警设置规则。
作为本发明的进一步改进,所述基础项告警规则的设置项包括云主机名称、监控项设置、统计周期、统计方法、重试几次后告警、告警通知组、告警方式。
作为本发明的进一步改进,所述监控项设置包括CPU使用率、内存使用率、磁盘读写率、网络出入流量、TCP连接数、系统进程数。
作为本发明的进一步改进,所述网络可用性告警规则的设置项包括监控地址、监控频率、分布检测点、重试几次后告警、响应时间阈值、告警通知组。
作为本发明的进一步改进,所述进程服务端口告警规则的设置项包括云主机IP地址、监控频率、监控项名称、告知通知组。
作为本发明的进一步改进,所述云主机Agent模块为运行在用户所访问的云主机中的采集程序,所述计算节点Agent模块为运行在计算节点中的采集程序。
作为本发明的进一步改进,所述云主机Agent模块在计算节点映射一个Linux类型的套接字文件,通过所述套接字文件与计算节点进行通信,计算节点上的采集程序周期性向套接字文件发送采集监控数据的执行指令,云主机Agent模块执行监控数据的采集操作,并将采集得到的监控数据通过所述套接字文件返回至计算节点并保存至数据库中。
作为本发明的进一步改进,所述数据库包括MySQL数据库、Oracle数据库。
为实现上述第二个发明目的,本发明提供了一种用于对云主机进行性能监控的监控系统,所述监控系统包括:云主机Agent模块、计算节点Agent模块、站点监控模块、告警模块以及数据库;
并同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的 虚拟资源利用状态进行监控以获得监控数据;
所述云主机Agent模块与所述计算节点Agent模块共同对云主机的虚拟资源利用状态进行监控,Libvirt API连接到KVM虚拟机管理程序,获取当前处于运行状态的云主机列表,调用对应的Libvirt API遍历获取所有云主机的监控数据,通过站点监控模块对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库,告警模块根据用户设置的告警设置规则对监控数据进行告警监控。
作为本发明的进一步改进,所述站点监控模块部署在云平台环境中的任意一台云主机上和/或云平台环境中的控制节点上,所述云主机Agent模块部署在云主机上,所述计算节点Agent模块部署在至少一个计算节点上,所述数据库部署在控制节点上,所述告警模块部署在控制节点和/或计算节点上。
与现有技术相比,本发明的有益效果是:通过本发明所示的监控系统及其监控方法,用户可以灵活的按需制定监控项与告警策略,实现对云主机的虚拟资源利用状态的全面了解,避免当需要监控的监控项目过多时,执行监控任务的云主机Agent过多地占用云主机自身的虚拟资源。
附图说明
图1为云主机中所部署的云主机Agent模块的示意图;
图2为本发明中的告警模块进行告警的计算机逻辑流程图;
图3为本发明用于对云主机进行性能监控的监控系统在实施例二中的示意图;
图4为本发明用于对云主机进行性能监控的监控系统在实施例三中的示意图;
图5为本发明用于对云主机进行性能监控的监控系统在实施例四中的示意图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
在详细描述本发明各实施例之前,首先对相关技术术语做阐述与界定。
1、Libvirt:一套支持虚拟化的API集合。Libvirt本身构建于一种抽象的概念之上,它为支持的虚拟机监控程序实现的常用功能提供通用的API。Libvirt起初是为专门为Xen设置的一种管理API,后来被扩展为可支持多个虚拟机的监控程序。
2、QGA(QEMU Guest Agent):QEMU的一个插件,可运行于云主机中。
3、HTTP(Hyper Text Transfer Protocol):超文本传输协议。
4、PING(Packet Internet Groper):因特网包探索器,一种网络诊断工具。
5、TCP(Transmission Control Protocol):传输控制协议。
6、Agent:代理程序。
7、Shell:Linux中的Shell脚本程序。
接下来,通过若干实施例对本发明一种对云主机进行性能监控的监控系统及其监控方法详细说明与阐述。
实施例一
配合参照图1至图3所示,在本实施例中公开了一种对云主机进行性能监控的监控方法。在本实施例中,同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的虚拟资源利用状态进行监控以获得监控数据。具体包括以下步骤:
首先,执行步骤S1、通过计算节点Agent模块301、302的Libvirt API连接到KVM虚拟机管理程序,获取当前处于运行状态的云主机列表,并调用其对应的Libvirt API遍历获取所有云主机的监控数据。具体的,处于运行状态的云主机即为可用的云主机。
进一步的,所述云主机Agent模块10在计算节点20映射一个Linux类型的套接字文件11,通过所述套接字文件11与计算节点20进行通信,计算节点20上的采集程序周期性向套接字文件11发送采集监控数据的执行指令,云主机Agent模块10执行监控数据的采集操作,并将采集得到的监控数据通过所述套接字文件11返回至计算节点20并保存至数据库403中。
具体的,在本实施例中,该数据库403选用为MySQL数据库。
然后,执行步骤S2、通过至少一个站点监控模块402对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库403。
所述站点监控模块402实现的是对云主机的网络可用性进行监控,包括HTTP、PING以及TCP端口监控项目。所述HTTP监控指的是监控云主机站点URL,获得可用性监控以及响应时间。其中,PING监控指的是对指定的云主机进行ICMP PING检测,获得可用性监控以及响应时间、丢包率等。TCP端口监控指的是监控TCP端口的可用性和响应时间。
具体的,在本实施例中,该站点监控模块402部署在云平台100环境中的控制节点40上。
其中,该步骤S2中所述“至少采用间隔地方式采集并计算云平台监控数据后保存至数据库”具体为:提取执行步骤S1后所得到的监控数据,至少采集两次计算云主机内的内存使用率、CPU利用率、磁盘读写速率以及网卡速率,并将计算结果保存至数据库403。
最后,执行步骤S3、告警模块401根据用户设置的告警设置规则对步骤S1至S2中所获得的所有监控数据进行告警监控。
所述告警模块401主要负责对用户所设置的监控告警规则进行实施。用户设置告警规则主要包括基础项监控、网络可用性监控以及进程服务端口监控。
所述基础项监控告警规则包括云主机名称、监控项设置、统计周期、统计方法、重试几次后告警、告警通知组以及告警方式等。
监控项设置包括CPU使用率、内存使用率、磁盘读写、网络出入流量、TCP连接数以及系统进程数。统计周期指的是对每分钟采集到的数据进行统计分析的时间间隔,可以设置为5分钟、30分钟或者1小时。在本实施例中,默认的采集周期为1分钟。
统计方法指的是对统计周期内的采集到的数据进行分析方法,包括平均值、最大值、最小值以及求和值等,如统计周期设置为5分钟,默认采集周期为1分钟,则每个统计周期内共有5个采样数据,按照统计方法对5个采样数据进行统计分析,得出的结果与所设置的告警阈值比较,即可判断出是否触发告警规则。
重试几次后告警设置指的是触发几次后才进行告警通知操作,可以设置为3次或者5次。通过该配置有效的减少了由于监控数据的抖动导致误告警的状况。
告警通知组设置指的是将告警通知发送至某一组具体的接收人。告警方式包括邮件以及短信等方式。
所述进程服务端口监控告警规则包括云主机IP地址、监控频率、具体监控项目名称以及告警通知组。所述进程监控告警规则设置项还包括重试几次后告警、CPU使用率阈值、内存使用率阈值。
所述网络可用性监控告警规则设置项包括监控地址、监控频率、分布检测点、重试几次后告警、响应时间阈值以及告警通知组。
监控地址可以设置为要监控的云主机的域名或者IP地址;监控频率指的监控执行的周期,默认为5分钟;分布检测点设置可以按需选择合适的监测点,优化监测点对云主机进行可用性检测;响应时间阈值指的是所监控的服务响应时间最大值,超过该阈值,则触发报警;重试几次告警指连续几次超过告警阈值,默认为3次,告警通知组指的是告警接收人。
所述网络可用性监控包括可用性计算,计算规则如下:可用性=状态成功的次数/采集总数。假定监控频率设定为5分钟/次,则每小时共有12次采集结果。如果其中2次采集结果的状态显示为失败,则在当前的1小时内的网络可用性为(12-2)/12=0.75,即可用性比率为75%。
实施例二
本实施例中公开了一种用于对云主机进行性能监控的监控系统的一种具体实施方式。在本实施例中,该监控系统包括云主机Agent模块10,计算节点Agent模块301、302,站点监控模块401,告警模块401,数据库403。所述站点监控模块401,告警模块401,数据库403设置于云平台100中的控制节点40中。
在本实施例中,同时通过云主机Agent模块10、计算节点Agent模块301、302以及站点监控模块402采集云主机的虚拟资源利用状态进行监控以获得监控数据。具体的,该虚拟资源包括:虚拟存储资源、虚拟计算资源、虚拟带宽、数据流量,并适用于开放式云计算平台(例如基于OpenStack的开放式云计算平台)。
所述云主机Agent模块10、所述计算节点Agent模块301、302以及站点监控模块402共同对云主机的虚拟资源利用状态进行监控,Libvirt API连接到KVM虚拟机管理程序,获取当前处于运行状态的云主机列表,调用对应的Libvirt API遍历获取所有云主机的监控数据,通过站点监控模块402对云主机的网络可用性进行监控,并至少采用间隔地方式采集并计算云平台监控数据后保存至数据库403,告警模块401根据用户设置的告警设置规则对监控数据进行告警监控。具体的,在本实施例中,该数据库403为Oracle数据库。
如图3所示,其中图3中所示计算节点201和计算节点202指的是图1中所示的计算节点20。所述站点监控模块402可以部署在云平台100环境的控制节点40,或者任意一台可以访问外网的云主机中。用户通过WEB进行监控项及告警策略的配置。云主机监控系统接收到请求后启动监控与告警功能。
计算节点Agent201,202、云主机Agent模块10与站点监控模块402分别进行监控工作,将监测到的数据保存至数据库403中。告警模块401对数据库403中数据进行分析,判断是否触发告警规则。当满足告警条件时,通过用户配置的告警方式发送告警通知至告警模块,从而完成监控告警流程。
具体的,参图2所示,告警模块401首先执行步骤101:读取数据库信息后,跳转执行步骤102:判断是否到达统计阈值;若否,则返回步骤101;若是,则跳转执行步骤103:告警次数加1。然后跳转执行步骤104:判断是否达到重试次数。若是,则跳转执行步骤101,若否,则跳转执行步骤105:发送告警信息并将告警次数清零。然后跳转执行步骤106:判断是否结束告警;若是,则告警结束;若否则返回步骤101继续由告警模块401读取数据库信息。
在本实施例中,该云主机Agent模块10为运行在用户所访问的云主机的采集程序12, 所述计算节点Agent301,302为运行在计算节点201,202中的采集程序。告警模块401的告警设置规则与实施例一相同,在本实施例中不再赘述。
该站点监控模块402部署在云平台100环境中的控制节点40上,该云主机Agent模块10部署在云主机上,该计算节点Agent模块301部署在计算节点201上,计算节点Agent模块302部署在计算节点202上,数据库403部署在控制节点40上,该告警模块402部署在控制节点40上。具体的,在云平台100中,控制节点40与计算节点201、202通过数据库操作语言进行通信以及交换数据等操作。
实施例三
请参图4所示的本发明一种对云主机进行性能监控的监控系统的第二种实施例。本实施例与实施例二的区别在于,该告警模块401设置在计算节点201中。当然也可以将告警模块401设置在计算节点202中,只要保证计算节点201或者计算节点202能够ping通控制节点40即可。
实施例四
请参图5所示的本发明一种对云主机进行性能监控的监控系统的第三种实施例。本实施例与实施例二或实施例三的区别在于,该监控系统包括两个告警模块401a、401b。其中,告警模块401a设置在控制节点40中,告警模块401b设置在计算节点201中。当然也可以将告警模块401b设置在计算节点202中,只要保证计算节点201或者计算节点202能够ping通控制节点40即可。
在本实施例中,该站点监控模块是两个(即站点监控模块402a、402b)。站点监控模块402a设置在控制节点40中,站点监控模块402b设置在计算节点201中。显而易见的,也可以仅在计算节点201中设置站点监控模块402b,而不在控制节点40中设置站点监控模块402a。通过该监控系统,用户可以通过WEB远程选择用哪个站点监控模块(即站点监控模块402a、402b)去采集云主机的虚拟资源利用状态进行监控以获得监控数据。因此,某一计算节点201或202发生网络拥堵或者宕机时,可以通过WEB操作,经由其他健康的计算节点去进行监控数据的采集操作,因此有效地提高了用户体验。
通过本发明所示出的监控系统及其监控方法,用户可以灵活的按需制定监控项与告警策略,实现对云主机的虚拟资源利用状态的全面了解,避免当需要监控的监控项目过多时,执行监控任务的云主机Agent过多地占用云主机自身的虚拟资源。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

一种对云主机进行性能监控的监控方法.pdf_第1页
第1页 / 共13页
一种对云主机进行性能监控的监控方法.pdf_第2页
第2页 / 共13页
一种对云主机进行性能监控的监控方法.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种对云主机进行性能监控的监控方法.pdf》由会员分享,可在线阅读,更多相关《一种对云主机进行性能监控的监控方法.pdf(13页珍藏版)》请在专利查询网上搜索。

本发明提供了一种对云主机进行性能监控的监控系统及监控方法,所述监控方法同时通过云主机Agent模块、计算节点Agent模块以及站点监控模块采集云主机的虚拟资源利用状态进行监控以获得监控数据,通过计算节点Agent模块的Libvirt API连接到KVM虚拟机管理程序,并调用其对应的Libvirt API遍历获取所有云主机的监控数据,通过至少一个站点监控模块对云主机的网络可用性进行监控,并至少采用间。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1