阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Tomcat开启JMX监控详解

614次阅读
没有评论

共计 3660 个字符,预计需要花费 10 分钟才能阅读完成。

搭建模拟环境:
 操作系统: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、需要配置用户名、密码:
Tomcat 开启 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=true
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
Tomcat 开启 JMX 监控详解

配置后的截图:

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
Tomcat 开启 JMX 监控详解
[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 监控详解

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 端口连接不上了

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3660字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7995165
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...