linux tomcat8 配置 jmx监控

时间:2021-01-01 04:22:53

linux tomcat8 配置 jmx监控

1.编辑tomcat/bin/catalina.sh

找到如下位置

# Uncomment the following line to make the umask available when using the
# org.apache.catalina.security.SecurityListener
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"

# ----- Execute The Requested Command -----------------------------------------

# Bugzilla 37848: only output this if we have a TTY

Execute The Requested Command前加入如下代码:

CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=10.12.116.135 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8088 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"

其中的 hostname换成你本机的ip, port 默认为8088。

2.编辑jmxremote.access和jmxremote.password

进入默认按照的 jdk 目录:

cd /usr/java/jdk1.8.0_45/jre/lib/management
cp jmxremote.password.template jmxremote.password

编辑最后的账户密码,去掉注释,密码改下别用默认的。

# Following are two commented-out entries.  The "measureRole" role has
# password "QED". The "controlRole" role has password "R&D".
#
monitorRole QEDworld
controlRole R&Dhello

把文件改为运行 tomcat 的用户,如果已经是,则不需要修改

chown admin jmxremote.password jmxremote.access
chgrp admin jmxremote.password jmxremote.access

修改文件权限600,这是 java 的规范,防止别的用户看到你密码

chmod 600 jmxremote.access jmxremote.password

下面是我修改完之后的文件的模样:)

 [root@vm-xy-mms-nfsq management]# ll
总用量 32
-rw------- 1 admin admin 3998 411 2015 jmxremote.access
-rw------- 1 admin admin 2862 417 09:45 jmxremote.password
-rw-r--r-- 1 root root 2856 411 2015 jmxremote.password.template
-rw-r--r-- 1 root root 14097 411 2015 management.properties
-rw-r--r-- 1 root root 3376 411 2015 snmp.acl.template

3. 重新启动 tomcat

重新启动 tomcat,

sh bin/shutdown.sh
sh bin/startup.sh

看 logs日志,能看到刚刚catalina.sh配置的jmx配置信息,确认 tomcat 启动正常,无报错。

17-Apr-2016 09:54:38.152 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=10.3.0.105
17-Apr-2016 09:54:38.152 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote
17-Apr-2016 09:54:38.152 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=8088
17-Apr-2016 09:54:38.152 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
17-Apr-2016 09:54:38.152 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=true

4.用jvisualvm验证是否可用

mac terminal 直接输入jvisualvm(jdk 默认自带的) 看到如下画面:

linux tomcat8 配置 jmx监控

建立远程连接

linux tomcat8 配置 jmx监控

添加 jmx 连接,输入刚刚配置的账户和密码。

linux tomcat8 配置 jmx监控
linux tomcat8 配置 jmx监控

点击新建的 jmx,看到监控信息,配置成功:)

linux tomcat8 配置 jmx监控