上篇文章(tomcat 監控 — JMX方式(1))最後說到:打開防火牆之後,tomcat就不能被遠程監控了,哪怕是放開了指定的端口。這篇文章主要就來解決這個問題。html
tomcat官方 也說到這個問題 http://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html#JMX_Remote_Lifecycle_Listener_-_org.apache.catalina.mbeans.JmxRemoteLifecycleListener,有興趣能夠看一下。linux
其實tomcat的jmx遠程監控須要兩個端口,一個是註冊端口,一個服務端口。以前配置指定了9999 端口是註冊端口,在tomcat啓動的時候會隨機指定一個服務端口,因爲咱們開放防火牆端口的時候,只開放了9999 端口,因此是鏈接不上的,並且服務端口是隨機生成的,咱們也沒法提早開放服務器端口。
shell
根據上面的解釋,那麼咱們要想在打開防火牆的狀態下,順利鏈接上tomcat的監控,有兩種方法:apache
第一種方法,不是重點,有興趣能夠上Google百度一下。tomcat
重點來說一下第二種方法,下面說的方法依賴上篇文章,我強烈推薦先看一下以前的文章。服務器
上tomcat的官網,下載catalina-jmx-remote.jar 放到tomcat的lib目錄下。 .net
在tomcat的conf目錄下的server.xml文件中加上code
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
-Dcom.sun.management.jmxremote.port=9999