搭建模拟环境:

操作系统: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的也可以使用)

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

添加下面内容:

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

java jmx 监控tomcat_通过Tomcat开启JMX监控的方法图解相关推荐

  1. tomcat开启SSL8443端口的方法

    参考文献: http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html http://blog.sina.com.cn/s/blog_682b5aa1 ...

  2. tomcat开启SSL8443端口的方法 【文章内容仅供参考】

    文章来源:http://www.cnblogs.com/xwdreamer/p/3466661.html 参考文献: http://tomcat.apache.org/tomcat-7.0-doc/s ...

  3. linux tomcat6 jmx,Zabbix3.2.6之通过JMX监控Tomcat

    JMX的全称是Java Management Extensions,即Java管理扩展.Java程序会开放一些端口,用来获取运行状况.在Zabbix 1.8以前,只能使用Zapcat来监控JMX,并需 ...

  4. 为Java应用开启JMX服务

    . 前言 JMX(Java Management Extensions)这项技术可用于监管Java应用.通常是由被监管程序开启JMX服务,再通过 JConsole.JMC.VisualVM之类的工具利 ...

  5. 【Kafka】Window下kafka开启JMX监控

    1.概述 因为需要,需要在windows下开启kafka,然后kafka开启JMX监控 同样是修改kafka-server-start文件,但是修改的是kafka-server-start.bat I ...

  6. java jmx 开启_动态开启jmx服务

    java可以利用编写mbeans来暴露很多程序指标,jdk自己也有很多指标,例如内存使用以及划分.很多小伙伴都表示这些值不少jstat就可以获取查看的吗,ssh登录上去就可以,也很方便.jstat确实 ...

  7. zabbix监控系统下——zabbix实现数据库监控、对JMX的支持、server和agent的关系、zabbix监控报警平台

    目录 五.zabbix实现数据库监控 1.在agent端设置 2.在浏览器前端设置 六.zabbix对JMX(Java)应用的支持 七.server和agent的关系 1.agent端的信息采集变被动 ...

  8. 3. kafka开启JMX

    开启JMX kafka开启JMX的2种方式: 1. 启动kafka时增加JMX_PORT=9988,即JMX_PORT=9988 bin/kafka-server-start.sh -daemon c ...

  9. Tomcat 打开jmx

    jmx 配置后可以通过windows java客户端自带的jconsole.exe配置登陆,直观的查看jvm的情况及系统的各项指标: 一.配置linux下tomcat的jmx 具体配置如下,如果生产环 ...

最新文章

  1. python3生成二维码中间带logo,有底图,可自定义文字
  2. 【Android 插件化】VirtualApp 源码分析 ( 添加应用源码分析 | LaunchpadAdapter 适配器 | 适配器添加元素 | PackageAppData 元素 )
  3. Pathlib获取当前文件绝对路径
  4. 关于NHibernate
  5. 关闭防火墙命令 500 OOPS: cannot change directory:
  6. 删除 终端服务器,终端服务器命令更改 - Windows Server | Microsoft Docs
  7. java前言_Java Web前言
  8. python的文件读取方式_python中文件读取方式
  9. JQuery Form AjaxSubmit(options)在Asp.net中的应用注意事项
  10. uniapp APP 接入萤石云
  11. Wget 下载 ILSVRC12 数据集
  12. sql 语句 where in的使用 where like %我
  13. Windows更新驱动后无法开机的解决办法
  14. 半监督学习matlab,基于自适应图的半监督学习方法与流程
  15. 史上最简萤石云视频显示开发教程(pc端)
  16. oracle查运行sql语句,查询Oracle正在执行的SQL语句
  17. R 安装 “umap-learn“ python 包
  18. PHP制作简易问卷调查
  19. 语音识别入门 --各个模型的整理
  20. 重力加速度陀螺仪传感器MPU-6050

热门文章

  1. 计算机图形学 | 基于MFC和二维变换的画图软件
  2. 数据库八股文--藤原豆腐店自用
  3. java gui界面设计qq_Java swing界面开发(仿QQ登录界面)
  4. GIS+=地理信息+行业+大数据——纽约公开11亿条出租车和Uber原始数据下载及分析
  5. 32位系统和64的区别c语言,32位 与 64 位 区别 : CPU 操作系统 应用程序...
  6. app下载页面html源码,带弹幕 ,3分钟安装
  7. e.hash oldCap == 0 详细解读
  8. matlab画直线段,如果要在MATLAB中绘制上题中的直线段,要求 ,则对应的MATLAB语句为____________...
  9. == 和equals的比较
  10. 华东理工计算机类在哪个校区,华东理工大学有几个校区及校区地址 哪个校区最好...