tomcat 監控 — JMX方式(2)

上篇文章(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

  1. 設置防火牆,向一個網段或者某個ip開放全部端口;
  2. 指定tomcat jmx的 註冊端口和服務端口,而後設置防火牆放開這兩個端口。

第一種方法,不是重點,有興趣能夠上Google百度一下。tomcat

重點來說一下第二種方法,下面說的方法依賴上篇文章,我強烈推薦先看一下以前的文章。服務器

  1. 上tomcat的官網,下載catalina-jmx-remote.jar 放到tomcat的lib目錄下。 下載catalina-jmx-remote.jar.net

  2. 在tomcat的conf目錄下的server.xml文件中加上code

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
          rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

server.xml

  1. 去掉 setenv.sh(linux) 或 setenv.bat(window) 或 tomcat7w.exe 中的
-Dcom.sun.management.jmxremote.port=9999
  1. 在防火牆中開發上面指定的端口(10001和10002)
相關文章
相關標籤/搜索