启动JMX远程功能,使用jConsole监控tomcat

本文介绍了如何在Tomcat上启用JMX远程功能,以允许使用jConsole进行监控。通过修改`catalina.sh`文件添加JVM参数,包括设置JMX端口、禁用认证、关闭SSL,以及配置密码文件。警告,不安全的配置(如禁用认证)不适合生产环境。同时,文章提到了在连接过程中可能遇到的端口占用问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在tomcat上测试的,理论上试用于任何JAVA进程,以及任何实现JMX规范的程序.


修改$CATALINA_HOME/bin/catalina.sh文件,添加如下JVM参数

 -Dcom.sun.management.jmxremote.port=18100  //指定jmx连接端口

-Dcom.sun.management.jmxremote.authenticate=false  //This configuration is insecure. Any remote user who knows (or guesses) your JMX port number and host name will be able to monitor and control your Java application and platform. While it may be acceptable for development, it is not recommended for production systems. 这个参数默认是enabled  

 -Dcom.sun.management.jmxremote.pwd.file=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/management/jmxremote.password 

-Dcom.sun.management.jmxremote.ssl=false  //默认是true,需要指定


 -Dcom.sun.management.jmxremote.pwd.file 这个参数指定的file路径,默认是在$JRE_HOME/lib/management下,默认是只有一个jmxremote.password.template文件,把这个文件拷贝成jmxremote.password,修改最后2行指定用户名密码,如:monitorRole  123456(用jconsole连接的时候就用这对用户名和密码)当然,JVM参数

-Dcom.sun.management.jmxremote.authenticate=false 的时候,不用密码就可以连接


启用JMX还有很多另外的JVM参数可以配置,配置使用密码连接以及使用SSL安全连接等等,不一个个去尝试了,方法见http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html


过程中还需要修改机器的hosts,

# vi /etc/hosts 

127.0.0.1   (修改成机器ip)                   localhost localhost.localdomain localhost

修改机器主机名的文件(可不修改,但是要跟hosts匹配):/etc/sysconfig/network



注意:在catalina.sh文件中添加上面这些JVM参数后,运行shutdown.sh的时候,会提示jmxremote端口被占用,原因是运行shutdown.sh脚本的时候会启动一个JVM,又会尝试绑定jmxremote的端口,导致这个问题。见https://issues.apache.org/bugzilla/show_bug.cgi?id=36976。暂时没想办法去解决它,直接kill进程了(应该可以通过配置解决)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值