@Zabbix使用JMX监控Tomcat

1|0一、zabbix部署安装

【zabbix5.0部署安装】

1|1二、服务端部署

zabix服务端安装Java工具

#下载安装包 wget http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-java-gateway-5.0.17-1.el7.x86_64.rpm #安装zabbix-java-gateway yum localinstall zabbix-java-gateway-5.0.17-1.el7.x86_64.rpm #配置文件修改zabbix-server vim zabbix_server.conf JavaGateway=127.0.0.1 #指定java gateway的地,zabbix-java-gateway安装在了zabbix-server上,所以使用本地地址 JavaGatewayPort=10052 #指定java gateway的服务器监听端口,端口号和javagateway要对应 StartJavaPollers=5 #启动多少个进程去轮训 java gateway, 要和java gateway的配置一致 Timeout=30 #启动多少个进程去轮训 java gateway, 要和java gateway的配置一致 #配置文件修改 zabbix_java_gateway vim zabbix_java_gateway.conf LISTEN_IP="0.0.0.0" #监听的地址默认是0.0.0.0,表示监听本机的所有地址 LISTEN_PORT=10052 #监听的端口 PID_FILE="/var/run/zabbix/zabbix_java.pid" #指定pid文件 START_POLLERS=5 #启动的工作线程数量,默认是5个。这里配置和serve.conf一样 TIMEOUT=20 #连接超时时长,默认是3秒,因此JAVA程序比较慢,如果超时时间太短,会导致数据获取不到 #启动服务 systemctl restart zabbix-server #重启zabbix-server systemctl start zabbix-java-gateway #启动zabbix-java-gateway systemctl enable zabbix-server #加入开机自启 #检查服务 netstat -lntp |grep java tcp6 0 0 :::10052 :::* LISTEN 1413/java

1|2三、客户端部署

【Tomcatx下载地址】

#查看是否安装 java -version yum -y remove java-* #查看库 yum -y list java* #jdk环境安装 yum -y install java-1.8.0-openjdk* #Tomcat安装(安装步骤) 1、首先确保已经安装好了jdk,并且jdk版本能够满足当前Tomcat的版本要求 2、解压缩:tar -zxvf apache-tomcat-9.0.7.tar.gz 3、将tomcat移到安装软件位置:mv apache-tomcat-9.0.7 /usr/local/ #环境变量配置 vim /etc/profile export CATALINA_HOME=/usr/local/apache-tomcat-9.0.7 #重载配置 source /etc/profile #字符集配置(找到配置8080端口的位置,在节点末尾添加URIEncoding="UTF-8") vim /usr/local/apache-tomcat-9.0.7/conf/server.xml

在这里插入图片描述

#启动及停止tomcat /usr/local/apache-tomcat-9.0.7/bin/startup.sh #启动 /usr/local/apache-tomcat-9.0.7/bin/shutdown.sh #停止 #检查状态 [root@agent ~]# netstat -lntp |grep java tcp6 0 0 :::40994 :::* LISTEN 2414/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2414/java tcp6 0 0 :::8009 :::* LISTEN 2414/java tcp6 0 0 :::9999 :::* LISTEN 2414/java tcp6 0 0 :::8080 :::* LISTEN 2414/java #配置JMX( 添加以下,获取tomcat服务器的IP地址) vim /usr/local/apache-tomcat-9.0.7/bin/catalina.sh CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=本机IP地址" #客户端地址 #端口配置(暴露一个端口给zabbix获取数据) vim /usr/local/apache-tomcat-9.0.7/conf/server.xml <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8888" rmiServerPortPlatform="8888"/>

在这里插入图片描述

#重启tomcat /usr/local/apache-tomcat-9.0.7/bin/shutdown.sh #停止 /usr/local/apache-tomcat-9.0.7/bin/startup.sh #启动 #检查状态jmx状态 netstat -lntp |grep 8888 tcp6 0 0 :::8888 :::* LISTEN 40961/java
#测试: #下载catalina-jmx-remote.jar包,到tomcat安装目录下的lib目录 wget -O /usr/local/apache-tomcat-9.0.7/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/extras/catalina-jmx-remote.jar #重启tomcat(以防万一) /usr/local/apache-tomcat-9.0.7/bin/shutdown.sh #停止 /usr/local/apache-tomcat-9.0.7/bin/startup.sh #启动 #监控测试 1、下载cmdline-jmxclient-0.10.3.jar文件,下载地址:http://crawler.archive.org/cmdline-jmxclient/downloads.html 2、本地执行如下命令查看tomcat的堆内存信息,如下所示 java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8888 java.lang:type=Memory HeapMemoryUsage 10/26/2021 10:06:30 +0800 org.archive.jmx.Client HeapMemoryUsage: committed: 24461312 init: 16777216 max: 247332864 used: 18623984

1|3四、监控项测试

1|01、jmx获取内存

#Tomcat本地查看堆内存信息 java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8888 java.lang:type=Memory HeapMemoryUsage 10/26/2021 10:08:09 +0800 org.archive.jmx.Client HeapMemoryUsage: committed: 24461312 init: 16777216 max: 247332864 used: 19293056 #zabbix监控堆内存键值 堆内存最大值: jmx["java.lang:type=Memory","HeapMemoryUsage.max"] 已用堆内存: jmx["java.lang:type=Memory","HeapMemoryUsage.used"] 已提交堆内存: jmx["java.lang:type=Memory","HeapMemoryUsage.committed"]

主机添加

在这里插入图片描述

监控项添加

在这里插入图片描述

图形添加使用

在这里插入图片描述


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/p/15657644.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(120)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示