Java_jvisualvm使用JMX連接遠程機器(實踐)



一、啟動普通的jar程序
1、執行foo.jar啟動命令
java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote. ssl=false -Dcom.sun.management.jmxremote. authenticate=false -jar foo.jar

2、12345為需要監控的端口,遠程機器需要開啟

3、foo.jar為程序名稱

4、本機jvisualvm添加監控
 
 
5、異常情況: VisualVM 無法使用 service:jmx:rmi:///jndi/rmi:///jmxrmi 連接到
關閉遠程機器的防火牆即可:service iptables stop
不關閉防火牆的解決方案: http://qian0021514578.iteye.com/blog/2189041
原因:
除了JMX server指定的監聽端口號外,JMXserver還會監聽一到兩個隨機端口號,
可以通過命grep <pid> 來查看當前java進程需要監聽的隨機端口號

6、遠程連接啟動 authenticate ssl參數
authenticate設置為例
a)  jmx連接使用安全憑證,這里的憑證不是linux的登錄賬號密碼,需要單獨設置

b)  jar程序啟動命令
java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote. authenticate=true -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote. access.file=/usr/local/jmxremote.access -Dcom.sun.management.jmxremote. password.file=/usr/local/jmxremote.password -jar  foo .jar

c)  jmxremote.access內容
admin readwrite

d)  jmxremote.password 內容
admin 123456

使用 service:jmx:rmi:///jndi/rmi:///jmxrmi 連接到XX.xx.xx.x

e) 兩個文件授權(必須按下面方式授權,chmod777都不行)
chmod 600 jmxremote.access
chmod 600 jmxremote.password
chown root:root jmxremote.access
chown root:root jmxremote.password

f) jvisual vm使用

   
   
   
           
 

二、監控tomcat程序






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM