服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - 通过Tomcat开启JMX监控的方法图解

通过Tomcat开启JMX监控的方法图解

2021-09-12 16:22阳光与叶子 Tomcat

这篇文章主要介绍了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不需要账号密码: 

?
1
2
3
4
5
6
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、需要配置用户名、密码: 

?
1
2
3
4
5
6
7
8
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   

?
1
2
3
4
5
6
7
[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的也可以使用)

      网址:

      根据自己的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

     添加下面内容:  

?
1
2
<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监控的方法图解,希望对大家有所帮助!

原文链接:https://www.cnblogs.com/yangzhaon/p/12102794.html

延伸 · 阅读

精彩推荐
  • TomcatEclipse创建tomcat实现过程原理详解

    Eclipse创建tomcat实现过程原理详解

    这篇文章主要介绍了Eclipse创建tomcat实现过程原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    海绵般汲取11642021-09-16
  • Tomcat一次tomcat源码启动控制台中文乱码的调试过程记录

    一次tomcat源码启动控制台中文乱码的调试过程记录

    平时在使用tomcat做一些服务的时候经常遇到各种乱码问题,下面这篇文章主要给大家介绍了一次tomcat源码启动控制台中文乱码的调试过程,需要的朋友可以...

    zhoutaoping199211852021-09-24
  • Tomcat如何查看tomcat的控制台输出的方法

    如何查看tomcat的控制台输出的方法

    这篇文章主要介绍了如何查看tomcat的控制台输出的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    CaiCaiNeo11932021-08-29
  • Tomcat解决Tomcat的maxPostSize属性的配置需要注意的问题

    解决Tomcat的maxPostSize属性的配置需要注意的问题

    这篇文章主要介绍了解决Tomcat的maxPostSize属性的配置需要注意的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...

    life is wonderful12012021-09-13
  • TomcatTomcat安装配置方法图文教程

    Tomcat安装配置方法图文教程

    这篇文章主要为大家详细介绍了Tomcat安装配置方法图文教程,java环境变量如何配置,Eclipse安装配置方法图文教程 ,为大家分享了三个教程,感兴趣的小伙...

    Tomcat教程网13292021-08-11
  • TomcatTomcat服务器的安全设置

    Tomcat服务器的安全设置

    tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过,在默认配置下其存在一定的安...

    IT专家网9002021-08-03
  • TomcatTomcat整体结构简单介绍

    Tomcat整体结构简单介绍

    这篇文章主要介绍了Tomcat整体结构简单介绍,Tomcat的本质是一个Servlet容器。一个Servlet能做的事情是:处理请求资源,并为客户端填充response对象,需要的朋友...

    叫我田露也行12302021-09-07
  • TomcatTomcat CentOS安装实现过程图解

    Tomcat CentOS安装实现过程图解

    这篇文章主要介绍了Tomcat CentOS安装实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考...

    agrin5842021-09-15