使用jconsole監(jiān)聽遠程Tomcat服務的方法
JConsole是什么
從Java 5開始 引入了 JConsole。JConsole 是一個內置 Java 性能分析器,可以從命令行或在 GUI shell 中運行。您可以輕松地使用 JConsole(或者,它更高端的 “近親” VisualVM )來監(jiān)控 Java 應用程序性能和跟蹤 Java 中的代碼。
1. 獲取遠程服務器的地址和可用端口號
我拿的是我自己的阿里云主機,服務器地址為39.107.68.142,端口號為8696
查看端口號是否可用: netstat -tunlp|grep 8696
![]() |
我們可以看出上面的6969已經(jīng)被使用,8696未被使用。
查看進程啟動的端口
netstat -antup |grep 32594
查看端口監(jiān)聽情況
lsof -i:1234
2. 修改tomcat的啟動腳本開啟JMX
修改catalina.sh 腳本文件 在文件開頭添加
JAVA_OPTS="-Djava.rmi.server.hostname=39.107.68.142 -Dcom.sun.management.jmxremote.port=8696 -Dcom.sun.management.jmxremote.rmi.port=8696 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
其中
-Dcom.sun.management.jmxremote.port=9696 //連接端口,自定義不要與已有的端口沖突
-Dcom.sun.management.jmxremote.rmi.port=8696 //這句一定要添加,不添加就無法成功
-Dcom.sun.management.jmxremote.authenticate=false //不需要密碼登陸
-Dcom.sun.management.jmxremote.ssl=false //不需要安全證書
-Djava.rmi.server.hostname=39.107.68.142 //這個ip是自己服務器的外網(wǎng)ip
位置:
3. 重啟tomcat服務
使用shutdown.sh關閉服務的時候可能會報Error: JMX connector server communication error: service:jmx:rmi://dusk:8696錯誤
不用管 直接殺掉 kill -9 進程號
查看進程: ps -ef|grep tomcat
然后啟動服務 startup.sh
使用netstat -tunlp|grep 8696
確認端口是否已經(jīng)處于監(jiān)聽狀態(tài)
4. 開放端口號
如果我們開啟了防火墻需要在防火墻中開放這個端口
查看防火墻狀態(tài)service iptables status
開放端口:
(1)通過vi /etc/sysconfig/iptables 進入編輯增添一條-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT 即可
(2)執(zhí)行 /etc/init.d/iptables restart 命令將iptables服務重啟
如果是阿里云主機還需要再安全組中開放端口:
5.打開本地jconsole監(jiān)控遠程服務
在遠程進程中輸入: 39.107.68.142:8696 點擊連接
然后就可以查看JVM允許狀況
總結
以上所述是小編給大家介紹的使用jconsole監(jiān)聽遠程Tomcat服務的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
Tomcat啟動時JAR包報錯Invalid byte tag in const
在開發(fā)Java Web應用時,我們經(jīng)常會使用Apache Tomcat作為 Servlet容器進行部署和測試,然而,在項目啟動過程中,有時會遇到類似于“Invalid byte tag in constant pool”的異常,本文將詳細分析這一問題的成因,并探討幾種有效的解決方案,需要的朋友可以參考下2024-10-10tomcat以及tomcat環(huán)境變量安裝配置方法教程
這篇文章主要為大家詳細介紹了tomcat以及tomcat環(huán)境變量安裝配置方法教程,感興趣的小伙伴們可以參考一下2016-06-06深度解析Tomcat 線程池與 JDK 線程池的區(qū)別和聯(lián)系
Tomcat 線程池和 JDK 線程池都是在 Java 開發(fā)中非常有用的工具,用于處理不同類型的并發(fā)任務,本文將深入探討 Tomcat 線程池與JDK 線程池之間的區(qū)別和聯(lián)系,以幫助開發(fā)人員更好地理解它們的工作原理和如何在自己的項目中使用它們2023-11-11