用NSClient4j在java中读取windows性能计数器数据。
NSClient4j是一个提供了简单的API存取WPM(windows performance monitor)数据的纯java客户端。它使用了一个叫NSClient的Windows服务。Nagios是一个运行在Linux上的系统监视 包,NSClient最初是为它写的一个插件。Nagios是一个需要从Linux上查询NT服务统计数据很大的告警和监视系统,由此,NSClient 诞生了。
NSClient是一个为了请求、接收请求,查询相应的WPM计数器值,并以一个字符串的形式返回值的监听在可配置端口上的 Windows本地服务。在开始的时候,它被一个叫做chentnt的本地Linux Nagios插件调用。然而,由于这个协议相当简单,因此java可以通过socket管理通讯,NSClient4j是一个和NSClient通讯的简 单的java类。使用Java API,开发人员能连接到NSClient上,发出一个WPM计数器值的请求,并处理其响应的结果。下图是该结构的原理:
下边的信息是可以被NSClient检查到的:
CPU负载
内存负载
磁盘空间
服务状态
处理状态
系统正常允许时间
文件日期和时间
详细信息参阅:
http://www.javaworld.com/javaworld/jw-11-2004/jw-1108-windowspm.html#resources
https://nsclient4j.dev.java.net/files/documents/2366/7972/NSClient4J.jar