关于监测服务器的问题,我大概整理了一下。现在有三种方案可以使用。
1 最彻底的方案,使用Net-snmp。这个包可以部署在任何平台,包括nix和Winnt。然后通过snmp客户端来访问。这种方法的好处是可以封装访问接口成组件。
缺点是所有监控的服务器都需要安装net-snmp。Linux是自带的。Windows则需要编译,而且编译过程复杂。开发还需要对snmp比较熟悉
2 求全的方案。在客户端使用守护进程来读取客户端数据。在linux下可以使用很简单的脚本,例如用perl执行ps -A ,解析返回的值,最后通过xml-rpc返回给客户。Windows下则需要使用WMI,或者WPM。这种方法实现的方案不是很完整。而且需要对Perl的正则和WMI很熟悉.有一个NSClient项目提供window service服务。可以使用NSClient4j来访问。
3 最简单能跑起来的,我看了一下http://phpsysinfo.sourceforge.net/ 这个项目,它可以显示内存,网络,硬盘等很多信息。而且可以直接输出成xml格式。这个方案虽然需要每个机器都安装。但是安装机器简单,无需编译。而且返回的xml可以在java applet调用。您可以看一下http://phpsysinfo.sourceforge.net/phpsysinfo/?template=kde 这个截图。其本质也是在windows下也是调用wmi, 在*nix下执行命令行。 这个方法实现最快。