使用JVisualVM 远程监控Tomcat程序中使用JMX鉴权访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JVisualVM 远程监控Tomcat程序中使用JMX鉴权访问相关的知识,希望对你有一定的参考价值。

如何配置JVisualVM远程监控Tomcat程序请参考:http://hiandroidstudio.blog.51cto.com/5902332/1795310


1、配置JMX访问文件

    # 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启动参数    

# 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连接就好了。
技术分享

本文出自 “Hiandroid工作室” 博客,请务必保留此出处http://hiandroidstudio.blog.51cto.com/5902332/1795340

以上是关于使用JVisualVM 远程监控Tomcat程序中使用JMX鉴权访问的主要内容,如果未能解决你的问题,请参考以下文章

tomcat监控

jvisualvm远程监控Tomcat

JVisualVM 内存采样:不支持远程应用程序

jconsole和jvisualvm监控tomcat配置

如何使用JDK自带jvisualvm监控工具

如何使用JDK自带jvisualvm监控工具