tomcat 配置JMX

回复 收藏

JMX是Java Management Extensions的简写,翻译为Java管理扩展。JMX是Java官方提供的一套用于监控Java程序和JVM运行时状态的标准API,通过JMX我们可以监控服务器的硬件资源(CPU、内存等)、JVM内存使用情况、JVM线程情况、JVM中的类的情况等指标。总之,一句话JMX主要用来帮助我们监控JVM。

今天我们的主角是Tomcat,那么JMX和Tomcat是什么关系?其实,它俩倒没啥关系,JMX是在JDK当中用的,但是Tomcat在启动的时候可以顺便把JMX启开(简单讲就是监听了一个端口)。也就是说,不管你是用Tomcat,还是用Jboss或者Weblogic都可以开启JMX。

那么在Tomcat服务器上如何开启JMX呢?

1)编辑catalina.sh

# vim /usr/local/tomcat/bin/catalina.sh
# 在#!/bin/bash下面增加:
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.18.101
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

说明:

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote #启用JMX远程监控。

-Dcom.sun.management.jmxremote.ssl=false #是否使用SSL。

-Dcom.sun.management.jmxremote.authenticate=false #是否开启认证,还支持开启认证,需要定义用户名、密码。

-Djava.rmi.server.hostname=192.168.18.101" #Tomcat所在服务器IP。

-Dcom.sun.management.jmxremote.port=9999 #定义监听端口。

2)重启Tomcat

# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh

3)检测监听端口

# netstat -ltnp |grep 9999

提醒:如果不使用认证,则一定要做一个安全策略,比如针对JMX端口(本例为9999)做一个iptables策略,只允许连接JMX的IP(比如,zabbix)放行。

JMX开启后,我们再到windows上安装一个Jconsole,其实安装JDK就有Jconsole了,到Oracle官网下载JDK(地址https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 先点击"Accept License Agreement",然后点击Windows X64就会自动下载了,下载后双击进行安装。

安装后,找到jdk安装路径,进入bin文件夹,然后找到jconsole.exe文件双击就可以运行起来了。输入JMX的IP:Port连接,如下图:

jmx1.png

然后点击“不安全的连接”,进入Jconsole界面:

jmx2.png

这样可以看到内存、线程、类等信息:

jmx3.png

2019-05-26 07:22 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: