java VisualVM 遠程連接linux的tomcat

       白天看了看如何VisualVM如何遠程連接到linux的tomcat上,進行一般的jvm的監控,真不容易啊,白天搞了好大一陣子都沒有搞定,晚上一小會就搞定了,總結原因還是因爲之前找的那個的如何連接的文章寫的不好,真是誤導大衆啊。其中VisualVM支持兩種一種是jmx,一種是jstatd,我們先做jmx的方式

     在這裏把如何連接記錄一下,方便下次進行連接:首先把java_home下的jre/lib/management目錄下的jmxremote.password.template拷貝一份,並且把他重命名爲jmxremote.password,打開jmxremote.password 去除# monitorRole  QED 和 # controlRole  R&D前的註釋,然後在tomcat的bin中的catalina.sh 中在JAVA_OPTS環境變量的賦值下面加入

       JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.137.102
                                                     -Dcom.sun.management.jmxremote=true
                                                     -Dcom.sun.management.jmxremote.port=18999

                                                     -Dcom.sun.management.jmxremote.ssl=false 

                                                     -Dcom.sun.management.jmxremote.authenticate=false"

其中-Djava.rmi.server.hostname=192.168.137.102,後面是服務器tomcat所在的ip,Dcom.sun.management.jmxremote.port=18999是jmx遠程調用開放的端口,-Dcom.sun.management.jmxremote=true表示支撐遠程調用,-Dcom.sun.management.jmxremote.ssl=false 表示不需要開啓ssl, -Dcom.sun.management.jmxremote.authenticate=false表示不需要開啓用戶名密碼驗證,記得把那個遠程調用開放的端口通過防火牆,用完,記得及時把它關了,然後我們在VisualVM中選擇遠程->添加遠程主機->輸入遠程的那臺機器的ip也就是-Djava.rmi.server.hostname=後面配置的ip,然後在對應的ip那裏選擇添加jmx,輸入-Djava.rmi.server.hostname=配置的ip與-Dcom.sun.management.jmxremote.port=配置的端口,這樣確定就好了。挺簡單的。但是這樣安裝我們沒法看visual gc插件中的信息或者出現不受此jvm支持,我們如何解決這個問題?我們就只能採用第二種方式也就是添加jstatd的方式就可以解決了。

     如何添加jstatd?首先在JAVA_HOME的bin下,創建jstatd.all.policy文件,把如下內容放到裏面  

  grant codebase "file:${java.home}/../lib/tools.jar" {       

  permission java.security.AllPermission;     

};

然後在bin目錄下,執行:

./jstatd -J-Djava.rmi.server.hostname=192.168.137.102 -J-Djava.security.policy=jstatd.all.policy -p 9999

其中-J-Djava.rmi.server.hostname=後面是服務器的地址,-p 9999表示調用的端口是9999,這樣就可以避免端口衝突。然後再遠程的機器添加jstatd

連接,這樣就添加好了,搞定了,也很簡單。

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