溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過Tomcat開啟JMX監控

發布時間:2021-07-29 14:14:32 來源:億速云 閱讀:308 作者:小新 欄目:服務器

這篇文章給大家分享的是有關如何通過Tomcat開啟JMX監控的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

搭建模擬環境:
操作系統:centos7
內存:1G
jdk:1.8.0_131
tomcat:8.0.48

環境準備我們這里就不直接演示了,直接配置tomcat的jmx  

1、進入到tomcat的bin目錄下

      # cd /opt/tomcat/apache-tomcat-8.0.48/bin/

    2、編輯配置文件

      # vim catalina.sh

    3、在下圖中上面添加參數

      如何通過Tomcat開啟JMX監控

    參數添加后的樣子

      3.1、此配置連接jmx不需要賬號密碼: 

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"

      配置后的截圖:

       如何通過Tomcat開啟JMX監控

    參數說明:

      hostname:是監控tomcat所在服務器的ip地址

      jmxremote.port:端口號,是要開啟的監控端口號

      jmxremote.ssl:是否要開啟ssl連接

      authenticate:false表示監控不需要用戶和密碼

      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"

      配置后的截圖:

       如何通過Tomcat開啟JMX監控

    參數說明:

      authenticate:為true開啟賬號驗證

      access.file:權限文件路徑

      password.file:密碼文件路徑

      3.3、當沒有配置密碼驗證的時候,不需要此步操作,當啟用用戶、密碼驗證后需要操作此步驟

        3.3.1、找到jdk安裝目錄

          如果不知道安裝到目錄那個地方可以通過命令查找:

            # java -verbose

            如何通過Tomcat開啟JMX監控

        3.3.2、切換到jdk目錄中

            如何通過Tomcat開啟JMX監控

            進入# cd jre/lib/management/

            在文件目錄下會有jmxremote.access jmxremote.password.template文件,拷貝到tomcat的conf目錄下

              # cp jmxremote.* /opt/tomcat/apache-tomcat-8.0.48/conf/

        3.3.3、修改jmxremote.access文件

            如何通過Tomcat開啟JMX監控

        3.3.4、重命名密碼文件:

            # mv jmxremote.password.template jmxremote.password

        3.3.5、編輯密碼文件

            # vim jmxremote.password

            如何通過Tomcat開啟JMX監控

        3.3.6、編輯完文件后,要修改access文件和password文件權限,不然tomcat啟動不起來

            # chmod 600 jmxremote.*

   4、啟動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.

       如何通過Tomcat開啟JMX監控

      4.1、做完上面操作,使用jdk自帶的jvisualvm.exe連接,可以在windows下測試

        如何通過Tomcat開啟JMX監控

         如何通過Tomcat開啟JMX監控

         如何通過Tomcat開啟JMX監控

          如何通過Tomcat開啟JMX監控

          如何通過Tomcat開啟JMX監控

        雙擊打開jmx連接

           如何通過Tomcat開啟JMX監控

          如何通過Tomcat開啟JMX監控

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

         # ./shutdown.sh

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

          數據監控圖都查看不了,連接不上

          如何通過Tomcat開啟JMX監控

          如何通過Tomcat開啟JMX監控

為什會出現這個問題?

    網上給出的結論是:

      tomcat的jmx遠程健康是需要兩個端口,一個是注冊端口,一個是服務端口,之前配置指定的9999端口是注冊端口,tomcat在啟動的時候會隨機指定一個服務端口,由于我們注冊端口只有一個,所以在重啟服務后,注冊端口沒有變化,服務端口已經變了,再次通過注冊端口連接已經連接不上之前的服務端口了,沒有辦法指定服務端連接,服務端口是隨機的。

      有一種方法是設置jmx固定的注冊端口和服務端口,通過jar包實現

   5、登錄tomcat官網(注意,我的tomcat版本是1.8.0的官網上只有1.8.5的也可以使用)

      網址:https://tomcat.apache.org/

      根據自己的tomcat版本找到JMX Remote jar

      如何通過Tomcat開啟JMX監控

   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

       如何通過Tomcat開啟JMX監控

   7、編輯tomcat的conf目錄下的server.xml文件   

     # vim server.xml

     添加下面內容:  

 <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
 rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

     如何通過Tomcat開啟JMX監控

   8、編輯tomcat的bin目錄下catalina.sh

     # vim catalina.sh

     刪除參數:

       -Dcom.sun.management.jmxremote.port=9999

      如何通過Tomcat開啟JMX監控

   9、重啟tomcat測試,jmx注冊端口為10001,服務端口為10002

      如何通過Tomcat開啟JMX監控

      如何通過Tomcat開啟JMX監控

     如何通過Tomcat開啟JMX監控

     如何通過Tomcat開啟JMX監控

     如何通過Tomcat開啟JMX監控

   10、重啟tomcat再次連接測試

       當我們雙擊之前創建的jmx遠程連接的時候會發現也連接不上,這是為什么呢,這里我們要注意上面連接中的pid號,經過查詢,我們發現這個pid號就是linux中tomcat的pid號,當我們重啟tomcat后,會產生新的pid號,所以我們想要連接就要新建一個連接

       如何通過Tomcat開啟JMX監控

       如何通過Tomcat開啟JMX監控

   11、我們再次新建jmx連接的時候會獲取新的pid號

       如何通過Tomcat開啟JMX監控

      如何通過Tomcat開啟JMX監控

   12、到這里我們就測試成功了,這樣在我們使用zabbix使用jmx監控tomcat的時候就不用擔心tomcat重啟jmx端口連接不上了

感謝各位的閱讀!關于“如何通過Tomcat開啟JMX監控”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女