3

我正在使用 snmp 来监控一些服务器(主要是 win2k3),在我上网的过程中,我发现了一个由 Oracle 完成的 MIB,用于监控 JVM,JVM-MANAGEMENT-MIB。到目前为止我所做的是:

  • 使用 snmp.acl 和 management.properties 配置 JVM
  • 用 mibcc 编译 JVM-MANAGEMENT-MIB 并替换 mib.bin。

有了这些步骤,我想我可以尝试一下。所以我用 snmp4j 制作了一个 java 程序,当我尝试从 JVM mib 调用 OID 时,我得到了一个错误Request timed out。奇怪的是,我只编译 JVM-MANAGEMENT-MIB,所以我应该只能访问那些 OID,对吧?但事实并非如此,我仍然可以访问 cpu 使用情况、进程数......

那么我错过了什么?谢谢

4

1 回答 1

6

将以下三个参数添加到 JVM,它应该是你所需要的。

-Dcom.sun.management.snmp.interface=127.0.0.1 \
-Dcom.sun.management.snmp.acl=false \
-Dcom.sun.management.snmp.port=16500 \

好吧,您不需要编写 java 程序来验证它是否有效。net-snmp 或一些 MIB 浏览器就足够了。

snmpwalk -v2c -c public 127.0.0.1:16500 SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4

SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.2.0 = STRING: "Java HotSpot(TM) 64-Bit Server VM"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.3.0 = STRING: "Sun Microsystems Inc."
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.4.0 = STRING: "20.10-b01"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.5.0 = STRING: "Java Virtual Machine Specification"
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.6.0 = STRING: "Sun Microsystems Inc."
于 2013-04-24T14:50:55.313 回答