一、啟動普通的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進程需要監聽的隨機端口號
可以通過命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程序