使用SNMP监控JVM

3
我正在使用 snmp 监控一些服务器(主要是 win2k3),在网上搜索时,我发现 Oracle 制作了一个用于监视 JVM 的 MIB,即 JVM-MANAGEMENT-MIB。 我目前所做的是:

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

经过以上操作,我认为我已经准备好开始尝试。因此,我编写了一个 Java 程序,并使用 snmp4j 调用 JVM mib 中的 OID 时,我遇到了错误 请求超时

奇怪的是,我只编译了 JVM-MANAGEMENT-MIB,所以应该只能访问那些 OID,对吗?但实际情况并非如此,我仍然可以访问 CPU 使用率、进程数量等信息。

那么,我错过了什么?谢谢。

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."

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接