2016-08-15 191 views
0

是否有現成的設置/代理/代碼可供我收集,並且可以輕鬆地將JMX數據轉發到遠程服務器:端口將JMX數據發送到遠程服務器(JMX轉發器?)

java -DjmxForwardAddr=x.x.x.x -DjmxForwardPort=12345 ... ? 

語境: 我使用Splunk來進行企業數據搜索/報告,並想用一個JMX監聽器(容易的部分),並設置莫名其妙地配置它所有JVM只是交付數據JSON/XML /等Splunk

我正在尋找一個「推」方法,而不是「拉」方法,我分配和管理數千個端口並輪詢它們。

我們有很多的應用程序,我想要一個很好的方式來調整啓動來啓用它。

Java和JMX不是我有很多專業知識的東西,所以也許我在尋找錯誤的術語/詢問錯誤的問題。我也接受任何更好的方法來解決這個問題。

編輯2016年9月1日:

我一直無法找到任何小的和可靠的做到這一點。通過研究,我也擔心這種方法(作爲Java代理運行),因爲任何不當行爲都可能對父項目產生負面影響。

採取外部辦法,我雖然jmxtrans將符合法案。它在某種程度上有效,但仍然需要編寫一個自定義輸出編寫器來清理Splunk的輸出。

目前,我正在推進使用Splunk提供的solution輪詢可配置的目標列表並攝取該數據。不能總是得到你想要的東西(除非你自己寫...)

回答

0
+0

看起來很有幫助,但我一直在尋找已經建成的東西。 –

+0

你的意思是像appdynamics? –

+0

可能,雖然我不熟悉這一點。 CA APM(wily/introscope)具有此功能,可將指標發送到中央服務器。 –

0

我面臨着類似的問題與ZABBIX。它用於從Java應用程序讀取(拉)JMX數據以開放大量端口。這裏的問題是,在生產環境中,不能保證這些端口是否在防火牆後面。爲了解決這個問題,我們使用Jolokia。 Jolokia作爲另一個應用程序(如果您正在使用tomcat等)與您的應用程序一起運行。或者,如果您的應用程序是簡單的vanilla Java應用程序,則它可以在類路徑中用作jar(即,與現有Java應用程序集成非常簡單)。它通過HTTP公開JMX數據(JSON)。因此,如果Splunk有任何可以通過HTTP讀取數據的插件,那麼您將很好。

+0

感謝您的建議 - 它看起來非常方便。儘管有了它,我還必須實現一個檢索系統來獲取數據。如果我對供應商提供的解決方案太不滿意,我已將Jolokia書籤爲未來的研究課題。 –

+0

對於zabbix,我使用第三方網關來完成這項工作。 https://bitbucket.org/ryanrupp/zabbix-java-gateway/wiki/Home。不確定Splunk是否也有類似的東西。 –