JDK自帶工具JCONSOLE,可以以圖形界面遠程監控JVM的情況,也可作相應的一些操作。
1、修改Tomcat的啟動語句,將bin/catalina.sh文件vi編輯:
將原
JAVA_OPTS="-Xmx1024M -Xms512M -Xss3M"
export JAVA_OPTS
調整為
JAVA_OPTS="-Xmx1024M -Xms512M -Xss3M -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
export JAVA_OPTS
如果是JBOSS,還需加這一行
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=10.0.122.132",如果不加就連不上
檢查LINUX環境:
運行:
hostname -i,如果返回127.0.0.1,則要改/etc/sysconfig/network里的HOSTNAME為NEWHOST,再在/etc/hosts里增加一行本機IP對應NEWHOST的值。
清除防火墻的所有東西:iptables -F!!
參考:
http://dikar.iteye.com/blog/534109
2、修改jmx配置文件
目錄切換至JAVA_HOME所在目錄
/jre/lib/management下,
a、將jmxremote.access、jmxremote.password.template權限調整為讀寫;
chmod 600 jmxremote.password.template
chmod 600 jmxremote.access
b、jmxremote.password.template文件重命名
mv jmxremote.password.template jmxremote.password
c、vi jmxremote.password
去掉
# monitorRole QED
# controlRole R&D
的#號(Solaris下可編輯模式下,可以使用x刪除光標標記處字符)
:wq 保存操作
3、啟動Tomcat
./catalina.sh run
4、查看JMX啟動情況
netstat -a | grep -i 9999 查看端口占有情況
如機器9999端口被其他程序占用,可調整端口-Dcom.sun.management.jmxremote.port=????
5、客戶端機器可通過jconsole或visualvm對其進行監控
使用JMX方式,輸入url 用戶名(controlRole)、密碼(R&D)即可訪問
url:遠程主機IP:9999