佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 通過Tomcat開啟JMX監(jiān)控的方法圖解

通過Tomcat開啟JMX監(jiān)控的方法圖解

熱門標(biāo)簽:檢查注冊(cè)表項(xiàng) 美圖手機(jī) 網(wǎng)站建設(shè) 使用U盤裝系統(tǒng) 阿里云 硅谷的囚徒呼叫中心 智能手機(jī) 百度競價(jià)點(diǎn)擊價(jià)格的計(jì)算公式

搭建模擬環(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ù)說明:

      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ù)說明:

      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è)地方可以通過命令查找:

            # 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)不起來

            # 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下測試

        

         

         

          

          

        雙擊打開jmx連接

           

          

      4.2、重啟tomcat,測試jmx是否還可以連接上

         # ./shutdown.sh

        4.2.1、再次連接jmx查看是否可以連接上

          數(shù)據(jù)監(jiān)控圖都查看不了,連接不上

          

          

為什會(huì)出現(xiàn)這個(gè)問題?

    網(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)變了,再次通過注冊(cè)端口連接已經(jīng)連接不上之前的服務(wù)端口了,沒有辦法指定服務(wù)端連接,服務(wù)端口是隨機(jī)的。

      有一種方法是設(shè)置jmx固定的注冊(cè)端口和服務(wù)端口,通過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、把下載下來的上傳到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測試,jmx注冊(cè)端口為10001,服務(wù)端口為10002

      

      

     

     

     

   10、重啟tomcat再次連接測試

       當(dāng)我們雙擊之前創(chuàng)建的jmx遠(yuǎn)程連接的時(shí)候會(huì)發(fā)現(xiàn)也連接不上,這是為什么呢,這里我們要注意上面連接中的pid號(hào),經(jīng)過查詢,我們發(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、到這里我們就測試成功了,這樣在我們使用zabbix使用jmx監(jiān)控tomcat的時(shí)候就不用擔(dān)心tomcat重啟jmx端口連接不上了

   總結(jié)

以上所述是小編給大家介紹的通過Tomcat開啟JMX監(jiān)控的方法圖解,希望對(duì)大家有所幫助!

標(biāo)簽:賀州 黃山 湖北 山南 懷化 湘潭 煙臺(tái) 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《通過Tomcat開啟JMX監(jiān)控的方法圖解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    全州县| 从化市| 鸡西市| 庆阳市| 贵州省| 天镇县| 黔西| 扎鲁特旗| 武川县| 衢州市| 遵义县| 顺义区| 铜梁县| 广平县| 团风县| 磐安县| 合作市| 湘西| 芜湖县| 新干县| 威信县| 保亭| 保靖县| 林甸县| 呈贡县| 乡城县| 汝城县| 定日县| 独山县| 开封市| 安平县| 宕昌县| 南川市| 通渭县| 潍坊市| 嘉峪关市| 济阳县| 泊头市| 尚志市| 徐汇区| 全南县|