一种基于数据压缩的可扩展的监控方法及系统的制作方法

文档序号:6401053阅读:256来源:国知局
专利名称:一种基于数据压缩的可扩展的监控方法及系统的制作方法
技术领域
本发明涉及大规模分布式系统的监控领域,具体涉及到一种基于数据压缩的可扩展的监控方法及系统。
背景技术
为了有效的管理分布式计算系统,操作者必须了解当前系统及应用的行为。这就需要不间断的进行监控以提供给操作者该系统的当前状态。当计算机系统的结点规模扩展时,系统中的任何位置都可能变成瓶颈。因此,一个监控系统应该具有良好的可扩展性,以提供实时的监控数据。数据收集时间间隔的粒度是监控系统的一个挑战。若时间粒度太粗,则获取的信息不能实时的描述出计算系统当前状态;若时间粒度太细,会增加计算系统的负载,使监控系统的扩展性降低。而且,同一个时间粒度,对一些度量可能太粗,但对其他的一些度量可能又太细。所以一个监控系统中,时间粒度的选取依赖于度量特性。现有技术中存在一个用于分布于全球的计算 机群(PlanetLab)的监控系统CoMon0 CoMon是以中心化结构组织的,其实现包括两个守护程序:切片中心守护程序(Slice-centric daemon, SCD)和结点中心守护程序(Node-centric daemon, NCD)0 每个结点上均运行着S⑶和NCD,S⑶聚集每个切片中所有进程消耗的资源。NCD通过操作系统提供或其他工具测量获取所在结点的状态信息。用户可以通过网络浏览器进行访问这些数据。每5分钟进行收集所有结点的信息,并将该信息写入相应的文件中。然而,中心化的结构限制了监控系统的扩展性。而且5分钟的时间粒度对有些指标太粗,而对另一些指标又太细。现有技术中的Chukwa是一个监控和分析大型分布式系统的数据收集系统。Chukwa是在Hadoop (—个开源分布式系统且在其上实现了 MapReduce: —种用于大规模并行计算的编程模型)上层进行实现,且保留这Hadoop的扩展行和健壮性。Chukwa是通过采集器和收集器来实现数据的收集的。收集器收集其所在结点上的状态信息,包括Hadoop日志和任务进度等。每个收集器收集来自数百个主机的数据,并将其全部写入由数据块和表示块来源及格式的元数据组成的单个文件(sink file, SF)0收集器定期的关闭他们的SF,并将其重命名以标记为可处理,并重新写新的SF。然后Hadoop周期性的执行两个MapReduce作业:第一个作业是仅将所有的SF进行存档;第二个作业是将存档的数据解析为结构化数据,并保存到Hadoop分布式文件系统(HDFS)。然后用户可以以MapReduce作业的形式对这些结构化数据进行分析。Chukwa依赖于Hadoop平台,关注的是大量日志文件的分析。而现有技术中还存在一个用于大规模并行和分布式计算环境的监控系统,该系统也是以层次结构进行监控。该系统主要包括三个层次:后端进程(Back-end process, BE),中间进程和前端进程(Front-end process, FE)。BE运行在需要监控的节点上,进行数据的收集,然后将数据发送给中间进程或直接发送给FE ;中间进程对数据进行聚集、分析和过滤。然后将处理后的数据发送给FE ;FE将接收到的数据存入数据库或直接显示在前台,用户可以使用结构化查询语言(Structured Query Language, SQL)访问数据库,以获得计算环境的历史状态。该监控系统内部通信使用的是自定义的格式,与gangl ia系统相比,减少了由XML格式增加的传输量。但该监控系统收集数据的时间粒度由用户自己指定,而且没有考虑不同度量所需时间粒度的不同。现有技术中的一种压缩监控数据的方法把节点分为工作节点和管理节点且把监控数据的属性分为两类:节点间属性(比如网络延时和带宽等)和节点内属性(比如CPU利用率、内存使用率、磁盘信息等)。管理节点分别周期性的收集每个工作节点的节点间属性值和节点内属性值。对于节点间的属性,该方法指出如果两点之间的属性值(如节点A到节点B的属性值和节点B到节点A的属性值)相等,所以只需发送其中一个属性值即可。对于节点内属性,该技术将所要监控的所有工作节点划分为块,每块具有相同的节点数量,首先管理节点收集所有工作节点的节点内属性,收集若干次数后,管理节点对每个特定块(设为块A)搜索是否存在一块的节点内属性值与其相似,若存在这样的块(设为块B),则块A在以后每次发送其节点内属性值时先于块B的节点内属性值进行比较,若相差在一定范围内,块A本次就不向管理节点发送其节点内属性值,管理节点就将块A的节点内属性值设为块B的节点内属性值,反正,块A将其节点内属性值发送给管理节点。当块A多次发送给管理节点其节点内属性值,则管理节点就从新查找块 以代替块B。在动态环境下,管理节点需要对块A频繁的查找替换的块B,这时管理节点的开销很大。

发明内容
为解决上述问题,本发明提供了一种基于数据压缩的可扩展的监控方法及系统,本发明通过压缩监控数据、自动调节数据收集时间粒度,减少了网络传输的数据量,提高了监控系统的扩展性。为实现上述目的,本发明提供一种通过压缩数据提高监控资源扩展性的方法,该方法包括:步骤1,数据收集模块收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;步骤2,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;步骤3,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;步骤4,数据聚集模块接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;步骤5,数据存储模块分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。
其中,所述数据报文的第一位表示信息属性,第一位为I表示该数据报文的数据为静态信息,第一位为O则表不该数据报文的数据为动态信息;所述数据报文的第二位表示信息来源,第一位为I表示该数据报文的数据来源于数据收集模块,第一位为O则表示该数据报文的数据来源于数据聚集模块。进一步的,所述步骤4包括:步骤41,数据聚集模块接收数据报文msgl并初始化一个新的数据报文msg2,将msg2的第一位设定为msgl的第一位,第二位设定为O,然后判断msgl的第二位,若为I,表示该数据报文来自数据收集模块,执行步骤43,若为0,表示该数据报文来自数据聚集模块,则执行步骤42;步骤42,将msgl分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行步骤43;步骤43,判断msgl或所述多个子数据报文的第一位,若为1,表示msgl或所述多个子数据报文的数据为静态信息, 执行步骤44,若为0,表示msgl或所述多个子数据报文的数据为动态信息,则执行步骤45 ;步骤44,将msgl或所述多个子数据报文解析为节点的静态信息,执行步骤46 ;步骤45,将msgl或所述多个子数据报文解析为节点的动态信息,执行步骤46 ;步骤46,将步骤44或步骤45解析所得的信息追加到msg2中,执行步骤47 ;步骤47,将msg2发送给数据存储模块或上层的数据聚集模块。进一步的,所述步骤5包括:步骤51,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;步骤52,判断msg的第二位,若为0,则执行步骤54,若为1,则执行步骤53 ;步骤53,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;步骤54,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。其中,所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。为实现上述目的,本发明还提供一种通过压缩数据提高监控资源扩展性的系统,该系统包括:数据收集模块,用于收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;比较模块,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;发送模块,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;数据聚集模块,用于接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;数据存储模块,用于分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。其中,所述数据报文的第一位表示信息属性,第一位为I表示该数据报文的数据为静态信息,第一位为O则表不该数据报文的数据为动态信息;所述数据报文的第二位表示信息来源,第一位为I表示该数据报文的数据来源于数据收集模块,第一位为O则表示该数据报文的数据来源于数据聚集模块。进一步的,所述数据聚集模块包括:初始化模块,数据聚集模块接收数据报文msgl并初始化一个新的数据报文msg2,将msg2的第一位设定为msgl的第一位,第二位设定为O,然后判断msgl的第二位,若为I,表示该数据报文来自数据收集模块,执行聚集判断模块,若为0,表示该数据报文来自数据聚集模块,则执行聚集分割模块;聚集分割模块,将msgl分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行聚集判断模块; 聚集判断模块,判断msgl或所述多个子数据报文的第一位,若为1,表示msgl或所述多个子数据报文的数据为静态信息,执行静态解析模块,若为0,表示msgl或所述多个子数据报文的数据为动态信息,则执行动态解析模块;静态解析模块,将msgl或所述多个子数据报文解析为节点的静态信息,执行追加模块;动态解析模块,将msgl或所述多个子数据报文解析为节点的动态信息,执行追加模块;追加模块,将静态解析模块或动态解析模块解析所得的信息追加到msg2中,执行处理模块;处理模块,将msg2发送给数据存储模块或上层的数据聚集模块。进一步的,所述数据存储模块包括:存储分割模块,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;存储判断模块,判断msg的第二位,若为0,则执行第二插入模块,若为I,则执行第一插入模块;第一插入模块,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;第二插入模块,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。其中所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。本发明的有益功效在于,本发明通过访问数据聚集数据库获得计算环境的当前信息或历史状态,然后利用数据压缩,对每个监控节点的任一种度量标准仅传输其值变化超过一定范围的数据,自动调整发送的监控数据,减少了网络传输量,获得了监控系统的高扩展性和各指标的时间粒度自动调整功能,当节点状态数据变化较大时,其发送数据量较多(不会超过现有监控系统内发送的数据量),时间粒度就较细;当节点状态数据变化较小时,其发送数据量较少,时间粒度就较粗。而且本发明能实时描述出系统的当前状态,减少系统的计算负载和网络传输量,保证了系统的扩展性,适用于现有的监控系统。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1是本发明的一种通过压缩数据提高监控资源扩展性的方法流程图;图2是本发明的一种通过压缩数据提高监控资源扩展性的系统示意图;图3是本发明的一实施例的监控系统模型示意图;
图4是本发明的一实施例的监控系统中的三个进程示意图。
具体实施例方式图1是本发明的一种通过压缩数据提高监控资源扩展性的方法流程图。如图1所示,该方法包括:步骤I,数据收集模块收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;步骤2,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;步骤3,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;步骤4,数据聚集模块接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;步骤5,数据存储模块分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。其中,所述数据报文的第一位表示信息属性,第一位为I表示该数据报文的数据为静态信息,第一位为O则表不该数据报文的数据为动态信息;所述数据报文的第二位表示信息来源,第一位为I表示该数据报文的数据来源于数据收集模块,第一位为O则表示该数据报文的数据来源于数据聚集模块。进一步的,所述步骤4包括:步骤41,数据聚集模块接收数据报文msgl并初始化一个新的数据报文msg2,将msg2的第一位设定为msgl的第一位,第二位设定为O,然后判断msgl的第二位,若为I,表示该数据报文来自数据收集模块,执行步骤43,若为0,表示该数据报文来自数据聚集模块,则执行步骤42;步骤42,将msgl分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行步骤43;步骤43,判断msgl或所述多个子数据报文的第一位,若为1,表示msgl或所述多个子数据报文的数据为静态信息,执行步骤44,若为0,表示msgl或所述多个子数据报文的数据为动态信息,则执行步骤45 ;步骤44,将msgl或所述多个子数据报文解析为节点的静态信息,执行步骤46 ;步骤45,将msgl或所述多个子数据报文解析为节点的动态信息,执行步骤46 ;步骤46,将步骤44或步骤45解析所得的信息追加到msg2中,执行步骤47 ;步骤47,将msg2发送给数据存储模块或上层的数据聚集模块。进一步的,所述步骤5包括:步骤51,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;步骤52,判断msg的第二位,若为0,则执行步骤54,若为1,则执行步骤53 ;步骤53, 将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;步骤54,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。其中,所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。图2是本发明的一种通过压缩数据提高监控资源扩展性的系统示意图。如图2所示,该系统包括:数据收集模块100,用于收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;比较模块200,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;发送模块300,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;数据聚集模块400,用于接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;数据存储模块500,用于分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。其中,所述数据报文的第一位表示信息属性,第一位为I表示该数据报文的数据为静态信息,第一位为O则表不该数据报文的数据为动态信息;所述数据报文的第二位表示信息来源,第一位为I表示该数据报文的数据来源于数据收集模块,第一位为O则表示该数据报文的数据来源于数据聚集模块。进一步的,所述数据聚集模块400包括:初始化模块,数据聚集模块接收数据报文msgl并初始化一个新的数据报文msg2,将msg2的第一位设定为msgl的第一位,第二位设定为O,然后判断msgl的第二位,若为I,表示该数据报文来自数据收集模块,执行聚集判断模块,若为O,表示该数据报文来自数据聚集模块,则执行聚集分割模块;聚集分割模块,将msgl分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行聚集判断模块;聚集判断模块,判断msgl或所述多个子数据报文的第一位,若为1,表示msgl或所述多个子数据报文的数据为静态信息,执行静态解析模块,若为0,表示msgl或所述多个子数据报文的数据为动态信息,则执行动态解析模块;静态解析模块,将msgl或所述多个子数据报文解析为节点的静态信息,执行追加模块;动态解析模块,将msgl或所述多个子数据报文解析为节点的动态信息,执行追加模块;追加模块,将静态解析模块或动态解析模块解析所得的信息追加到msg2中,执行处理模块;处理模块,将msg2发送给数据存储 模块或上层的数据聚集模块。进一步的,所述数据存储模块500包括:存储分割模块,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;存储判断模块,判断msg的第二位,若为0,则执行第二插入模块,若为I,则执行第一插入模块;第一插入模块,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;第二插入模块,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。其中所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。图3是本发明的一实施例的监控系统模型示意图。如图3所示,本发明的一个具体实施例的监控系统模型可以包括三个模块:数据收集模块(Data Collection Module,简称DCM)、数据聚集模块(Data Aggregation Module,简称DAM)和数据存储模块(Data StorageModule,简称DSM)。最底层的每个叶子节点为DCM,分别对应一个计算机节点。DCM周期性的收集其所在节点的状态数据并对数据进行处理,然后将处理后的数据发送给上层的DAM。DAM将收集的数据发送给其上层的DAM或DSM。DSM将收集的数据存入数据库。用户可通过访问数据库获得计算机系统的当前状态或历史状态。具体来说,各模块的内容如下所述。数据收集模块DCM的工作步骤包括:步骤Al.收集所在节点的静态信息(例如CPU频率、内存大小、网络带宽和磁盘大小等),发送给上层DAM;步骤A2.周期性(时间周期有用户自定义)收集所在节点的动态信息(例如CPU利用率、内存占用率、带宽使用量和磁盘使用率等);
步骤A3.将收集来的各个度量指标的值与上次发送的相应指标的值进行比较,若其变化超过一定量,则将该数据加入发送列表中;步骤A4.所有收集的数据完成步骤A3后,将发送列表的所有数据发送给其上层DAM。DCM的步骤A3使得每次发送的数据仅是完整数据的一部分,实现监控数据的压缩,较少了数据传输量,从而提高了监控系统的扩展性。DCM的步骤A3也实现了自动调节发送数据的时间粒度的功能:当节点状态的某个度量指标数据变化范围和频率较大时,就需要每个周期发送该度量指标的数据,从而发送该度量指标的时间粒度就较细;而当节点状态某个度量指标数据变化范围或频率较小时,这时DCM就会在一些周期内不发送该度量指标的数据,从而发送该度量指标的时间粒度就较粗。数据聚集模块DAM的工作步骤包括:步骤B1.接收来自其下层的DCM或DAM的数据;步骤B2.将接收的所有数据进行解析并将解析所得的数据进行聚集;步骤B3.将聚集所得 数据发送给其上层的DAM(若该DAM的上层是DAM)或DSM(若该DAM为最上层的DAM)。数据存储模块DSM的工作步骤包括:步骤Cl.接收来自最上层的DAM发送的数据;步骤C2.将接收的数据进行解析,并将结果存入数据库。具体而言,本发明的三个模块(DCM、DAM和DSM)分别有三个守护进程实现。这三个守护进程分别为:数据收集守护进程(Data Collection Daemon, D⑶)、数据聚集守护进程(Data Aggregation Daemon, DAD)和数据存储守护进程(Data Storage Daemon DSD)。图4是本法吗的一实施例的监控系统中的三个进程示意图。如图4所示:数据收集守护进程D⑶的具体步骤如下:步骤Al.收集所在节点的静态信息并将其形成数据报文(其中的第一位为1,表示该数据报文的数据为静态信息;第二位为1,表示该数据报文是由DCD发送的);步骤A2.将步骤Al得到的数据报文发送给其上层的DAD ;步骤A3.设定定时器,周期性的执行步骤A4到步骤A6 ;步骤A4.初始化动态信息报文:第一位设定为0,表示该数据报文的数据为动态信息;第二位为1,表示该数据报文是由D⑶发送的;步骤A5.收集节点动态信息,与其上一次发送的相应信息值相比较,若两者差的绝对值超过一定值(如CPU利用率为5%,内存使用率为5%等),则将该动态信息追加到步骤A4的报文中;步骤A6.将步骤A5得到的数据报文发送给其上层的DAD。数据聚集守护进程DAD的具体步骤如下:步骤B1.接收数据报文(定义为msgl)并初始化一个新的数据报文(定义为msg2),将msg2的第一位设定为msgl的第一位,第二位设定为O。判断msgl的第二位,若为1,表示该数据报文来自DCD,转到步骤B4,反之继续;步骤B2.将msgl分割成多个小的数据报文,其中一个小的数据报文对应一个节点的数据;
步骤B3.判断msgl的第一位,若为1,表示该数据报文为节点的静态信息,对步骤B2中获得的多个小的数据报文分别执行步骤B5和步骤B7,反之对这些数据报文分别执行步骤B6和步骤B7 ;步骤B4.msgl的第一位,若为1,表示该数据报文为节点的静态信息,执行步骤B5,反之,执行步骤B6 ;步骤B5.将msgl或步骤B2所得的多个数据报文解析为节点的静态信息并转到步骤B7 ;步骤B6.将msgl或步骤B2所得的多个数据报文解析为节点的动态信息;步骤B7.将步骤B5或步骤B6解析所得的信息追加到msg2中;步骤B8.将msg2发送给上层的DAD或DSD,转到步骤BI。数据存储守护进程DSD的具体步骤如下:步骤Cl.接收数据报文(设为msg),将msg分割成多个小的数据报文;步骤C2.判断msg的第二位,若为0,则转到步骤C4,反之继续;步骤C3.将步骤Cl所得的多个小的数据报文分别解析为节点静态信息并插入数据库的静态数据表中,转到步骤Cl ;
步骤C4.将步骤Cl所得的多个小的数据报文分别解析为节点动态信息,对每条信息执行步骤C5 ;步骤C5.将信息插入数据库的历史信息表中,并更新数据库的最新状态数据表的相应记录,转到步骤Cl。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种通过压缩数据提高监控资源扩展性的方法,其特征在于,包括: 步骤1,数据收集模块收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块; 步骤2,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作; 步骤3,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块; 步骤4,数据聚集模块接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块; 步骤5,数据存储模块分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。
2.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于, 所述数据报文的第一位表示信息属性,第一位为I表示该数据报文的数据为静态信息,第一位为O则表不该数据报文的数据为动态信息; 所述数据报文的第二位表示信息来源,第一位为I表示该数据报文的数据来源于数据收集模块,第一位为O则表示该数据报文的数据来源于数据聚集模块。
3.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于,所述步骤4包括: 步骤41,数据聚集模块接收数据报文msgl并初始化一个新的数据报文msg2,将msg2的第一位设定为msgl的第一位,第二位设定为O,然后判断msgl的第二位,若为1,表示该数据报文来自数据收集模块,执行步骤43,若为O,表示该数据报文来自数据聚集模块,则执行步骤42 ; 步骤42,将msgl分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行步骤43 ; 步骤43,判断msgl或所述多个子数据报文的第一位,若为1,表示msgl或所述多个子数据报文的数据为静态信息,执行步骤44,若为O,表示msgl或所述多个子数据报文的数据为动态信息,则执行步骤45 ; 步骤44,将msgl或所述多个子数据报文解析为节点的静态信息,执行步骤46 ; 步骤45,将msgl或所述多个子数据报文解析为节点的动态信息,执行步骤46 ; 步骤46,将步骤44或步骤45解析所得的信息追加到msg2中,执行步骤47 ; 步骤47,将msg2发送给数据存储模块或上层的数据聚集模块。
4.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于,所述步骤5包括: 步骤51,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文; 步骤52,判断msg的第二位,若为O,则执行步骤54,若为1,则执行步骤53 ; 步骤53,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中; 步骤54,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。
5.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于, 所述静态信息包括=CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。
6.一种通过压缩数据提高监控资源扩展性的系统,其特征在于,包括: 数据收集模块,用于收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块; 比较模块,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作; 发送模块,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块; 数据聚集模块,用于接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块; 数据存储模块,用于分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。
7.如权利要求6所述的通过压缩数据提高监控资源扩展性的系统,其特征在于, 所述数据报文的第一位表示信息属性,第一位为I表示该数据报文的数据为静态信息,第一位为O则表不该数据报文的数据为动态信息; 所述数据报文的第二位表示信息来源,第一位为I表示该数据报文的数据来源于数据收集模块,第一位为O则表示该数据报文的数据来源于数据聚集模块。
8.如权利要求6所述的通过压缩数据提高监控资源扩展性的系统,其特征在于,所述数据聚集模块包括: 初始化模块,数据聚集模块接收数据报文msgl并初始化一个新的数据报文msg2,将msg2的第一位设定为msgl的第一位,第二位设定为O,然后判断msgl的第二位,若为I,表示该数据报文来自数据收集模块,执行聚集判断模块,若为O,表示该数据报文来自数据聚集模块,则执行聚集分割模块; 聚集分割模块,将msgl分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行聚集判断模块; 聚集判断模块,判断msgl或所述多个子数据报文的第一位,若为1,表示msgl或所述多个子数据报文的数据为静态信息,执行静态解析模块,若为O,表示msgl或所述多个子数据报文的数据为动态信息,则执行动态解析模块; 静态解析模块,将msgl或所述多个子数据报文解析为节点的静态信息,执行追加模块; 动态解析模块,将msg l或所述多个子数据报文解析为节点的动态信息,执行追加模块; 追加模块,将静态解析模块或动态解析模块解析所得的信息追加到msg2中,执行处理模块; 处理模块,将msg2发送给数据存储模块或上层的数据聚集模块。
9.如权利要求6所述的通过压缩数据提高监控资源扩展性的系统,其特征在于,所述数据存储模块包括: 存储分割模块,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;存储判断模块,判断msg的第二位,若为O,则执行第二插入模块,若为I,则执行第一插入模块; 第一插入模块,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中; 第二插入模块,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。
10.如权利要求6所述的通过压缩数据提高监控资源扩展性的系统,其特征在于, 所述静态信息包括=CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:(PU利用率、内存占用率、 带宽使用量和磁盘使用率。
全文摘要
本发明提供一种基于数据压缩的可扩展的监控方法及系统。方法和系统的主要特征是每个需要监控的结点上调用数据收集模块,该模块将最新收集的数据与其上次发送的数据相比较,若相差超过一定范围内,就将新数据发送给数据聚集模块,反之,就不发送所获取的新数据。从而实现了网络传输量的减小和监控系统时间粒度的自动调节,进而提高了监控系统的可扩展性。聚集模块对其接收的数据聚集处理后再发送至数据存储模块进行存储,然后就可以通过访问数据聚集数据库获得计算环境的当前信息或历史状态。
文档编号G06F17/30GK103226572SQ20131010233
公开日2013年7月31日 申请日期2013年3月27日 优先权日2013年3月27日
发明者王博, 孙毓忠, 杨庆林 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1