本文使用的tomcat版本為7.0.77。
要通過(guò)JMX遠(yuǎn)程監(jiān)控tomcat,首先需要進(jìn)行Tomcat的JMX遠(yuǎn)程配置。
注意:此配置應(yīng)添加在catalina.bat文件開(kāi)頭的注釋行(rem或#)之后。
無(wú)需鑒權(quán)的配置:
首先修改Tomcat的啟動(dòng)腳本,Windows下為bin/catalina.bat(Linux下為catalina.sh),添加以下內(nèi)容:
set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG%
Linux下的配置為:
JAVA_OPTS=-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
其中,-Dcom.sun.management.jmxremote.port=8999是JMX遠(yuǎn)程使用的端口號(hào),可以根據(jù)需要修改。-Dcom.sun.management.jmxremote.authenticate=false表示無(wú)需鑒權(quán),只需主機(jī)和端口號(hào)即可進(jìn)行監(jiān)控。
需要鑒權(quán)的配置:
set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG%
復(fù)制并修改授權(quán)文件:
在JAVA_HOME/jre/lib/management目錄下有jmxremote.access和jmxremote.password.template的模板文件,將這兩個(gè)文件復(fù)制到CATALINA_BASE/conf目錄下,并重命名jmxremote.password.template文件為jmxremote.password。
修改CATALINA_BASE/conf/jmxremote.access,添加以下內(nèi)容:
monitorRole readonly controlRole readwrite
修改CATALINA_BASE/conf/jmxremote.password,添加以下內(nèi)容:
monitorRole liuke #可自定義 controlRole liuke #可自定義
使用jconsole或jvisualvm測(cè)試JMX:
運(yùn)行JAVA_HOME/bin目錄下的jconsole或jvisualvm,打開(kāi)控制臺(tái),然后建立連接,填寫(xiě)地址、端口號(hào)、用戶名和口令即可連接。