JMX监控centos下的tomcat
通过JMX远程监控tomcat的堆内存 、线程、CPU等信息,便于并发参数调试。
环境:
Tomcat部署容器:Centos
Tomcat版本:7.0
JDK版本:1.7-x64
- Tomcat配置:
1.将catalina-jmx-remote.jar放到tomcat目录的lib文件夹下。
2.在conf/server.xml中配置jmx远程监听接口,通过属性rmiRegistryPortPlatform和rmiServerPortPlatform配置JMX远程监控端口值。
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8999" rmiServerPortPlatform="8999"/>
3.修改bin/catalina.sh,添加jmx远程监控参数:
#add jmx monitor param
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=172.16.230.106 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/apache-tomcat-7.0.57-x64-8084-system/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/apache-tomcat-7.0.57-x64-8084-system/conf/jmxremote.access -Dcom.sun.management.jmxremote.authenticate=true"
注:java.rmi.server.hostname:tomcat所在机器的IP地址;com.sun.management.jmxremote.ssl:禁用ssl,开启后肯能会出现关闭tomcat后,jmx端口没有关闭的问题;com.sun.management.jmxremote.password.file:连接JMX的用户名和密码,用空格分隔;-Dcom.sun.management.jmxremote.access.file:连接JMX的用户名和角色,用空格分隔;Dcom.sun.management.jmxremote.authenticate:连接JMX时,是否需要进行用户名和密码认证。
TOMCAT和JAVA虚拟机相关的参数都可以通过CATALINA_OPTS变量进行配置,例如:
# modify java runtime param CATALINA_OPTS="$CATALINA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m"
在centos中启动tomcat之后,可以通过查询进程看到tomcat的启动参数信息。
- 客户端连接
配置好JAVA之后,直接在命令行中输入jconsole,打开jconsole监控窗口,在监控窗口中输入JMX的监听IP+端口,以及用户名和密码。打开jconsole后,可以看到相关的运行参数信息。
注:centos7中放开端口限制
firewall-cmd --zone=public --add-port=8999/tcp --permanent firewall-cmd --reload
参考地址:
https://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
https://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html