2011-04-13 103 views
3

我有一個用Apache Camel編寫的獨立Java應用程序,我想通過SNMP進行監視。我認爲Camel使用Spring的JMX(@ManagedAttribute,@ManagedResource等),我可以在JDK jconsole中看到各種與Camel相關的對象。當我運行我的應用程序啓用SNMP:JMX對象如何映射到SNMP OID?

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

我可以連接到SNMP瀏覽器,它也可以看到很多東西。到目前爲止這麼好,但爲了讓我使用它,我需要知道或弄清楚JMX對象是如何映射到SNMP OID的。是否有辦法找出它是如何完成的,或者至少由誰來完成 - Spring,JVM?有什麼想法嗎?

回答

1

我不是100%確定,如果我在Google上找到的信息(順便說一句,先打呃!))仍然相關,我也沒有辦法捅一圈並驗證(公司,鎖定的工作站......嘆氣!)但是,它看起來像缺省的SNMP實現不是很可擴展的。

根據"JVM Monitoring: JMX or SNMP?"你只能訪問什麼在JVM-MANAGEMENT-MIB.mib

如果事情已經改變了。同時我很想定義...

+0

不錯的發現。謝謝。我看着那個帖子,但不知怎的,那句話並沒有跳到我身上。從我所做的測試看來,只有標準的JVM JMX屬性才通過SNMP公開。太糟糕了 :( – maximdim 2011-04-19 14:29:22

0

Camel使用javax.management.MBeanServer來註冊mbeans。我不記得我們做任何與SNMP有關的事情。我假定JMX將爲開箱即用提供集成,因爲JVM具有應該橋接到JMX的SNMPAgent。

+0

嗯,我認爲它確實提供了集成,但我的問題是如何從JMX ID中找出OID(SNMP標識符)? :) – maximdim 2011-04-14 17:04:25

+0

順便說一句,我沒有試圖回答這個問題。只是希望你能發表評論,並將其作爲答案的相同「可見度」。因爲當人們添加評論時,這些很容易錯過。 – 2011-04-14 19:57:50

+0

夠公平:)感謝您的評論。 – maximdim 2011-04-15 13:20:49

1

我不認爲你可以暴露你的註解Spring通過SNMP管理bean。列出的命令行參數僅用於監控有關JVM本身的度量標準,請參見SNMP Monitoring and Management;因此可能沒有辦法找出的OID,但是你必須自己定義它們,大概是用另一個成熟的SNMP框架或庫。