使用JVisualVM 远程监控Tomcat程序中使用JMX鉴权访问
1、配置JMX访问文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# cd $CATALINA_HOME/conf/
# cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.password
# chmod 700 jmxremote.password (一定注意这个文件默认是不可写的)
# vi $CATALINA_HOME/conf/jmxremote.password
在最下面添加一个用户(第一个是用户名 第二个是密码)
fox 123456
# chmod 400 jmxremote.password (要求该文件是任何用户均不可写的)
# cp $JAVA_HOME/jre/lib/management/jmxremote.access jmxremote.access
# vi jmxremote.access (该文件是对jmx用户的授权)
到最后一行 将
monitorRole readonly
controlRole readwrite
注释 更改为
# monitorRole readonly
# controlRole readwrite
然后在最后添加一行
fox readwrite
# chmod 400 jmxremote.access
2、 配置Tomcat启动参数
1
2
3
4
5
6
7
8
9
10
11
12
13
# cd $CATALINA_HOME/bin
# vi catalina.sh
找到以下一行
# ----- Execute The Requested Command -----------------------------------------
在其上方添加一段脚本 加在最后的目的是要沿用之前的JAVA_OPTS和CATALINA_HOME变量设置(特别是堆内存参数设置) 网上文章说法有直接设置JAVA_OPTS的 不过这样设置在stop的时候会有异常抛出 虽然不影响使用
(参数意义依次是:
-Dcom.sun.management.jmxremote 启用JMX远程监控
-Dcom.sun.management.jmxremote.port=9004 使用端口9004(可随意指定只要不冲突)
-Dcom.sun.management.jmxremote.authenticate=true 远程连接需要密码认证
-Dcom.sun.management.jmxremote.ssl=false 不使用SSL(SSL我试了多次都没有配置成功:P 暂时不开启)
-Dcom.sun.management.jmxremote.access.file=$CATALINA_HOME/conf/jmxremote.access 使用指定的JMX帐号授权文件
-Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password 使用指定的JMX帐号文件)
重新启动远程Java程序后,再次配置JVisualVM JMX连接就好了。
页:
[1]