本发明涉及分布式集群系统管理领域,更具体地说,涉及一种基于分布式集群系统的监控网口检测方法及系统。
背景技术:
分布式集群系统一般包含多台服务器Server,这些服务器组成一个集群系统。分布式集群系统的监控模块Monitor需监控集群中各个Server节点的性能和硬件指标状态,比如各节点的cpu利用率、内存利用率、电源和主板温度等。监控模块需要在各个节点上部署代理进程M_agent,M_agent模块负责实时的搜集所属节点的性能和硬件指标数据,通过UDP协议以单播或组播的方式向指定的端口发送这些数据;除此之外,还需在集群管理服务器节点上部署监控客户端进程M_client,该模块通过TCP协议从指定端口接收其他节点发送的数据,并将数据保存在数据库DB中,供系统管理员实时的监测、查看。由于集群中Monitor部署完成后,默认状态下组播地址是固定的,所以各集群中的Monitor组播地址在初始情况下都相同,当局域网中存在多个集群时,集群之间的监控数据会相互干扰,使M_agent分析汇总数据不准确。
因此,如何解决集群间监控数据相互干扰的问题,是本领域技术人员需要解决的。
技术实现要素:
本发明的目的在于提供一种基于分布式集群系统的监控网口检测方法及系统,以解决集群间监控数据相互干扰的问题。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于分布式集群系统的监控网口检测方法,包括:
S1、检测监控网口是否存在非本集群数据节点的代理进程发送的数据;若存在,则执行S2;其中,所述监控网口为管理节点与数据节点进行数据交互的网口;
S2、获取预存的组播地址修改规则;
S3、根据所述组播地址修改规则对配置文件中的本集群的组播地址进行修改,并将修改结果推送至本集群中其他数据节点上。
其中,将修改结果推送至本集群中其他数据节点上之后,还包括:
间隔预定时长后,继续检测所述监控网口是否存在非本集群数据节点的代理进程发送的数据;
若存在,则获取预存的另一组播地址修改规则,并基于所述另一组播地址修改规则继续执行S3,直至所述监控网口不存在非本集群数据节点的代理进程发送的数据。
其中,还包括:
若检测到监控网口的TCP通信负载高于预定阈值,则按照预定切换规则,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载较低的网口。
其中,所述按照预定切换规则,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载较低的网口,包括:
计算所述管理节点每个网口的TCP通信负载,并将TCP通信负载最低的网口作为目标网口;
将所述管理节点与数据节点进行数据交互的网口切换至所述目标网口。
一种基于分布式集群系统的监控网口检测系统,包括:
检测模块,用于检测监控网口是否存在非本集群数据节点的代理进程发送的数据;其中,所述监控网口为管理节点与数据节点进行数据交互的网口;
组播地址修改规则获取模块,用于在所述监控网口存在非本集群数据节点的代理进程发送的数据时,获取预存的组播地址修改规则;
组播地址修改模块,用于根据所述组播地址修改规则对配置文件中的本集群的组播地址进行修改,并将修改结果推送至本集群中其他数据节点上。
其中,所述检测模块,还用将修改结果推送至本集群中其他数据节点上,且间隔预定时长后,继续检测所述监控网口是否存在非本集群数据节点的代理进程发送的数据;
若存在,则通过所述组播地址修改规则获取模块获取预存的另一组播地址修改规则,并基于所述另一组播地址修改规则继续触发所述组播地址修改模块,直至所述监控网口不存在非本集群数据节点的代理进程发送的数据。
其中,还包括:
网口切换模块,用于检测到监控网口的TCP通信负载高于预定阈值时,按照预定切换规则,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载较低的网口。
其中,所述网口切换模块,通过计算所述管理节点每个网口的TCP通信负载,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载最低的网口。
通过以上方案可知,本发明实施例提供的一种基于分布式集群系统的监控网口检测方法,包括:S1、检测监控网口是否存在非本集群数据节点的代理进程发送的数据;若存在,则执行S2;其中,所述监控网口为管理节点与数据节点进行数据交互的网口;S2、获取预存的组播地址修改规则;S3、根据所述组播地址修改规则对配置文件中的本集群的组播地址进行修改,并将修改结果推送至本集群中其他数据节点上;可见,在方案中,若检测到监控网口有非本集群内节点发来的数据时,会自动修改本集群中配置文件中的组播地址,使之不同与局域网中其他集群,从而只搜集本集群节点的数据,以解决集群间监控数据相互干扰的问题;本发明还公开一种基于分布式集群系统的监控网口检测系统,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的集群Monitor监控流程示意图;
图2为本发明实施例公开的一种基于分布式集群系统的监控网口检测方法流程示意图;
图3为本发明实施例公开的监控网口检测示意图;
图4为本发明实施例公开的一种基于分布式集群系统的监控网口检测系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于分布式集群系统的监控网口检测方法及系统,以解决集群间监控数据相互干扰的问题。
参见图1,在本实施例提供的四节点集群Monitor监控流程示意图。虚线方框代表集群中的Monitor模块,其中Slave1、Slave2、Slave3代表本集群中的各数据节点,均部署了M_agent守护进程,用于搜集每个数据节点的性能和硬件指标值;各Slave节点的M_agent通过UDP协议进行通信。Master代表本集群中的管理节点,部署了M_client守护进程,M_client通过TCP协议获取M_agent发送的数据,存于监控数据库中,并将这些数据进行汇总在管理平台上进行展示,方便管理平台能实时的监控集群状态。
但是由于集群中Monitor部署完成后,默认状态下组播地址是固定的,所以各集群中的Monitor组播地址在初始情况下都相同,当局域网中存在多个集群时,集群之间的监控数据会相互干扰,使M_agent分析汇总数据不准确。因此,在本实施例中,在管理节点Master上添加一个tcp通信状态监测模块,该模块的守护进程Check_tcp在后台来执行本实施例所公开的技术方案,以解决集群间监控数据相互干扰的问题。
参见图2,本发明实施例提供的一种基于分布式集群系统的监控网口检测方法,包括:
S1、检测监控网口是否存在非本集群数据节点的代理进程发送的数据;若存在,则执行S2;其中,所述监控网口为管理节点与数据节点进行数据交互的网口;
具体的,参见图3,本实施例提供的Check_tcp模块功能示意图。图中Slave代表各数据节点,虚线框代表管理节点Master,框中展示的是Check_tcp进程的功能。管理节点中的守护进程Check_tcp会实时的检测监控网口的M_agent数据包,若检测到数据包中携带的ip地址不是本集群节点的ip地址,则说明接收到的数据包为非本集群内节点的M_agent数据包,即该局域网段内还存在其他的集群,并且本集群的管理节点搜集了其他集群节点的指标信息,这时需要对配置文件的组播地址进行修改。
S2、获取预存的组播地址修改规则;
具体的,若检测到有非本集群数据节点的代理进程发送的数据,则守护进程Check_tcp会读取数据库中制定好的组播地址修改方案,需要说明的是,数据库中事先制定了多个新的组播地址,区别于默认的组播地址。
S3、根据所述组播地址修改规则对配置文件中的本集群的组播地址进行修改,并将修改结果推送至本集群中其他数据节点上。
具体的,通过获取的预存的组播地址修改规则自动修改本集群Monitor配置文件中的组播地址,并将其推送到集群中其他数据节点上,以保证集群各节点组播地址相同,直至检测到监控网口中不再包含非本集群节点的M_agent数据包为止。
需要说明的是,将修改结果推送至本集群中其他数据节点上之后,还包括:间隔预定时长后,继续检测所述监控网口是否存在非本集群数据节点的代理进程发送的数据;
若存在,则获取预存的另一组播地址修改规则,并基于所述另一组播地址修改规则继续执行S3,直至所述监控网口不存在非本集群数据节点的代理进程发送的数据。
具体的,在本实施例中,若在间隔预定预定时长后,在监控网口依然存在非本集群数据节点的代理进程发送的数据,则从数据库中获取另一新的组播地址修改规则,对配置文件及其他节点进行修改。
基于上述技术方案,本方案还包括:
若检测到监控网口的TCP通信负载高于预定阈值,则按照预定切换规则,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载较低的网口。
其中,所述按照预定切换规则,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载较低的网口,包括:计算所述管理节点每个网口的TCP通信负载,并将TCP通信负载最低的网口作为目标网口;将所述管理节点与数据节点进行数据交互的网口切换至所述目标网口。
需要说明的是,本方案中的Check_tcp进程同时也负责对管理节点各网口的tcp通信状态进行检测,如果检测到当前监控网口的tcp通信负载过高时,例如高于最大负载的80%,则Check_tcp会自适应的将监控链路动态的切换到其他通信负载较低的网卡上,确保M_client能持续稳定的搜集监控数据,保证监控数据包不丢失。
下面对本发明实施例提供的监控网口检测系统进行介绍,下文描述的监控网口检测系统与上文描述的监控网口检测方法可以相互参照。
参见图4,本发明实施例提供的一种基于分布式集群系统的监控网口检测系统,包括:
检测模块100,用于检测监控网口是否存在非本集群数据节点的代理进程发送的数据;其中,所述监控网口为管理节点与数据节点进行数据交互的网口;
组播地址修改规则获取模块200,用于在所述监控网口存在非本集群数据节点的代理进程发送的数据时,获取预存的组播地址修改规则;
组播地址修改模块300,用于根据所述组播地址修改规则对配置文件中的本集群的组播地址进行修改,并将修改结果推送至本集群中其他数据节点上。
基于上述技术方案,所述检测模块,还用将修改结果推送至本集群中其他数据节点上,且间隔预定时长后,继续检测所述监控网口是否存在非本集群数据节点的代理进程发送的数据;
若存在,则通过所述组播地址修改规则获取模块获取预存的另一组播地址修改规则,并基于所述另一组播地址修改规则继续触发所述组播地址修改模块,直至所述监控网口不存在非本集群数据节点的代理进程发送的数据。
基于上述技术方案,本方案还包括:
网口切换模块,用于检测到监控网口的TCP通信负载高于预定阈值时,按照预定切换规则,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载较低的网口。
基于上述技术方案,所述网口切换模块,通过计算所述管理节点每个网口的TCP通信负载,将所述管理节点与数据节点进行数据交互的网口切换至TCP通信负载最低的网口。
本发明实施例提供的一种基于分布式集群系统的监控网口检测方法,包括:S1、检测监控网口是否存在非本集群数据节点的代理进程发送的数据;若存在,则执行S2;其中,所述监控网口为管理节点与数据节点进行数据交互的网口;S2、获取预存的组播地址修改规则;S3、根据所述组播地址修改规则对配置文件中的本集群的组播地址进行修改,并将修改结果推送至本集群中其他数据节点上;可见,在方案中,若检测到监控网口有非本集群内节点发来的数据时,会自动修改本集群中配置文件中的组播地址,使之不同与局域网中其他集群,从而只搜集本集群节点的数据,以解决集群间监控数据相互干扰的问题;本发明还公开一种基于分布式集群系统的监控网口检测系统,同样能实现上述技术效果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。