通過(guò)Tomcat開啟JMX監(jiān)控的方法圖解
搭建模擬環(huán)境:
操作系統(tǒng):centos7
內(nèi)存:1G
jdk:1.8.0_131
tomcat:8.0.48
環(huán)境準(zhǔn)備我們這里就不直接演示了,直接配置tomcat的jmx
1、進(jìn)入到tomcat的bin目錄下
# cd /opt/tomcat/apache-tomcat-8.0.48/bin/
2、編輯配置文件
# vim catalina.sh
3、在下圖中上面添加參數(shù)
參數(shù)添加后的樣子
3.1、此配置連接jmx不需要賬號(hào)密碼:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.117 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
配置后的截圖:
參數(shù)說(shuō)明:
hostname:是監(jiān)控tomcat所在服務(wù)器的ip地址
jmxremote.port:端口號(hào),是要開啟的監(jiān)控端口號(hào)
jmxremote.ssl:是否要開啟ssl連接
authenticate:false表示監(jiān)控不需要用戶和密碼
3.2、需要配置用戶名、密碼:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.100.117 -Dcom.sun.management.jmxremote.port=9999 -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"
配置后的截圖:
參數(shù)說(shuō)明:
authenticate:為true開啟賬號(hào)驗(yàn)證
access.file:權(quán)限文件路徑
password.file:密碼文件路徑
3.3、當(dāng)沒有配置密碼驗(yàn)證的時(shí)候,不需要此步操作,當(dāng)啟用用戶、密碼驗(yàn)證后需要操作此步驟
3.3.1、找到j(luò)dk安裝目錄
如果不知道安裝到目錄那個(gè)地方可以通過(guò)命令查找:
# java -verbose
3.3.2、切換到j(luò)dk目錄中
進(jìn)入# cd jre/lib/management/
在文件目錄下會(huì)有jmxremote.access jmxremote.password.template文件,拷貝到tomcat的conf目錄下
# cp jmxremote.* /opt/tomcat/apache-tomcat-8.0.48/conf/
3.3.3、修改jmxremote.access文件
3.3.4、重命名密碼文件:
# mv jmxremote.password.template jmxremote.password
3.3.5、編輯密碼文件
# vim jmxremote.password
3.3.6、編輯完文件后,要修改access文件和password文件權(quán)限,不然tomcat啟動(dòng)不起來(lái)
# chmod 600 jmxremote.*
4、啟動(dòng)tomcat
[root@ha bin]# ./startup.sh Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.0.48 Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.0.48 Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.0.48/temp Using JRE_HOME: /usr Using CLASSPATH: /opt/tomcat/apache-tomcat-8.0.48/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.0.48/bin/tomcat-juli.jar Tomcat started.
4.1、做完上面操作,使用jdk自帶的jvisualvm.exe連接,可以在windows下測(cè)試
雙擊打開jmx連接
4.2、重啟tomcat,測(cè)試jmx是否還可以連接上
# ./shutdown.sh
4.2.1、再次連接jmx查看是否可以連接上
數(shù)據(jù)監(jiān)控圖都查看不了,連接不上
為什會(huì)出現(xiàn)這個(gè)問(wèn)題?
網(wǎng)上給出的結(jié)論是:
tomcat的jmx遠(yuǎn)程健康是需要兩個(gè)端口,一個(gè)是注冊(cè)端口,一個(gè)是服務(wù)端口,之前配置指定的9999端口是注冊(cè)端口,tomcat在啟動(dòng)的時(shí)候會(huì)隨機(jī)指定一個(gè)服務(wù)端口,由于我們注冊(cè)端口只有一個(gè),所以在重啟服務(wù)后,注冊(cè)端口沒有變化,服務(wù)端口已經(jīng)變了,再次通過(guò)注冊(cè)端口連接已經(jīng)連接不上之前的服務(wù)端口了,沒有辦法指定服務(wù)端連接,服務(wù)端口是隨機(jī)的。
有一種方法是設(shè)置jmx固定的注冊(cè)端口和服務(wù)端口,通過(guò)jar包實(shí)現(xiàn)
5、登錄tomcat官網(wǎng)(注意,我的tomcat版本是1.8.0的官網(wǎng)上只有1.8.5的也可以使用)
網(wǎng)址:https://tomcat.apache.org/
根據(jù)自己的tomcat版本找到JMX Remote jar
6、把下載下來(lái)的上傳到tomcta的lib目錄下
獲取jar包的連接也可以直接wget到lib目錄下
# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/extras/catalina-jmx-remote.jar
7、編輯tomcat的conf目錄下的server.xml文件
# vim server.xml
添加下面內(nèi)容:
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
8、編輯tomcat的bin目錄下catalina.sh
# vim catalina.sh
刪除參數(shù):
-Dcom.sun.management.jmxremote.port=9999
9、重啟tomcat測(cè)試,jmx注冊(cè)端口為10001,服務(wù)端口為10002
10、重啟tomcat再次連接測(cè)試
當(dāng)我們雙擊之前創(chuàng)建的jmx遠(yuǎn)程連接的時(shí)候會(huì)發(fā)現(xiàn)也連接不上,這是為什么呢,這里我們要注意上面連接中的pid號(hào),經(jīng)過(guò)查詢,我們發(fā)現(xiàn)這個(gè)pid號(hào)就是linux中tomcat的pid號(hào),當(dāng)我們重啟tomcat后,會(huì)產(chǎn)生新的pid號(hào),所以我們想要連接就要新建一個(gè)連接
11、我們?cè)俅涡陆╦mx連接的時(shí)候會(huì)獲取新的pid號(hào)
12、到這里我們就測(cè)試成功了,這樣在我們使用zabbix使用jmx監(jiān)控tomcat的時(shí)候就不用擔(dān)心tomcat重啟jmx端口連接不上了
總結(jié)
以上所述是小編給大家介紹的通過(guò)Tomcat開啟JMX監(jiān)控的方法圖解,希望對(duì)大家有所幫助!
相關(guān)文章
IDEA Maven項(xiàng)目使用debug模式運(yùn)行Tomcat的詳細(xì)教程
這篇文章主要介紹了IDEA Maven項(xiàng)目使用debug模式運(yùn)行Tomcat的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06vue實(shí)現(xiàn)表單數(shù)據(jù)驗(yàn)證的實(shí)例代碼
這篇文章主要介紹了vue實(shí)現(xiàn)表單數(shù)據(jù)驗(yàn)證的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06一文告訴你如何解決Tomcat亂碼問(wèn)題(很詳細(xì)!)
這篇文章主要給大家介紹了關(guān)于如何解決Tomcat亂碼問(wèn)題的相關(guān)資料,還給大家介紹了tomcat窗口中文亂碼的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03完美解決Tomcat關(guān)閉后報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了完美解決Tomcat關(guān)閉后報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06解決Tomcat 中catalina.out持續(xù)累加問(wèn)題
這篇文章主要介紹了解決Tomcat 中catalina.out持續(xù)累加問(wèn)題 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03Unable?to?start?embedded?Tomcat?Nacos啟動(dòng)報(bào)錯(cuò)的解決方案
Windows?本地啟動(dòng)?Nacos(2.2.0)?服務(wù),控制臺(tái)報(bào)錯(cuò)?Unable?to?start?embedded?Tomcat,報(bào)錯(cuò)信息:Unable?to?start?embedded?Tomcat,無(wú)法加載內(nèi)置的tomcat,本文介紹了Unable?to?start?embedded?Tomcat?Nacos啟動(dòng)報(bào)錯(cuò)解決方案,需要的朋友可以參考下2024-08-08startup.bat啟動(dòng)Tomcat閃退問(wèn)題原因及解決
本文主要介紹了startup.bat啟動(dòng)Tomcat閃退問(wèn)題原因及解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04解析Tomcat的啟動(dòng)腳本--startup.bat
本文主要對(duì)Tomcat的三個(gè)最重要的啟動(dòng)腳本之一--startup.bat腳本做了詳細(xì)分析,具有很好的參考價(jià)值,需要的朋友可以看下2016-12-12