使用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連接就好了。
wKioL1d4yqiQRi07AAFZSzh0EaI856.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章