一种远程获取被监控计算机信息的系统和方法 【技术领域】
本发明涉及一种远程获取计算机信息的系统和方法,特别是关于一种通过拨号远程获取计算机信息的系统和方法。
背景技术
随着计算机工业水平的不断进步,人们对计算机的性能、稳定性和可靠性提出了越来越高的要求,特别是对于服务器。而计算机上操作系统的稳定和可靠性更是决定了一个系统的好坏。保证计算机的稳定和可靠性有很多种方法,实时监控是其中的方法之一,当监控到将要发生故障时,采取必要的措施,就可以大大防止故障的发生。
Intel于1998年提出了IPMI(Inteligent Platform ManagementInterface,智能平台管理系统)规范。这一规范通过使用一个独立于主系统平台的BMC(Baseboard Management Controllor,主板管理控制器),采集和预处理服务器各硬件的状态信息,对可能的故障进行分析和决断,产生错误日志,采用规范的接口定义,实现信息的传输。这一规范的采用,减少了用于与大量硬件通信地资源占用量,为实现服务器实时在线监控提供了良好的基础。
目前Intel根据IPMI规范实现了通过拨号上网获取计算机硬件信息的功能,但是没有实现通过拨号上网获取操作系统实时信息的功能,特别是在操作系统不能正常工作时。
在现有实现中,获取操作系统信息大多根据WMI(视窗管理规范)通过WMI接口获取操作系统信息,虽然也可实现远程获取计算机操作系统信息,但当远端计算机操作系统没有启动或运行不正常时,则无法监控到有用的计算机信息,特别是操作系统信息,解决远端计算机出现的问题。
【发明内容】
本发明的目的就在于提供一种远程获取计算机信息的系统和方法,特别是远端计算机操作系统不能工作时,获取远端计算机的信息的系统和方法。
根据本发明的一种远程获取被监控计算机信息的方法,所述方法包括如下步骤:
(c)获取被监控端计算机操作系统信息;
(d)获取被监控端计算机硬件信息;
(c)将所述的操作系统信息和硬件信息传到监控卡的存储装置上存储;
(d)基于IPMI(智能管理平台系统)的serial/Modem接口定义,将监控端计算机与所述被监控端计算机监控卡的串口相连,并从所述的存储装置上获取所需计算机信息。
进一步还包括监控端根据获取到的信息,进行分析和处理后向用户输出和显示诊断结果的步骤。
具体的步骤(a)所述的获取被监控端计算机操作系统信息是通过一个监控代理程序获取的,所述的监控代理程序是驻留在操作系统内部的一段程序,它在操作系统启动后自动启动,在操作系统正常运行时,实时的获取操作系统信息,并下传到监控卡的存储装置上。
具体的所述的监控代理程序是通过监控卡的驱动程序下传所述的操作系统信息到监控卡的存储装置上的。
另外步骤(b)获取计算机硬件信息是在计算机上电时,监控卡上的firmare(固件)通过I2C总线收集硬件传感器信息。
其中步骤(d)串口相连至少包括以下两种方式之一:
基于IPMI(智能管理平台系统)的serial/Modem接口定义,监控端计算机通过MODEM(调制解调器)拨号连接,与被监控端计算机的监控卡上的串口相连,其中监控端计算机串口和被监控端计算机上的监控卡串口都与MODEM相连;
基于IPMI(智能管理平台系统)的serial/Modem接口定义,监控端计算机串口与被监控端计算机监控卡上的串口直接相连。
另外还包括判断计算机状态信息的步骤,包括以下的步骤:
如果电话网络和MODEM连接正常的条件下无法拨通,则认为计算机没有连接电源;
根据只有计算机在开机时才有的5V电源信号,判断计算机是否处在开机状态,其中如果没有这个电源信号则认为计算机没有开机,将监控卡存储装置上的计算机状态标志置为关机;
如有所述的电源信号,则认为计算机是开机的,根据在操作系统正常运行时监控代理程序向监控卡的firmware定时发送的心跳信息,判断操作系统是否启动或运行不正常,其中当firmware在预定时间没有收到所述的心跳信息时,则认为操作系统没有启动或运行不正常,置监控卡存储装置上的计算机状态标志置为操作系统未启;以及
如所述的firmware在预定时间收到心跳信息,则将监控卡存储装置上的计算机状态标志置为操作系统运行正常。
具体的步骤(d)获取计算机信息是通过监控卡的firmware从监控卡上的存储装置上获取被监控端计算机操作系统信息、计算机状态信息和计算机硬件信息。
其中所述的硬件信息至少包括温度、电压、风扇转速和机箱开关信息之一。
其中所述的操作系统信息至少包括操作系统版本信息、系统当前时间、网卡个数、网卡IP地址、网卡子网掩码、CPU利用率、内存利用率、硬盘I/O流量和当前用户进程信息之一。
根据本发明的另一方面,一种远程获取被监控计算机信息的系统,包括监控端和被监控端,中间通过串口相连,其中:
所述的被监控端包括一运行在被监控的计算机上的监控代理程序和一安装在被监控计算机PCI插槽上的硬件监控卡;
所述的监控代理程序用于收集被监控计算机上的操作系统信息,并将收集到的信息传到监控卡上;
所述的监控卡拥有自己的Firmware,它独立于被监控计算机上的操作系统,同时监控卡上有一个专用的存储芯片,所述存储芯片主要用来存储Firmware通过I2C总线收集到的硬件传感器信息和由监控代理程序通过监控卡驱动程序传下来的操作系统实时信息;
所述通过串口相连是基于IPMI(智能管理平台系统)的serial/Modem接口定义,监控端串口和被监控端计算机监控卡的串口通过MODEM拨号连接或者直接连接。
本发明通过将计算机操作系统信息和硬件信息存储在监控卡的存储装置上,实时监控远端计算机,在远端操作系统没有启动或运行不正常时,通过拨号或现场直接连接远端监控卡串口获取远端计算机的信息,可有效解决远端维护计算机的问题,有助于降低网络维护的费用,提高维护的效率。
【附图说明】
图1描述了本发明的系统结构图;
【具体实施方式】
为了本领域的技术人员更好的理解本发明,下面结合附图进一步描述本发明的方法。
下面以通过MODEM拨号上网,远程获取计算机信息,描述本发明的具体的实施方式,请看图1描述的本发明的系统结构图,整个监控系统分为监控端和被监控端,中间通过电话网相连,被监控端运行在被监控的计算机上,收集计算机上的信息,响应监控端的命令,并将收集到的信息传到监控端。它的实现又分两大部分,分别是:1)运行在被监控计算机操作系统之上的监控代理程序;2)一块插在被监控计算机PCI插槽上的硬件监控卡。上述监控代理程序是驻留在操作系统内部的一段程序,相当于服务进程,它在操作系统的启动后自动启动,启动后,定时收集操作系统信息并向下通过监控卡驱动程序传送到监控卡上。所述的监控卡拥有自己的Firmware,它独立于被监控计算机上的操作系统,同时监控卡上有一个专用的存储芯片,存储芯片上主要用来存储Firmware通过I2C总线收集到的硬件传感器信息和由上层监控代理程序通过驱动程序传下来的操作系统信息。
运行时,监控端通过向被监控端发送命令,获取被监控计算机上的信息,分析处理后向用户输出和显示,其中监控端计算机串口和被监控端计算机监控卡的串口都与MODEM相连。
上述是本发明的远程获取计算机信息的监控系统环境,下面详述本发明的方法,具体的,在获取计算机信息之前需判断远端计算机的状态,本发明中是这样确定的:
1、判断计算机有没有连接电源
通过监控端判断,如果在电话网络连接正常(包括两块MODEM的连接正确)的条件下无法通过拨号拨通远端计算机,则确定远端计算机没有连接电源,无法获取任何计算机信息。
2、关机
通过监控卡判断,根据只有在计算机开机时采用的5V电源信号,来判断计算机是否在开机状态,如果没有这个电源信号则认为计算机没有开机,将监控卡存储芯片上的计算机状态标志置为关机。
3、计算机操作系统没有启动或操作系统运行不正常
如在上述步骤2有所述的电源信号,则确认计算机是开机的,如果操作系统没有启动或运行不正常、挂起,这时监控代理程序也就没启动,由于监控卡收不到监控代理程序定时传来的信息,所以在存储芯片上计算机状态标志设为操作系统未启、开机。监控端通过IPMI规范和自定义协议获取到这条信息,向用户显示操作系统未启动或挂起,这时获取到的操作系统实时信息为前一次操作系统正常运行时的信息。
4、计算机操作系统运行正常
操作系统运行正常,运行在后台的监控代理程序因此也启动并运行正常。监控卡将监控代理程序传来的信息存储到存储芯片上,同时将计算机状态标志置为操作系统运行正常。监控端通过IPMI规范和自定义协议获取到这条信息,向用户显示。
以上在远程获取计算机信息前确定了远端计算机的状态,下面详述本发明中是如何远程获取计算机信息的,具体的包括以下步骤:
步骤1:运行在被监控计算机上的监控代理程序在操作系统正常运行时,实时的获取操作系统信息,并将这些操作系统信息通过监控卡的驱动程序下传到监控卡上的存储芯片上;同时,监控代理程序通过监控卡的驱动程序定时向监控卡上的Firmware发送心跳信息,如果监控卡上的Firmware在一段时间内收不到这个心跳信息,就会认为操作系统运行不正常,或没有启动。
另外,步骤2:在计算机上电的前提下,监控卡上的Firmware通过I2C总线定时读取各硬件传感器上的信息,所述信息至少包括下面信息之一:温度、电压、风扇转速、机箱开关信息等,并将它们存储到存储芯片上。
在步骤3:远程监控端通过MODEM拨号连接后,与被监控计算机上的监控卡上的串口相连,通过监控卡的Firmware从监控卡上的存储芯片上获取操作系统实时信息、计算机状态信息和各种硬件信息。
据此,监控端根据获取到的信息,进行分析和处理后向就可以向用户输出和显示了。
具体的以上步骤3中执行下面的步骤:
步骤3.1:监控端通过MODEM拨号上网,直接与被监控计算机上的监控卡上的串口相连,拨号连通,它们间遵守ZMODEM协议和IPMI规范中的Serial/Modem接口规范。
步骤3.2:监控端在建立好连接后,利用IPMI规范中定义的格式,和自定义的消息类别,从监控卡上的存储芯片上获取操作系统实时信息、计算机系统状态信息和各种硬件信息。
所述的操作系统实时信息至少包括下述信息之一:操作系统版本信息、系统当前时间、网卡个数、网卡IP地址、网卡子网掩码、CPU利用率、内存利用率、硬盘I/O流量和当前用户进程信息等。
优化的,本发明中还可通过监控端计算机串口与被监控端计算机上的监控卡串口直接相连,这样做的好处是当计算机出现故障,操作系统无法启动时,维护人员可以在本地,通过串口直接相连被监控计算机,从被监控端获取故障前的操作系统实时信息和当前系统硬件信息,分析这些信息并得出诊断结论。
这种监控端的串口与监控卡上的串口相连是基于IPMI的Serial/Modem接口定义的。
本发明通过监控卡上存储的操作系统的信息和硬件信息等,可远程诊断计算机故障,极大的方便网络维护,使网络维护的费用大为降低。
以上所述,仅为本发明的可行实施例而已,非因此即局限本发明的权利范围,凡运用本发明说明书及附图内容所为的等效变化,均理同包含于本发明的权利要求范围内。