Tomcat JMX 配置
在 $CATALINA_HOME/bin/下创建文件 setenv.sh ,设置权限777
[sysadmin@VM_201_18_centos bin]$ cat setenv.sh
CATALINA_OPTS="
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.rmi.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=10.98.201.18"
Djava.rmi.server.hostname 这个地址设置为本机地址。默认好像是127.0.0.1(待确认),导致外部主机访问失败。
JXM配置会开启3个端口,这里指定了两个端口都指向12345
依然还有另外一个端口随机产生,但是却并不影响远程连接JMX,于是查了一些资料,发现了这是JAVA的一个bug,为JDK-8035404:
https://bbs.csdn.net/topics/391544719
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8035404
https://bz.apache.org/bugzilla/show_bug.cgi?id=55931
http://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html#JMX_Remote_Lifecycle_Listener_-_org.apache.catalina.mbeans.JmxRemoteLifecycleListener
Java JMX 配置
设置JAVA_OPTS
JVM_OPTS="-Xms256m -Xmx256m
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.98.21.134
-Dcom.sun.management.jmxremote.rmi.port=12345
"
动态开启JMX
使用jcmd命令
[sysadmin@VM_21_133_centos ~]$ sudo -u mservice /usr/local/jdk/jdk_running/bin/jcmd 14468 ManagementAgent.start jmxremote.port=12345 jmxremote.ssl=false jmxremote.authenticate=false
14468:
Command executed successfully
[sysadmin@VM_21_133_centos ~]$ sudo netstat -anpl |grep 14468 |head
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 14468/java
tcp 0 0 0.0.0.0:47500 0.0.0.0:* LISTEN 14468/java
tcp 0 0 0.0.0.0:34830 0.0.0.0:* LISTEN 14468/java
tcp 0 0 0.0.0.0:10800 0.0.0.0:* LISTEN 14468/java
tcp 0 0 0.0.0.0:12345 0.0.0.0:* LISTEN 14468/java
tcp 0 0 0.0.0.0:57500 0.0.0.0:* LISTEN 14468/java
tcp 0 0 10.98.21.133:57500 10.98.21.78:45696 ESTABLISHED 14468/java
tcp 0 0 10.98.21.133:56964 10.98.21.140:20880 ESTABLISHED 14468/java
tcp 0 0 10.98.21.133:58346 10.98.21.141:57500 ESTABLISHED 14468/java
tcp 0 0 10.98.21.133:40508 10.98.21.21:47100 ESTABLISHED 14468/java
没开启防火墙端口,连不上。得设置rmi port 和 host。