您的位置:首页 > 运维架构 > Tomcat

linux下使用JMX监控tomcat

2015-12-15 18:06 288 查看
1、JMX:
JMX(Java Management Extensions)Java管理扩展,是一个为应用程序植入管理功能的框架,是一套标准的代理跟服务。总而言之,它可以使得基于java语言开发的程序能被管理,并且是可扩展的。现在,IBM、jboss、hibernate、tomcat等各种应用都号称实现了JMX规范。

1)应用场景:

用来管理应用程序的配置项,可以在运行期动态改变配置项的值,而不用妨碍程序的运行,这对与许多可靠性要求较高的应用来说非常方便;

可以通过jconsole等JMX客户端工具动态改变配置项的值;

用来对应用程序的运行状态进行监控,比如对一个大型交易处理程序,我们要监控当前有多少交易在排队中,每笔交易的处理时间是多少,平均每处理一笔交易要花多少时间等等;


2、JConsole:
JConsole是从Java5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具。 JConsole可以连接本地的Java程序,也可以连接远程的Java程序。

1)可以使用jconsole监视本地应用程序和远程应用程序:
如下图,直接输入jconsole命令后,会弹出如下对话框。



如果监控本地程序,可以输入jconsole pid,其中pid是线程id;

如果监控远程程序,需要输入远程应用的ip和port,其中port是在启动应用是,使用java启动参数:-Dcom.sun.management.jmxremote.port=12345
指定的端口号。


2)远程连接时的认证:

可以使用下面的java启动参数指定远程服务器的用户认证:

-Dcom.sun.management.jmxremote.password.file=$J***A_HOME/jconsole/jmxremote.password

如果不需要认证,那么使用下面的java启动参数:

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false


3、使用JConsole监控tomcat:
1)修改bin/catalina.sh文件,在#
-----Execute The Requested Command ------上面,加上如下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9004

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false"
2)重启tomcat;

3)打开Jconsole,选择远程进程,然后输入远程tomcat
的ip和上面设置的端口(9004);

4)由于没有使用认证,所以会不安全下提示;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: