本发明涉及主机监控领域,具体涉及一种监控服务器及基于命令行的主机监控方法。
背景技术:
参见图1,目前主流的主机监控系统都是需要在被监控主机上安装监控客户端,使用监控客户端收集被监控主机的状态参数数据,比如cpu、内存、磁盘、进程等使用状态反馈到监控服务器,由监控服务器负责相应的处理逻辑,判断被监控主机是否发生异常,是否需要告警及记录数据。
对于传统的主机监控系统,当每个被监控主机上需要安装部署和程序应用升级时,需要对对应的监控客户端进行升级更新,造成庞大的人力输出;另外,分布在各个被监控主机上的监控客户端也会消耗被监控主机的资源,当监控客户端出现bug时,也会影响到被监控主机的正常运行。
技术实现要素:
本发明提供了一种监控服务器及基于命令行的主机监控方法,能够减少成本和提高效率。
本发明解决上述技术问题的技术方案如下:一种监控服务器,包括命令发送模块、数据收集模块、数据分析模块和报警模块;
所述命令发送模块,用于向每一个被监控主机发送命令行;
所述数据收集模块,用于收集每一个被监控主机根据命令行获取并反馈的各项状态参数数据;
所述数据分析模块,用于根据收集的每一个被监控主机的各项状态参数数据,分析判断每一个被监控主机是否发生异常;
所述报警模块,用于当分析判断出被监控主机发生异常时,进行异常报警。
本发明的有益效果为:监控服务器通过命令行来收集每一个被监控主机的各项状态参数数据,不需要在每一个被监控主机上安装客户端,被监控主机脱离了监控客户端而存在,保证了被监控主机的独立性,很大程度上节省了安装、升级所需要的人力成本。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述监控服务器还包括:
通信模块,用于通过加密协议与每一个被监控主机通信连接。
所述进一步的有益效果为:监控服务器通过加密协议与每一个被监控主机之间进行连接,保证了远程通信过程中数据传输的安全性。
进一步的,所述数据收集模块,用于收集各个被监控主机根据命令行获取的并经过加密处理的各项状态参数数据;
还包括数据解密模块,用于对每一个被监控主机加密后的各项状态参数数据进行解密,并将解密后的各项状态参数数据发送给数据分析模块;
所述数据分析模块,用于对解密后的每一个被监控主机的各项状态参数数据进行分析,判断每一个被监控主机是否出现异常。
所述进一步的有益效果为:在每一个被监控主机与监控服务器进行数据传输的过程中,对传输的数据进行了加密处理,使传输的数据更安全。
进一步的,所述数据分析模块,用于对各项状态参数数据进行分析,判断每一个被监控主机是否出现异常具体包括:
将每一个被监控主机的每一项状态参数数据与对应的阈值范围进行比较,若超出对应的阈值范围,则判定为该被监控主机出现异常。
进一步的,所述各项状态参数数据为CPU使用状态、内存使用状态、磁盘使用状态和进程状态。
为了解决本发明的技术问题,还可以提供一种基于命令行的主机监控方法,包括:
S1,监控服务器与每一个被监控主机远程通信连接,且向每一个被监控主机发送命令行;
S2,监控服务器收集每一个被监控主机根据命令行获取并反馈的各项状态参数数据;
S3,监控服务器对每一个被监控主机的各项状态参数数据进行分析,判断每一个被监控主机是否发生异常,若发生异常,则进行报警。
进一步的,所述监控服务器与每一个所述被监控主机通过加密协议远程通信连接。
进一步的,所述步骤S2具体包括:
监控服务器收集各个被监控主机根据命令行获取的并经过加密处理的各项状态参数数据;
所述步骤S3具体包括:
监控服务器对每一个被监控主机的加密后的各项状态参数数据进行解密,并对解密后的各项状态参数数据进行分析,判断每一个被监控主机是否出现异常,若发生异常,则进行报警。
进一步的,所述步骤S3中监控服务器对每一个被监控主机的各项状态参数数据进行分析,判断每一个被监控主机是否出现异常具体包括:
将每一个被监控主机的每一项状态参数数据与对应的阈值范围进行比较,若超出对应的阈值范围,则判定为该被监控主机出现异常。
进一步的,所述各项状态参数数据为CPU使用状态、内存使用状态、磁盘使用状态和进程状态。
附图说明
图1为现有技术的主机监控连接框图示意图;
图2为本发明一实施例的一种监控服务器连接框图示意图;
图3为本发明一个实施例的一种监控服务器连接框图示意图;
图4为本发明另一个实施例的一种基于命令行的主机监控方法流程图;
图5为本发明又一个实施例的一种基于命令行的主机监控方法流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
参见图2,为实施例1的一种监控服务器,包括命令发送模块、数据收集模块、数据分析模块和报警模块;
所述命令发送模块,用于向每一个被监控主机发送命令行;
所述数据收集模块,用于收集每一个被监控主机根据命令行获取并反馈的各项状态参数数据;
所述数据分析模块,用于根据收集的每一个被监控主机的各项状态参数数据,分析判断每一个被监控主机是否发生异常;
所述报警模块,用于当分析判断出被监控主机发生异常时,进行异常报警。
可以理解为,本实施例的监控服务器是通过命令行来对各被监控主机进行操作的,来获取每一个被监控主机上的各项状态参数数据,即监控服务器中的命令发送模块向每一个被监控主机发送命令行,当被监控主机接收到命令行时,将自身的各项状态参数数据反馈给监控服务器,监控服务器中的数据收集模块收集各个被监控主机反馈的各项状态参数数据,而无需在每一个被监控主机上安装对应的监控客户端,由监控客户端来收集每一个被监控主机的各项状态参数数据,被监控主机脱离了监控客户端而存在,保证了被监控主机的独立性,很大程度上节省了安装、升级所需要的人力成本,当被监控主机的数量越多,采用本实施例的部署安装效率的提高会更明显。本实施例中的命令行包括Unix/linux系统的bash/sh/ksh/csh或者Windows NT系统的cmd.exe/命令提示字符,即当监控服务器和各个被监控主机为Linux操作系统时,命令行为shell命令行;当监控服务器和各个被监控主机为Windows操作系统时,命令行为cmd命令行,本实施例适用于所有可使用命令行的服务器运维及状态监测领域。
参见图3,为实施例2的一种监控服务器,本实施例相比上述实施例2,监控服务器中还包括通信模块,所述通信模块,用于通过加密协议与每一个被监控主机通信连接。
其中,所述监控服务器中的通信模块与每一个所述被监控主机通过加密协议远程通信连接,本实施例中监控服务器通过ssh(Secure Shell,安全外壳协议)加密协议与每一个被监控主机远程通信连接,保证了远程通信过程中的安全性。
其中,所述数据收集模块,用于收集各个被监控主机根据命令行获取的并经过加密处理的各项状态参数数据;
在监控服务器还包括数据解密模块,用于对每一个被监控主机加密后的各项状态参数数据进行解密,并将解密后的各项状态参数数据发送给数据分析模块;
所述数据分析模块,用于对解密后的每一个被监控主机的各项状态参数数据进行分析,判断每一个被监控主机是否出现异常。
可以理解为,在每一个被监控主机将自身的各项状态参数数据传输给监控服务器的过程中,对各项状态参数数据进行加密,监控服务器中的数据收集模块接收到这些状态参数数据后,采用监控服务器中的数据解密模块对其进行解密,保证了数据传输过程中的安全性。
其中,数据分析模块对各项状态参数数据进行分析,判断每一个被监控主机是否出现异常的具体过程为:将每一个被监控主机的每一项状态参数数据与对应的阈值范围进行比较,若超出对应的阈值范围,则判定为该被监控主机出现异常。比如,本实施例中各项状态参数数据主要为CPU使用状态、内存使用状态、磁盘使用状态和进程状态,当CPU、内存、磁盘和进程的剩余容量小于最低阈值时,表明对应的被监控主机出现异常。需要说明的是,由于各个被监控主机的性能参数不一样,监控服务器为每一个被监控主机设置不同的阈值,区别对待,更具有合理性。
参见图4,为实施例3的一种基于命令行的主机监控方法,包括:
S1,监控服务器与每一个被监控主机远程通信连接,且向每一个被监控主机发送命令行;
S2,监控服务器收集每一个被监控主机根据命令行获取并反馈的各项状态参数数据;
S3,监控服务器对每一个主机的各项状态参数数据进行分析,判断每一个被监控主机是否发生异常,若发生异常,则进行报警。
可以理解为,本实施例的监控服务器是通过命令行来对各被监控主机进行操作的,来获取每一个被监控主机上的各项状态参数数据,即监控服务器向每一个被监控主机发送命令行,当被监控主机接收到命令行时,将自身的各项状态参数数据反馈给监控服务器。而无需在每一个被监控主机上安装对应的监控客户端,由监控客户端来收集每一个被监控主机的各项状态参数数据,在每一个被监控主机上安装一个监控客户端,会消耗对应被监控主机上的资源,当监控客户端出现bug时,也会影响被监控主机的正常运行,本实施例中被监控主机脱离了监控客户端而存在,减小了被监控主机的内存,保证了被监控主机的独立性,很大程度上节省了安装、升级所需要的人力成本,当被监控主机的数量越多,采用本实施例的部署安装效率的提高会更明显。
参见图5,为实施例4的一种基于命令行的主机监控方法,包括:
S1’,监控服务器与每一个被监控主机通过加密协议远程通信连接,且向每一个被监控主机发送命令行;
S2’,监控服务器收集各个被监控主机根据命令行获取的并经过加密处理的各项状态参数数据;
S3’,监控服务器对每一个被监控主机的加密后的各项状态参数数据进行解密;
S4’,将每一个被监控主机的解密后的每一项状态参数数据与对应的阈值范围进行比较,若超出对应的阈值范围,则判定为该被监控主机出现异常;
S5’,若被监控主机发生异常,则进行报警。
下面对上述步骤进行具体介绍,首先,监控服务器通过加密协议与每一个被监控主机远程通信连接,即监控服务器可以远程对各个被监控主机进行监控。本实施例中,监控服务器向每一个被监控主机发送命令行,当被监控主机接收到监控服务器发送的命令行时,将自身的各项状态参数数据加密后反馈给监控服务器,比如,可采用非对称RAS加密算法对各项状态参数数据进行加密。监控服务器接收到每一个被监控主机反馈的加密后的数据后,进行解密,得到解密后的各项状态参数数据,并将每一个被监控主机的各项状态参数数据与对应的阈值进行比较,若不在阈值范围内,表明该被监控主机存在异常,监控服务器进行异常报警。
本发明提供的一种监控服务器及基于命令行的主机监控方法,监控服务器通过命令行来对各被监控主机进行操作,获取每一个被监控主机上的各项状态参数数据,无需在每一个被监控主机上安装对应的监控客户端,由监控客户端来收集每一个被监控主机的各项状态参数数据,在每一个被监控主机上安装一个监控客户端,会消耗对应被监控主机上的资源,当监控客户端出现bug时,也会影响被监控主机的正常运行,本实施例中被监控主机脱离了监控客户端而存在,减小了被监控主机的内存,保证了被监控主机的独立性,很大程度上节省了安装、升级所需要的人力成本,当被监控主机的数量越多,采用本实施例的部署安装效率的提高会更明显;监控服务器通过加密协议与每一个被监控主机远程通信连接,保证了远程通信的安全性;以及在每一个被监控主机与监控服务器的数据传输过程中,实用了加密解密技术,保证了远程数据传输的安全性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。