tomcat 开启 jmx 监控 可使用 jconsole zabbix jmx 监控等
环境:
centos7
tomcat8
jdk8
1. tomcat 开启 jmx
修改tomcat的实际启动脚本catalina.sh
无密码连接配置
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.33.55 (服务器ip) -Dcom.sun.management.jmxremote.port=3838 -Dcom.sun.management.jmxremote.rmi.port=3838 -Dcom.sun.management.jmxremote.ssl=false (是否使用ssl 验证,通常为false) -Dcom.sun.management.jmxremote.authenticate=false" (是否需要校验连接用户)
有密码连接配置
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.33.55 (服务器ip) -Dcom.sun.management.jmxremote.port=3838 -Dcom.sun.management.jmxremote.rmi.port=3838 -Dcom.sun.management.jmxremote.ssl=false (是否使用ssl 验证,通常为false) -Dcom.sun.management.jmxremote.authenticate=true (是否需要校验连接用户) -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password (连接用户配置文件) -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"(连接用户配置文件)
如果需要使用密码,还需要以下操作:
切换到以下目录。 (%JAVA_HOME%/jre/lib/management)
cd /usr/java/jdk1.8.0_162/jre/lib/management/
拷贝用户,权限文件。将jmxremote.access jmxremote.password 复制到 tomcat_base 下的conf目录
jmxremote.access 设置用户权限
jmxremote.password.template文件,将其重命名为jmxremote.password,这就是控制远程连接的用户名密码的。
更改文件权限
chmod 600 jmxremote.password chmod 600 jmxremote.access
不修改权限启动tomcat时 catalina.out日志里面会看到报错,tomcat实际没启动成功
修改jmxremote.password最后两行取消注释,默认用户生效。monitorRole只读;controlRole读写。也可以新建用户
-Dcom.sun.management.jmxremote.rmi.port=3838 这个参数很少有人提及,在本人的(centos7+java8)的环境下,不添加这个jconsole是连接不了的。(原因:JMXis base on RMI, which open two port when it start. )
2、防火墙设置,开放端口
firewall-cmd --add-port=3838/tcp --permanent firewall-cmd --reload
3. jconsole 连接
console是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗。
共 0 条评论