通过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、在下图中上面添加参数

      

    参数添加后的样子

      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"

      配置后的截图:

       

    参数说明:

      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"

      配置后的截图:

       

    参数说明:

      authenticate:为true开启账号验证

      access.file:权限文件路径

      password.file:密码文件路径

      3.3、当没有配置密码验证的时候,不需要此步操作,当启用用户、密码验证后需要操作此步骤

        3.3.1、找到jdk安装目录

          如果不知道安装到目录那个地方可以通过命令查找:

            # java -verbose

            

        3.3.2、切换到jdk目录中

            

            进入# 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文件

            

        3.3.4、重命名密码文件:

            # mv jmxremote.password.template jmxremote.password

        3.3.5、编辑密码文件

            # vim jmxremote.password

            

        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.

       

      4.1、做完上面操作,使用jdk自带的jvisualvm.exe连接,可以在windows下测试

        

         

         

          

          

        双击打开jmx连接

           

          

      4.2、重启tomcat,测试jmx是否还可以连接上

         # ./shutdown.sh

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

          数据监控图都查看不了,连接不上

          

          

为什会出现这个问题?

    网上给出的结论是:

      tomcat的jmx远程健康是需要两个端口,一个是注册端口,一个是服务端口,之前配置指定的9999端口是注册端口,tomcat在启动的时候会随机指定一个服务端口,由于我们注册端口只有一个,所以在重启服务后,注册端口没有变化,服务端口已经变了,再次通过注册端口连接已经连接不上之前的服务端口了,没有办法指定服务端连接,服务端口是随机的。

      有一种方法是设置jmx固定的注册端口和服务端口,通过jar包实现

      

        

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

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

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

     添加下面内容:  

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

     

   8、编辑tomcat的bin目录下catalina.sh

     # vim catalina.sh

     删除参数:

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

      

   9、重启tomcat测试,jmx注册端口为10001,服务端口为10002

      

      

     

     

     

   10、重启tomcat再次连接测试

       当我们双击之前创建的jmx远程连接的时候会发现也连接不上,这是为什么呢,这里我们要注意上面连接中的pid号,经过查询,我们发现这个pid号就是linux中tomcat的pid号,当我们重启tomcat后,会产生新的pid号,所以我们想要连接就要新建一个连接

       

       

   11、我们再次新建jmx连接的时候会获取新的pid号

       

      

   12、到这里我们就测试成功了,这样在我们使用zabbix使用jmx监控tomcat的时候就不用担心tomcat重启jmx端口连接不上了

   总结

以上所述是小编给大家介绍的通过Tomcat开启JMX监控的方法图解,希望对大家有所帮助!

(0)

相关推荐

  • 使用JMX监控Zookeeper状态Java API

    一.背景 上一篇通过Java自带的JConsole来获取zookeeper状态.主要有几个不方便的地方,zk集群一般会部署3或者5台,在多个JConsole窗口中切换比较麻烦,各个zk服务及历史数据之间,不能直观比较.一般会做一个WEB管理页面来展示集群状态,设置报警阀值来做报警. 二.JVM平台提供Mbeans 在Java5.0以上版本,有一组API可以让Java应用程序和允许的工具监视和管理Java虚拟机(JVM)和虚拟机所在的本机操作系统.该组API在 java.lang.manageme

  • Tomcat开启JMX服务方法介绍

    Tomcat开启JMX服务很简单,只要在catalina.sh里添加: 1.CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true 2." 端口号8999可以修改为未占用的端口即可. 修改JAVA_HOME/jre/lib/management目录下面的

  • 通过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.在下图中上面添加参数 参数添加后的样子 3.1.此配置连接jmx不需要账号密码: CATALINA_OPTS="$CATALINA_OPTS -D

  • Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版)

    相关阅读: Java零基础教程之Windows下安装 JDK的方法图解 官网下载 你是 Windows 环境,所以,打开浏览器,输入地址:http://tomcat.apache.org/download-70.cgi 选择对应的 ..-bit Windows zip下载就可以了. 安装 找到你下载的 ZIP 包,解压到你认为合适的目录,其实这是免安装版. 启动 进入 bin 目录,找到startup.bat双击,这样就算启动了 Tomcat 了,现在在浏览器输入地址+端口8080(默认)即可看

  • Java项目开启远程调试的方法步骤(tomcat、springboot)

    当我们运行一个项目的时候,一般都是在本地进行debug.但是如果是一个分布式的微服务,这时候我们选择远程debug是我们开发的利器. 环境 apache-tomcat-8.5.16 Linux 如何启用远程调试 tomcat开启远程调试 方法 切换到你的tomcat的bin目录/apache-tomcat-8.5.16/bin 下,执行: ./catalina.sh jpda start 执行上面的命令就可以开启远程debug了,如果想配置一些信息,比如端口号什么的,请参考下面的说明. 参数说明

  • Java零基础教程之Windows下安装 JDK的方法图解

    官网下载 直接打开官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 我安装的是 1.7 版本,当然,你可以选择自己合适版本. 安装 下载的是.exe文件,没什么好讲的,都是直接下一步下一步.当然,你可以选择合适的安装路径,我选择了F:\Java. 接着选择jre安装路径: 环境变量 桌面上找到 计算机(此电脑)右键,点击属性--高级系统设置--环境变量,就可以开始编辑了.

  • Spring Boot使用Druid和监控配置方法

    Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能. 下面来说明如何在 Spring Boot 中配置使用Druid (1)添加Maven依赖 (或jar包)\ <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId&g

  • spring boot 添加admin监控的方法

    一.Spring Boot  Admin简介 spring boot admin github开源地址:https://github.com/codecentric/spring-boot-admin 它主要的作用是在Spring Boot Actuator的基础上提供简洁的WEB UI展示. 二.项目使用: 1.搭建一个maven web项目 2.pom依赖配置 <dependency> <groupId>org.springframework.boot</groupId&

  • Intellij IDEA 热部署处理方法(图解)

    1. 首先参考IDEA热部署同行经验分享: Intellij IDEA 4种配置热部署的方法 2. IDEA 热部署实战: springboot项目: 不要引入热部署工具包spring-boot-devtools 在Intellij IDEA中默认是关闭了自动编译的,可以按照如下2步设置开启自动编译: 1.IDEA开启项目自动编译,进入设置,Build,Execut, Deployment -> Compiler 勾选中左侧的Build Project automatically 2.IDEA开

  • 在CentOS VPS上通过SSH安装 MySQL的方法图解

    输入yum install mysql-server 按Y继续 安装完成,设置开机启动Mysql,输入 chkconfig --levels 235 mysqld on 然后启动tomcat,输入service mysqld start 启动完毕,然后登录MYsql设置密码 输入set password for 'root'@'localhost' = password('12345678');来设置密码 至此,mysql安装完毕!然后创建数据库,首先用show databases;查看数据库

  • Maven项目改为spring boot项目的方法图解

    目录树 •新建Maven项目及步骤 •修改方法 •启动测试 新建Maven项目及步骤 我这里是从创建开始讲,使用的工具是Idea2017版本.如果是已经创建了Maven,想改为spring boot项目的请直接跳到[修改方法] 1.点击右上角的File,出来的列表选择New Object: 2.选择Maven,勾选Create from archetype,选择quickstart 3.输入GroupId与ArtifactId,Version版本号自己看着怎么顺眼怎么改:其中GroupId为包名

随机推荐