tomcat監(jiān)控 — JMX方式(1)

線上的系統(tǒng)總會(huì)出現(xiàn)運(yùn)行變慢的情況,它又不能像在本地開發(fā)那樣可以直接進(jìn)行調(diào)試,那就必須進(jìn)行遠(yuǎn)程監(jiān)控,下面就說一下tomcat的監(jiān)控配置。

本文是 tomcat7為例,其它版本的tomcat也是一樣的。

參數(shù)的說明:

#啟動(dòng)jmx遠(yuǎn)程管理
-Dcom.sun.management.jmxremote
#提供服務(wù)的網(wǎng)卡ip地址,不配置表示允許所有網(wǎng)卡提供服務(wù)。注意是服務(wù)器的ip,不是允許連接的客戶端ip啊,這個(gè)和redis一樣的
-Djava.rmi.server.hostname=10.211.55.6
#提供服務(wù)的端口
-Dcom.sun.management.jmxremote.port=9999
#是否使用ssl安全協(xié)議
-Dcom.sun.management.jmxremote.ssl=false
#是否使用身份認(rèn)證
-Dcom.sun.management.jmxremote.authenticate=false
#身份認(rèn)證的賬號密碼
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
#身份認(rèn)證的賬號的權(quán)限
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access”

更詳細(xì)的配置可以看 https://blog.csdn.net/dongdong2980/article/details/78476393

由于服務(wù)器都是在內(nèi)網(wǎng),并且我也配置了防火墻,所有為了方便,下面使用不開啟身份認(rèn)證進(jìn)行配置。

-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.211.55.6
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

一、以windows服務(wù)方式運(yùn)行

在windows 服務(wù)器,tomcat 一般都是按照成服務(wù)運(yùn)行,這時(shí)候就算直接在服務(wù)器上打開監(jiān)控工具,如jvisualvm、jconsole,也是看不到本地監(jiān)控進(jìn)程的。


jconsole

網(wǎng)上很多教程都是叫人改tomcat服務(wù)注冊列表參數(shù),但是其實(shí)有更簡單的方法,就是直接使用tomcat7w 這個(gè)軟件配置。
這個(gè)軟件是在tomcat的bin目錄下,直接命令行運(yùn)行 tomcat7w.exe //ES//tomcat的服務(wù)名 就可以了。

image

該軟件可以配置tomcat的很多參數(shù),包括內(nèi)存等等。
我們把參數(shù)粘貼到下面紅框位置,再點(diǎn)擊確定,重啟tomcat就可以。注意:每一行后面不用帶空格,不然讀取數(shù)字會(huì)報(bào)錯(cuò)

image

重啟完tomcat以后用jconsole測試一下能不能連接,注意:如果你設(shè)置了連接的服務(wù)器ip,那么就只能用該ip連接

image

二、以 catalina 腳本運(yùn)行(一般是linux)

如果我們是使用startup.bat 或者 是startup.sh啟動(dòng)tomcat,最后也是使用 catalina 腳本的 start 方法啟動(dòng)tomcat,那么在本地進(jìn)程哪里就可以看到的。

linux就是以catalina 腳本運(yùn)行的,但是由于生產(chǎn)環(huán)境的linux一般不安裝可視化桌面的,所以圖形化的監(jiān)控工具不能在本地使用,那么必須要配置遠(yuǎn)程監(jiān)控,讓我們在其它的機(jī)器中,如windows的電腦中監(jiān)控。

在tomcat 的bin目錄下的setenv.bat或者setenv.sh文件添加下面的內(nèi)容,沒有就新建該文件。

  • linux 的是setenv.sh 文件,加入下面內(nèi)容
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.211.55.6 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

保存文件,授予執(zhí)行權(quán)限: sudo chmod a+x setenv.sh

  • windows 是 setenv.bat,加入下面內(nèi)容
set "CATALINA_OPTS=-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.211.55.6 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

重啟tomcat,關(guān)閉防火墻,在另外一個(gè)電腦上使用jconsole測試連接,方法參考上面。


上面的配置在關(guān)閉防火墻的時(shí)候是可以遠(yuǎn)程連接,但是,一旦打開防火墻只有哪怕開放了配置的端口(9999),也是不能連接的,下一篇文章就講一下怎么解決這個(gè)問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容