@Zabbix使用JMX监控Tomcat

一、zabbix部署安装

【zabbix5.0部署安装】

二、服务端部署

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    

三、客户端部署

【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、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"]

主机添加

在这里插入图片描述

监控项添加

在这里插入图片描述

图形添加使用

在这里插入图片描述

posted @ 2021-10-26 11:34  ଲ一笑奈&何  阅读(100)  评论(0编辑  收藏  举报