對不起,如果這是前面提到的問題的重複,但我已經嘗試過在這裏和其他地方提供的解決方案,它們都不適合我。使用VisualVM和SSH遠程監視Tomcat 7服務器
場景:我需要分析生活在防火牆後面的生產Tomcat 7服務器。我只有SSH訪問這臺服務器。選擇的分析工具是Visualvm,並且這些服務器沒有安裝GUI。我試圖從運行Ubuntu 10.04服務器LTS連接的服務器和機器。
可能的解決辦法:使用VisualVM的通過SSH隧道似乎是可能的,下面給出的鏈接提供了非常詳細的指南,這樣做:
而且我加了jmxremote.access文件給Tomcat中的/ CONF DIR與以下兩行:
monitorRole readonly
controlRole readwrite
問題:我跟着步驟在文章中提供的一切似乎都很好。我可以使用jmxterm和指南中給出的連接字符串在本地(從服務器)連接到服務器中的jmx端口。
根據本指南配置本地tomcat作爲測試,Visualvm使用連接字符串連接到此tomcat實例沒有問題。
但是,VisualVM不會通過SSH隧道連接到遠程服務器。我試圖JConsole的,因爲它更簡單,具有更好的日誌記錄工具,我得到消息的順序如下:
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] connecting...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] finding stub...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] connecting stub...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] getting connection...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] failed to connect: java.rmi.NoSuchObjectException: no such object in table
任何想法,我做了什麼錯在這裏?任何幫助是極大的讚賞!
謝謝。
尼古拉斯,謝謝你的回答。我有localhost:12008和localhost:12009隧道到tomcat服務器上的相應端口。它只是不工作。我把你的建議嘗試JMXMP,它的工作非常出色。謝謝。 – ChamaraG