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