2013-03-20 78 views
2

我使用snmp監視某些服務器(主要是win2k3),並且在我在Internet上的旅程中,我發現Oracle爲監視JVM JVM-MANAGEMENT-MIB而完成了MIB。我所做的,到目前爲止,使用它是:使用SNMP監視JVM

  • 與snmp.acl和management.properties配置JVM
  • 編譯JVM管理-MIB與mibcc並更換mib.bin。

有了這些步驟,我覺得我很好嘗試。所以我用snmp4j製作了一個java程序,當我嘗試從JVM mib調用一個OID時,出現錯誤Request timed out。 奇怪的是,我只編譯JVM-MANAGEMENT-MIB,所以我應該只能訪問那些OID,對吧?但事實並非如此,我仍然可以訪問CPU使用率,進程數量...

那麼我錯過了什麼?謝謝

回答

4

將以下三個參數添加到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."