歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> JConsole監控遠程Tomcat服務器

JConsole監控遠程Tomcat服務器

日期:2017/2/27 14:57:29   编辑:Linux配置
為了解決內存溢出的問題,會用到一些監視內存的工具,jconsole這個工具在jdk1.7自帶了
這個工具可以查看系統的堆,非堆,線程,等等的一些整體的情況,從而可以判斷出系統的一個大概的性能情況。
catalina.sh或者新增setenv.sh來設置(下面是新增tomcat/bin/setenv.sh文件方法)
CATALINA_OPTS='-Djava.rmi.server.hostname=192.168.1.110 \
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8081 \
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'
特別注意:
1. 如果你的linux系統下hostname -i顯示為127.0.0.1,則jconsole將連接不上遠程服務器
方法一可以修改/etc/hosts文件,將其第一行的"127.0.0.1 localhost.localdomain localhost",修改為:"192.168.1.110 localhost.localdomain localhost",其中,"192.168.1.110"為實際的服務器的IP地址。hosename -i輸出結果為192.168.1.110,JConsole圖形界面才能顯示出來,但是用此方法可能會有問題,如sendmail;
推薦使用方法二,在JAVA_OPTS加上'-Djava.rmi.server.hostname=192.168.1.110'

2. -Dcom.sun.management.jmxremote.port=8081,這個端點是jconsole專用的,不要和你的系統的端口沖突。再啟動你的應用。

3. 看了網上很多文章都是在catalina.sh文件中加JAVA_OPTS,這樣是有問題的,關閉tomcat會報該端口已經被占用,因為關閉 tomcat時候,還會讀取catalina.sh,所有最好在startup.sh文件中添加JAVA_OPTS那一段。

4. 最後雙擊本機jdk1.6/bin/jconsole.exe,啟動Jconsole監控界面,在遠程連接處輸 入:192.168.1.110:8081,不需要輸入用戶名和密碼,連接即可,- Dcom.sun.management.jmxremote.authenticate=false,設置成了false,所以如果不知道Linux機 器的用戶名和密碼,也可以不輸入,直接連接。

由於tomcat jmx接口端口是隨機分配的,所以這種方式必須關閉iptables。下面來看看怎麼指定端口分配並加上密碼驗證:
cd /usr/local/tomcat/conf
cp /usr/java/jdk1.7.0_71/jre/lib/management/jmxremote.access ./ 
cp /usr/java/jdk1.7.0_71/jre/lib/management/jmxremote.password.template ./jmxremote.password   
chmod 600 jmxremote.access jmxremote.password  
jmxremote.access 一般保持原始內容不變即可。

對於jmxremote.password,將其中的:
monitorRole linuxeye
controlRole linuxeye
井號注釋取消掉。其中monitorRole為只擁有只讀權限的角色,controlRole有更高權限:讀寫等等。

新增tomcat/bin/setenv.sh
CATALINA_OPTS="
  -Djava.rmi.server.hostname=192.168.1.110
  -Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
  -Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access
  -Dcom.sun.management.jmxremote.ssl=false"
下載catalina-jmx-remote.jar,放到tomcat/lib目錄下
cd tomcat/lib
wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.57/bin/extras/catalina-jmx-remote.jar
編輯server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
....
  <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8081" rmiServerPortPlatform="8082" />

最後將固定的端口加入防火牆信任列表
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8082 -j ACCEPT
重啟tomcat

可以使用netstat -an | grep -E '8081|8082'命令查看端口是否正常啟動。
打開windows java安裝路徑Java\jdk1.7.0_71\bin、jconsole.exe,輸入服務器端相關信息:

點擊”連接”,進入監控頁面:

原文:http://blog.linuxeye.com/262.html
Copyright © Linux教程網 All Rights Reserved