一种集群监控管理方法及系统的制作方法

文档序号:7823159阅读:438来源:国知局
一种集群监控管理方法及系统的制作方法
【专利摘要】本发明属于网络集群管理领域,提供了一种集群监控管理方法及系统。该方法及系统是在监控节点和各计算节点分别创建键值型数据库,通过键值型数据库之间的直接同步,来将各计算节点的更新数据实时同步到监控节点。由于键值型数据库是内存型非关系型数据库,具有快速的读写速度和灵活的数据存储类型,利用其实现数据同步的时间短,多个计算节点之间竞争关系不大,能够有效减轻监控节点的压力,降低网络带宽利用率,还有利于实现数据零冗余、高可用性和高可扩展性,另外提供一种易于分组管理的原理及方法。
【专利说明】一种集群监控管理方法及系统

【技术领域】
[0001]本发明属于网络集群管理领域,尤其涉及一种集群监控管理方法及系统。

【背景技术】
[0002]集群是指将网络中的若干服务器集中起来执行同一种服务、对外部相当于一个服务器的技术,具有高扩展、高可用、高性价比等特点。为了能够让集群更可靠的提供服务,需要实时监控集群的状态信息,以方便管理员观察和研究走势。
[0003]传统的集群监控管理技术是采用专有集群定制监控系统实现的。由于专有集群定制监控系统一般与其厂商生产的集群绑定,不具有通用性,而且价格高昂,与其他集群会出现不兼容现象,功能固定,源代码不开放,可定制性不强。
[0004]鉴于专有集群定制监控系统的不足,现有技术提供了一种由开源组织开发的免费开放的集群监控系统。这类系统种类繁多,如cact1、nag1s、Ganglia、zabbix等。这类系统均为B/S结构,集群中的计算节点相当于客户端,用于收集节点的节点信息,客户端可以是专有agent代理,也可以是利用SNMP ;监控端相当于服务端,用于汇集各个节点发来的信息。客户端和服务端之间传输数据的方式有两种:第一种是采用XML、JSON等传输机制传输文件,此种传输方式的数据传输量较大,占用网络带宽;第二种是采用二进制格式数据传输,此种传输方式要求数据发送方对数据进行编码,在数据接收方进行解码,对双方资源带来额外消耗。这两种数据传输方式下,当多个客户端同时向监控端发起TCP连接传送数据时,数据量较大且传输速率较慢,造成监控端汇集数据压力比较大。


【发明内容】

[0005]本发明的目的在于提供一种集群监控管理方法,旨在解决现有技术提供的集群监控系统中,客户端与服务端之间采用XML、JSON等传输机制传输文件、或采用二进制格式传输数据,数据量大且传输速率慢,造成监控端汇集数据压力大的问题。
[0006]本发明是这样实现的,一种集群监控管理方法,所述方法包括以下步骤:
[0007]监控主机端程序初始化,并创建第一键值型数据库;
[0008]计算节点守护程序初始化,并创建第二键值型数据库;
[0009]计算节点守护程序每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的所述第二键值型数据库;
[0010]当所述第一键值型数据库检测到所述第二键值型数据库的更新后,从所述第二键值型数据库中同步数据;
[0011]监控主机端程序从所述第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示。
[0012]本发明的另一目的在于提供一种集群监控主机的监控管理方法,所述方法包括以下步骤:
[0013]监控主机端程序初始化,并创建第一键值型数据库;
[0014]当所述第一键值型数据库检测到计算节点的第二键值型数据库的更新后,从所述第二键值型数据库中同步数据;
[0015]监控主机端程序从所述第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示。
[0016]本发明的另一目的在于提供一种集群计算节点的监控管理方法,所述方法包括以下步骤:
[0017]计算节点守护程序初始化,并创建第二键值型数据库;
[0018]计算节点守护程序每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的所述第二键值型数据库;
[0019]当监控主机的第一键值型数据库检测到所述第二键值型数据库的更新后,计算节点守护程序配合所述第一键值型数据库从所述第二键值型数据库中同步数据。
[0020]本发明的另一目的在于提供一种集群监控主机的监控管理系统,所述集群监控主机的监控管理系统设置在集群的监控节点,所述系统包括:
[0021]第一初始化模块,用于初始化监控主机,并创建第一键值型数据库;
[0022]第一同步模块,用于当所述第一键值型数据库检测到计算节点的第二键值型数据库的更新后,从所述第二键值型数据库中同步数据;
[0023]数据解析和绘图模块,用于从所述第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示模块展示。
[0024]本发明的另一目的在于提供一种集群计算节点的监控管理系统,所述集群计算节点的监控管理系统设置在集群的计算节点,所述系统包括:
[0025]第二初始化模块,用于初始化计算节点,并创建第二键值型数据库;
[0026]节点信息收集模块,用于每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的所述第二键值型数据库;
[0027]第二同步模块,用于当监控主机的第一键值型数据库检测到所述第二键值型数据库的更新后,配合所述第一键值型数据库从所述第二键值型数据库中同步数据。
[0028]本发明的另一目的在于提供一种集群监控管理系统,所述集群监控管理系统包括集群监控主机的监控管理系统和集群计算节点的监控管理系统,所述集群监控主机的监控管理系统设置在集群的监控节点,所述集群计算节点的监控管理系统设置在所述集群的计算节点,所述集群监控主机的监控管理系统是如上所述的集群监控主机的监控管理系统,所述集群计算节点的监控管理系统是如上所述的集群计算节点的监控管理系统。
[0029]本发明提出的集群监控管理方法及系统是在监控节点和各计算节点分别创建键值型数据库,通过键值型数据库之间的直接同步,来将各计算节点的更新数据实时同步到监控节点。由于键值型数据库是内存型非关系型数据库,具有快速的读写速度和灵活的数据存储类型,利用其实现数据同步的时间短,多个计算节点之间竞争关系不大,能够有效减轻监控节点的压力,降低网络带宽利用率,还有利于实现数据零冗余、高可用性和高可扩展性,另外提供一种易于分组管理的原理及方法。

【专利附图】

【附图说明】
[0030]图1是本发明第一实施例提供的集群监控管理方法的流程图;
[0031]图2是本发明第一实施例中,监控主机初始化的一种详细流程图;
[0032]图3是本发明第一实施例中,监控主机初始化的另一种详细流程图;
[0033]图4是本发明第一实施例中,计算节点初始化的详细流程图;
[0034]图5是本发明第一实施例中,监控主机绘制图形并展示的详细流程图;
[0035]图6是本发明第二实施例提供的集群监控管理方法中、按需动态分组管理步骤的详细流程图;
[0036]图7是本发明第三实施例提供的集群监控管理方法中、对单个计算节点进行管理步骤的详细流程图;
[0037]图8是本发明第四实施例提供的集群监控主机的监控管理方法的流程图;
[0038]图9是本发明第七实施例提供的集群计算节点的监控管理方法的流程图;
[0039]图10是本发明第八实施例提供的集群监控主机的监控管理系统的结构图;
[0040]图11是图10中第一初始化模块的第一种结构图;
[0041]图12是图10中第一初始化模块的第二种结构图;
[0042]图13是图10中数据解析和绘图模块的结构图;
[0043]图14是本发明实施例九提供的集群监控主机的监控管理系统的结构图;
[0044]图15是本发明实施例十提供的集群监控主机的监控管理系统的结构图;
[0045]图16是本发明实施例十一提供的集群计算节点的监控管理系统的结构图;
[0046]图17是图16中第二初始化模块的结构图。

【具体实施方式】
[0047]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0048]为了解决现有集群监控系统存在的问题,本发明提出的集群监控管理方法及系统是在监控节点和各计算节点分别创建键值型数据库,通过键值型数据库之间的直接同步,来将各计算节点的更新数据实时同步到监控节点。
[0049]本发明中的集群包括若干计算节点、以及置于监控节点的监控主机,各计算节点互联成一局域网络,各计算节点之间可相互通信,监控主机连接到该局域网络。以下将结合实施例详细说明本发明的实现方式:
[0050]实施例一
[0051]本发明实施例一提供了一种集群监控管理方法,包括以下步骤:
[0052]S1:监控主机端程序初始化,并创建第一键值型数据库。
[0053]本发明实施例一希望通过监控主机与计算节点之间键值型数据库的同步,而将计算节点的数据实时更新到监控节点。但由于现有的键值型数据库(如Redis DB等)提供主从模式:一个主数据库实例允许有多个从数据库实例来同步数据,即多个从数据库实例都是同一个主数据库实例的副本,但一个从数据库实例只能有一个主数据库实例,而不能达到一个从数据库实例获得多个主数据库实例的数据,这样,监控节点的数据库就无法取得所有其他计算节点的数据的数据。
[0054]针对此问题,本发明实施例一提出了两种解决方案,如图2所示,在第一种解决方案下,步骤SI进一步包括以下步骤:
[0055]SlOl:监控主机端程序启动,读取并加载第一配置文件。
[0056]其中,第一配置文件包括了集群中所有计算节点的基本设备信息,该基本设备信息用于定位计算节点在局域网络中的位置,至少包括计算节点的IP地址和端口号。在第一配置文件中,每个计算节点的基本设备信息占用一行,例如,若集群中有两个计算节点,第一个计算节点的IP地址为10.0.0.2、端口号为6666,第二个计算节点的IP地址为10.0.0.3、端口号为7777,则第一配置文件的记录方式为:
[0057]10.0.0.2 6666
[0058]10.0.0.3 7777
[0059]S102:监控主机端程序创建第一键值型数据库,并在第一键值型数据库中创建一个默认数据库服务端实例、以及若干个节点数据库服务端实例。
[0060]其中,节点数据库服务端实例的个数与集群中计算节点的个数相等、且各节点数据库服务端实例与各计算节点分别一一对应。
[0061]其中,默认数据库服务端实例用于存储各计算节点的基本设备信息,节点数据库服务端实例用于存储对应计算节点同步过来的数据。
[0062]S103:在默认数据库服务端实例中插入数据,以存储各计算节点的基本设备信息。此时,节点数据库服务端实例中的数据为空。
[0063]例如,可在默认数据库服务端实例中插入哈希(HASH)类型的数据,每一条数据包括第一配置文件中所有计算节点的IP地址和端口号,格式为:
[0064]Hash 数据名:10.0.0.2 { ‘ ip,:,10.0.0.2,,,port,: 6666}
[0065]Hash 数据名:10.0.0.3 { ‘ ip,:,10.0.0.3,,,port,: 7777}
[0066]前述第一种解决方案是在监控节点为每一计算节点分别运行一个节点数据库服务端实例,各节点数据库服务端实例分别同步对应计算节点的数据,各同步数据之间相互隔离、互不干扰。
[0067]在第二种解决方案下,如图3所示,步骤SI进一步包括以下步骤:
[0068]S104:监控主机端程序启动,读取并加载第一配置文件。
[0069]S105:监控主机端程序创建第一键值型数据库,并在第一键值型数据库中创建一个数据库服务端实例。
[0070]S106:在数据库服务端实例中存储一个默认数据库服务表、以及若干个节点数据库服务表。
[0071]其中,节点数据库服务表的个数与集群中计算节点的个数相等、且各节点数据库服务表与各计算节点分别一一对应。
[0072]其中,默认数据库服务表用于存储各计算节点的基本设备信息,节点数据库服务表用于存储对应计算节点同步过来的数据。
[0073]S107:在默认数据库服务表中插入数据,以存储各计节点的基本设备信息。
[0074]前述第二种解决方案与第一种解决方案不同的是,通过修改第一键值型数据库,让其支持一个从数据库实例可以从多个主数据库实例同步数据。其中每一个节点数据库服务表对应一个计算节点,而每一个计算节点只要把同步数据存入相应表中即可。
[0075]S2:计算节点守护程序初始化,并创建第二键值型数据库。
[0076]进一步地,如图4所示,步骤S2又包括以下步骤:
[0077]S201:计算节点守护程序启动,读取并加载第二配置文件。
[0078]其中,第二配置文件记录了计算节点的数据收集时间间隔、第二键值型数据库的端口号、是否设置为后台进程、数据存放位置等配置信息。
[0079]S202:计算节点守护程序创建第二键值型数据库,并在第二键值型数据库中创建一个数据库实例。
[0080]S203:计算节点守护程序创建一个主机实例,该主机实例是计算节点的数据收集程序的集合。
[0081]S3:计算节点守护程序每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的第二键值型数据库。其中的一定时间即是指第二配置文件中记录的数据收集时间间隔。
[0082]在实施例一中,步骤S3的详细执行过程可由步骤S203中创建的主机实例规定。举例来说,若节点信息包括静态信息和动态信息,该静态信息是指计算节点启动后,一直到关闭期间不再变化的数据,如CPU个数,mac地址等,该动态信息则是指计算节点实时运行的状态数据,如一分钟平均负载、内存使用情况等,则主机实例的形式可以是:
[0083]主机:主机IP (作为唯一标识)
[0084]其他所有静态信息
[0085]其他所有动态信息
[0086]静态信息收集函数
[0087]静态信息处理并存入数据库函数
[0088]动态信息收集函数
[0089]动态信息处理并存入数据库函数
[0090]流程控制函数
[0091]则步骤S3是根据流程控制函数依次调用里面的函数对静态信息和动态信息进行收集和存取的。以收集Cpu数量cpu_count和一分钟平均负载1adone为例,该流程控制函数可包括如下步骤:
[0092]a.cpu_count = O, loadone = O ;
[0093]b.调用静态信息收集函数,读取/proc/cpuinfo中的信息或通过Iscpu命令得到cpu_count 的值,赋给 cpu_count ;
[0094]c.调用静态信息处理并存入数据库函数,把CpU_C0Unt的值存入第二键值型数据库;
[0095]d.调用动态信息收集函数,读取/proc/loadavg文件,解析出loadone的值,并赋给 loadone ;
[0096]e.调用动态信息存入数据库函数,把loadone存入第二键值型数据库;
[0097]f.进程睡眠N秒,然后转到d。
[0098]由该流程控制函数可知,收集节点信息的过程主要采用/proc文件读取解析方法,该方法可适用多种平台。
[0099]S4:当第一键值型数据库检测到第二键值型数据库的更新后,从第二键值型数据库中同步数据。
[0100]在实施例一中,节点数据库服务端实例或节点数据库服务表检测到与其名字相同的对应计算节点的数据库实例的更新后,节点数据库服务端实例或节点数据库服务表自动同步对应数据库实例,无需任何其它操作,且除了第一键值型数据库与第二键值型数据库之间的相互通信外,不存在其它通信信道。
[0101]在实施例一中,计算节点守护程序在通过步骤S3将收集的节点信息放入第二键值型数据库后,可以根据用户配置的不同,在第二键值型数据库中保留多组历史数据,还可将数据存入硬盘,还可只保留最新的一组数据而将之前的历史数据丢弃。即便是将历史数据丢弃,但丢弃的数据在第一键值型数据库中有保留,这样,相同的数据不会存在多个备份,极大降低了数据冗余量。
[0102]S5:监控主机端程序从第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示。
[0103]进一步地,如图5所示,步骤S5又可包括以下步骤:
[0104]S51:监控主机端程序读取默认数据库服务端实例存储的需查询的计算节点的基本设备信息。
[0105]S52:监控主机端程序初始化需查询的信息,并为每一需查询的计算节点创建rrd文件,以便于后续绘图。
[0106]其中,需查询的信息包括如前所述的静态信息和动态信息,初始化需查询的信息即为对静态信息和动态信息赋初值,以Cpu数量cpu_count和一分钟平均负载loadone为例,该初始化的过程可表示为:
[0107]cpu—count = O
[0108]Loadone = O
[0109]其中,rrd文件的格式可为:
[0110]ip, ’--step,,,5,,,DS:cpu_count:GAUGE:120:U:U,,,DS:loadone:GAUGE:120:U:U,
[0111]iRRA:AVERAGE:0.5:1:17280’,’ RRA:AVERAGE:0.5:10:3456’
[0112]S53:监控主机端程序开辟若干线程,在每一线程下,建立与对应节点数据库服务端实例的连接,之后根据相同的字段名查询节点信息,根据查询结果更新对应的rrd文件中相同字段的值。
[0113]在实施例一中,为每一个节点信息的解析过程单独开辟一个线程,这样,根据需查询的计算节点的数量,开辟相同个数的线程。举例来说,若第一个线程需查询IP地址为10.0.0.2的计算节点的节点信息,则首先与对应的节点数据库服务端实例建立连接,然后根据同样的字段名,查询静态信息和动态信息。以cpu数量Cpu_COunt为例。通过hget O方法,得到节点数据库服务端实例中cpu_count的值为10,然后把该值赋给对应的rrd文件中的cpu_count,以此类推,实现对对应的rrd文件的更新。
[0114]S54:在全部线程结束后,监控主机端程序调用绘图方法绘制图像以供展示。之后,休眠一定时间间隔,以形成一个周期,休眠过后进入下一个周期。
[0115]实施例二
[0116]现有集群监控系统中,为了缓解监控节点汇集数据压力较大的问题,提出了集群分组管理技术。该技术是在系统启动前,对集群进行静态分组,分组后便不可再改变,因而无法动态根据某些标准进行分组,这样,当需要了解某个服务在哪些计算节点上运行、或一分钟内平均负载在某个区间的计算节点数等信息、或需要对满足其他某项需求的节点组成的组进行统一管理,现有的集群分组管理技术均没有提供有效的实现方法。同时,现有的集群分组管理技术是在同一组内,只有一个计算节点向监控节点发送数据,组内各计算节点广播自己的节点信息,因而每个计算节点会保存所在分组内所有其它计算节点的节点信息,这样会带来数据冗余,且分组内某计算节点出现故障,可能会影响其它计算节点。
[0117]为了解决现有集群分组管理技术存在的前述弊端。本发明实施例二提出了一种集群监控管理方法。与实施例一不同,实施例二是在步骤S4之后,还包括按需动态分组管理的步骤,如图6所示,按需动态分组管理的步骤又包括以下步骤:
[0118]S6:监控主机端程序接收管理员输入的按需动态分组管理操作命令及分组依据。
[0119]S7:监控主机端程序根据按需动态分组管理操作命令查询默认数据库服务端实例中每个计算节点的基本设备信息,根据基本设备信息查询节点数据库服务端实例中的节点信息。
[0120]S8:监控主机端程序将符合分组依据的节点信息对应的基本设备信息加入一临时主机列表。
[0121]S9:监控主机端程序获取临时主机列表中每一基本设备信息对应的计算节点的用户名和密码,以与对应的计算节点自动建立远程连接,并将相应的分组管理命令发送给对应的计算节点,之后接收计算节点返回的执行结果以供展示。
[0122]举例来说,假设管理员输入按需动态分组管理操作命令和分组依据,分组依据要求按照计算节点所包含的进程,对集群进行分组并管理时,则监控主机端程序调用proc_handler O函数,proc_handler O函数会查询默认数据库服务端实例中每个计算节点的基本设备信息,包括计算节点的IP地址和端口号,然后根据查询结果继续查询对应的节点数据库服务端实例中的节点信息,找到其中包括的进程字段,若进程字段包含相应的进程名或ID号,则把对应计算节点的IP地址加入一临时主机列表,然后调用cmd_handler()函数,以与临时主机列表中各计算节点进行远程连接,并把相应的分组管理命令传过去,对应的计算节点执行,分组管理命令后返回执行结果,监控主机保存执行结果以供展示。
[0123]实施例三
[0124]现有集群监控系统在对计算节点进行监控管理过程中,若某一计算节点出现故障,需要管理员对这些计算节点进行故障恢复,即使不出故障,也有可能需要对单独计算节点进行其他操作。若需要对某一计算节点进行单独管理,现有应用Linux平台的集群监控系统需要应用远程ssh或用VNC等工具手动登陆到该计算节点,而在windows平台上,甚至还需安装第三方工具。这样,若集群内计算节点数量较多,每个计算节点的IP地址、用户名和密码都要查询并输入,操作繁琐。
[0125]为了解决现有集群分组管理技术存在的前述弊端。本发明实施例二提出了一种集群监控管理方法。与实施例一不同,实施例三是在步骤S4之后,还包括对单个计算节点进行管理的步骤,如图7所示,对单个计算节点进行管理的步骤又包括以下步骤:
[0126]SlO:监控主机端程序接收管理员输入的对相应计算节点的管理命令。
[0127]Sll:监控主机端程序根据管理命令获取相应计算节点的用户名和密码,以与相应计算节点自动建立远程连接,并将相应的管理命令发送给对应的计算节点。
[0128]在第三实施例中,若监控主机是首次连接某计算节点,则由管理员输入该计算节点的用户名和密码,并将用户名和密码保存到默认数据库服务端实例中。即是说,步骤Sll中,监控主机程序是从管理员的输入操作或默认数据库服务端实例获取到用户名和密码的。
[0129]S12:监控主机端程序接收相应计算节点返回的执行结果以供展示。
[0130]举例来说,假设管理员输入对相应计算节点的管理命令,则调用cmd_handler()函数,通过参数传递的方式得到相应计算节点的IP地址和管理命令,然后与相应计算节点建立远程连接。如果首次连接,需要管理员输入用户名和密码,然后把用户名和密码保存到默认数据库服务端实例中,以后再连接时,就不需再重复输入,用户名和密码在默认数据库服务端实例中的存储格式例如可以是:
[0131 ] Hash 数据名:10.0.0.2 { ‘ ip ’: ’ 10.0.0.2 ’,’ port,: 6666, ’ username,: xxx, ’ passwd,:,xxx,}
[0132]远程连接建立后,监控主机端程序把标准输入、标准输出、标准错误三项分别重定向到三个文件句柄,然后把标准输出和标准错误重定向的文件句柄中的内容写入一临时文件以供后续展示。
[0133]实施例四
[0134]本发明实施例四提出了一种集群监控主机的监控管理方法,如图8所示,包括以下步骤:
[0135]S13:监控主机端程序初始化,并创建第一键值型数据库。
[0136]在实施例四中,步骤S13的具体流程如实施例一中图2和图3所述,不赘述。
[0137]S14:当第一键值型数据库检测到计算节点的第二键值型数据库的更新后,从第二键值型数据库中同步数据。
[0138]S15:监控主机端程序从第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示。
[0139]在实施例四中,步骤S15的具体流程如实施例一中图5所述,不赘述。
[0140]实施例五
[0141]本发明实施例五提出了一种集群监控主机的监控管理方法。与实施例四不同,实施例五是在步骤S14之后,还包括对集群计算节点的按需动态分组管理的步骤,该步骤的具体流程如实施例一中图6所述,不赘述。
[0142]实施例六
[0143]本发明实施例六提出了一种集群监控主机的监控管理方法。与实施例四不同,实施例五是在步骤S14之后,还包括对集群单个计算节点的管理步骤,该步骤的具体流程如实施例一中图7所述,不赘述。
[0144]实施例七
[0145]本发明实施例七提出了一种集群计算节点的监控管理方法,如图9所示,包括以下步骤:
[0146]S16:计算节点守护程序初始化,并创建第二键值型数据库。
[0147]在实施例七中,步骤S16的具体流程如实施例一中图4所述,不赘述。
[0148]S17:计算节点守护程序每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的第二键值型数据库。
[0149]在实施例七中,步骤S17的具体流程如实施例一所述,不赘述。
[0150]S18:当监控主机的第一键值型数据库检测到第二键值型数据库的更新后,计算节点守护程序配合第一键值型数据库从第二键值型数据库中同步数据。
[0151]实施例八
[0152]本发明实施例八提出了一种集群监控主机的监控管理系统,该集群监控主机的监控管理系统设置在集群的监控节点,如图10所示,系统包括展示模块,还包括:第一初始化模块11,用于初始化监控主机,并创建第一键值型数据库;第一同步模块12,用于当第一键值型数据库检测到计算节点的第二键值型数据库的更新后,从第二键值型数据库中同步数据;数据解析和绘图模块13,用于从第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示模块展示。
[0153]在第一种情况下,如图11所示,第一初始化模块11可包括:第一配置文件加载模块1101,用于在监控主机启动后,读取并加载第一配置文件;第一数据库实例创建模块1102,用于创建第一键值型数据库,并在第一键值型数据库中创建一个默认数据库服务端实例、以及若干个节点数据库服务端实例;第一数据写入模块1103,用于在默认数据库服务端实例中插入数据,以存储各计算节点的基本设备信息。其中,各模块的详细描述与实施例一中的步骤SlOl至步骤S103分别对应,不赘述。
[0154]在第二种情况下,如图12所示,第一初始化模块11可包括:第二配置文件加载模块1104,用于在监控主机启动后,读取并加载第一配置文件;第二数据库实例创建模块1105,用于创建第一键值型数据库,并在第一键值型数据库中创建一个数据库服务端实例;数据库服务表创建模块1106,用于在数据库服务端实例中存储一个默认数据库服务表、以及若干个节点数据库服务表;第二数据写入模块1107,用于在默认数据库服务表算中插入数据,以存储各计节点的基本设备信息。其中,各模块的详细描述与实施例一中的步骤S104至步骤S107分别对应,不赘述。
[0155]进一步地,如图13所示,数据解析和绘图模块13可包括:读取模块1301,用于读取默认数据库服务端实例存储的需查询的计算节点的基本设备信息;创建模块1302,用于初始化需查询的信息,并为每一需查询的计算节点创建rrd文件,以便于后续绘图;查询更新模块1303,用于开辟若干线程,在每一线程下,建立与对应节点数据库服务端实例的连接,之后根据相同的字段名查询节点信息,根据查询结果更新对应的rrd文件;绘图模块1304,用于在全部线程结束后,调用绘图方法绘制图像以供展示模块展示。其中,各模块的详细描述与实施例一中的步骤S51至步骤S54分别对应,不赘述。
[0156]实施例九
[0157]本发明实施例九提出了一种集群监控主机的监控管理系统,如图14所示。
[0158]与实施例八不同,实施例九中,系统还包括:第一侦听连接模块14,用于接收管理员输入的按需动态分组管理操作命令及分组依据;查询模块15,用于根据按需动态分组管理操作命令查询默认数据库服务端实例中每个计算节点的基本设备信息,根据基本设备信息查询节点数据库服务端实例中的节点信息;临时主机列表生成模块16,用于将符合分组依据的节点信息对应的基本设备信息加入一临时主机列表;第一连接管理模块17,用于获取临时主机列表中每一基本设备信息对应的计算节点的用户名和密码,以与对应的计算节点自动建立远程连接,并将相应的分组管理命令发送给对应的计算节点,之后接收计算节点返回的执行结果以供展示模块展示。其中,各模块的详细描述与实施例二中的步骤S6至步骤S9分别对应,不赘述。
[0159]实施例十
[0160]本发明实施例十提出了一种集群监控主机的监控管理系统,如图15所示。
[0161]与实施例八不同,实施例十中,系统还包括:第二侦听连接模块18,用于接收管理员输入的对相应计算节点的管理命令;第二连接管理模块19,用于根据管理命令获取相应计算节点的用户名和密码,以与相应计算节点自动建立远程连接,并将相应的管理命令发送给对应的计算节点;接收模块20,用于接收相应计算节点返回的执行结果以供展示模块展示。其中,各模块的详细描述与实施例三中的步骤SlO至步骤S12分别对应,不赘述。
[0162]实施例H
[0163]本发明实施例十一提出了一种集群计算节点的监控管理系统,该集群计算节点的监控管理系统设置在集群的计算节点,如图16所示,系统包括:第二初始化模块21,用于初始化计算节点,并创建第二键值型数据库;节点信息收集模块22,用于每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的第二键值型数据库;第二同步模块23,用于当监控主机的第一键值型数据库检测到第二键值型数据库的更新后,配合第一键值型数据库从第二键值型数据库中同步数据。其中,各模块的详细描述与实施例一中的步骤S2至步骤S4分别对应,不赘述。
[0164]进一步地,如图17所示,第二初始化模块21可包括:第三配置文件加载模块2101,用于在计算节点启动后,读取并加载第二配置文件;数据库实例创建模块2102,用于创建第二键值型数据库,并在第二键值型数据库中创建一个数据库实例;主机实例创建模块2103,用于创建一个主机实例,该主机实例是计算节点的数据收集程序的集合。其中,各模块的详细描述与实施例一中的步骤S201至步骤S203分别对应,不赘述。
[0165]实施例十二
[0166]本发明实施例十二提出了一种集群监控管理系统,包括集群监控主机的监控管理系统和集群计算节点的监控管理系统,集群监控主机的监控管理系统设置在集群的监控节点,集群计算节点的监控管理系统设置在集群的计算节点。其中,集群监控主机的监控管理系统是如实施例八、实施例九或实施例十所述的集群监控主机的监控管理系统;集群计算节点的监控管理系统是如实施例十一所述的集群计算节点的监控管理系统。
[0167]综上所述,首先,本发明提出的集群监控管理方法及系统是在监控节点和各计算节点分别创建键值型数据库,通过键值型数据库之间的直接同步,来将各计算节点的更新数据实时同步到监控节点。由于键值型数据库是内存型非关系型数据库,具有快速的读写速度和灵活的数据存储类型,利用其实现数据同步的时间短,多个计算节点之间竞争关系不大,能够有效减轻监控节点的压力,降低网络带宽利用率,还有利于实现数据零冗余、高可用性和高可扩展性,另外提供一种易于分组管理的原理及方法。数据同步完成后,耗时较长的磁盘写入等操作可留在非同步时间内,这个时间可以设置10到30秒,间隔太短,对监控端和计算节点收集数据来说意义不大,因为实时状态变化较小,采集频率过密会带来过多的资源消耗,对实际监控也没多少价值,通过把快慢操作分开,可以减轻集群规模变大时给监控节点带来的的压力,如果节点数量增加,可以在监控节点部署多个主机运行数据库来同步数据,从而分担压力。数据同步过后,在之后的休眠时间,再把本次同步的数据写入磁盘和完成绘图等工作,这样就把耗时较长的操作留在非同步间隔时间,即使集群规模膨胀,监控节点压力也不会大。其次,本发明提出的集群监控管理方法及系统不仅在集群启动前可以静态分组,在集群运行时,也可以根据需求对集群动态分组管理,灵活性增强,且组内的计算节点无需记录本组内其它节点的节点信息,实现零冗余。最后,本发明提出的集群监控管理方法及系统基于一种在监控节点和计算节点快速建立临时连接的机制,利用系统集成终端把输出重定向到显示界面,并提供友好的命令输入界面,这样可以让管理员方便快捷的对单个节点进行操作。
[0168]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来控制相关的硬件完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。
[0169]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种集群监控管理方法,其特征在于,所述方法包括以下步骤: 监控主机端程序初始化,并创建第一键值型数据库; 计算节点守护程序初始化,并创建第二键值型数据库; 计算节点守护程序每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的所述第二键值型数据库; 当所述第一键值型数据库检测到所述第二键值型数据库的更新后,从所述第二键值型数据库中同步数据; 监控主机端程序从所述第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示。
2.如权利要求1所述的集群监控管理方法,其特征在于,所述监控主机初始化,并创建第一键值型数据库的步骤包括以下步骤: 监控主机端程序启动,读取并加载第一配置文件; 监控主机端程序创建第一键值型数据库,并在所述第一键值型数据库中创建一个默认数据库服务端实例、以及若干个节点数据库服务端实例,所述节点数据库服务端实例的个数与集群中计算节点的个数相等、且各节点的所述数据库服务端实例与各计算节点分别--对应; 在所述默认数据库服务端实例中插入数据,以存储各计算节点的基本设备信息。
3.如权利要求2所述的集群监控管理方法,其特征在于,所述计算节点初始化,并创建第二键值型数据库的步骤包括以下步骤: 计算节点守护程序启动,读取并加载第二配置文件; 计算节点守护程序创建第二键值型数据库,并在所述第二键值型数据库中创建一个数据库实例; 计算节点守护程序创建一个主机实例,所述主机实例是计算节点的数据收集程序的集口 ο
4.如权利要求3所述的集群监控管理方法,其特征在于,在所述当所述第一键值型数据库检测到所述第二键值型数据库的更新后,从所述第二键值型数据库中同步数据的步骤之后,所述方法还包括以下步骤: 监控主机端程序接收管理员输入的按需动态分组管理操作命令及分组依据; 监控主机端程序根据所述按需动态分组管理操作命令查询所述默认数据库服务端实例中每个计算节点的基本设备信息,根据所述基本设备信息查询所述节点数据库服务端实例中的节点信息; 监控主机端程序将符合所述分组依据的节点信息对应的基本设备信息加入一临时主机列表; 监控主机端程序获取所述临时主机列表中每一基本设备信息对应的计算节点的用户名和密码,以与对应的计算节点自动建立远程连接,并将相应的分组管理命令发送给对应的计算节点,之后接收计算节点返回的执行结果以供展示。
5.如权利要求3所述的集群监控管理方法,其特征在于,所述方法还包括以下步骤: 监控主机端程序接收管理员输入的对相应计算节点的管理命令; 监控主机端程序根据所述管理命令获取相应计算节点的用户名和密码,以与相应计算节点自动建立远程连接,并将相应的所述管理命令发送给对应的计算节点; 监控主机端程序接收相应计算节点返回的执行结果以供展示。
6.一种集群监控主机的监控管理方法,其特征在于,所述方法包括以下步骤: 监控主机端程序初始化,并创建第一键值型数据库; 当所述第一键值型数据库检测到计算节点的第二键值型数据库的更新后,从所述第二键值型数据库中同步数据; 监控主机端程序从所述第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示。
7.一种集群计算节点的监控管理方法,其特征在于,所述方法包括以下步骤: 计算节点守护程序初始化,并创建第二键值型数据库; 计算节点守护程序每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的所述第二键值型数据库; 当监控主机的第一键值型数据库检测到所述第二键值型数据库的更新后,计算节点守护程序配合所述第一键值型数据库从所述第二键值型数据库中同步数据。
8.一种集群监控主机的监控管理系统,其特征在于,所述集群监控主机的监控管理系统设置在集群的监控节点,所述系统包括: 第一初始化模块,用于初始化监控主机,并创建第一键值型数据库; 第一同步模块,用于当所述第一键值型数据库检测到计算节点的第二键值型数据库的更新后,从所述第二键值型数据库中同步数据; 数据解析和绘图模块,用于从所述第一键值型数据库中解析出各计算节点的节点信息,之后根据需求绘制图形以供展示模块展示。
9.一种集群计算节点的监控管理系统,其特征在于,所述集群计算节点的监控管理系统设置在集群的计算节点,所述系统包括: 第二初始化模块,用于初始化计算节点,并创建第二键值型数据库; 节点信息收集模块,用于每隔一定时间收集本节点的节点信息,并将收集的节点信息存入本节点的所述第二键值型数据库; 第二同步模块,用于当监控主机的第一键值型数据库检测到所述第二键值型数据库的更新后,配合所述第一键值型数据库从所述第二键值型数据库中同步数据。
10.一种集群监控管理系统,其特征在于,所述集群监控管理系统包括集群监控主机的监控管理系统和集群计算节点的监控管理系统,所述集群监控主机的监控管理系统设置在集群的监控节点,所述集群计算节点的监控管理系统设置在所述集群的计算节点,所述集群监控主机的监控管理系统是如权利要求8所述的集群监控主机的监控管理系统,所述集群计算节点的监控管理系统是如权利要求9所述的集群计算节点的监控管理系统。
【文档编号】H04L12/24GK104468274SQ201410782164
【公开日】2015年3月25日 申请日期:2014年12月16日 优先权日:2014年12月16日
【发明者】蔡晔, 周华洋 申请人:深圳大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1