前提环境

需要一个部署好zabbix 5.0的环境

详细部署流程看这篇:CentOs7安装部署zabbix5.0详细流程(ip为:192.168.1.130)

需要一个部署好tomcat的环境

详细部署流程看这篇:linux安装jdk,tomcat详细流程(ip为:192.168.1.134)

Zabbix JMX 监控架构

当zabbix server 需要知道Java应用程序的某项性能时候,会启动一个StartJavaPollers进程连接Zabbix-JavaGateway 请求数据,而zabbix Javagateway收到请求后使用“JMXmanagentAPI”去查询特定的应用程序;
前提是:应用程序端需要通过“Docm.sun.managment,jmxremote”开启JMX远程查询,并开启12345端口,向zabbix-JavaGateway提供性能数据。

在这里插入图片描述
配置zabbix监控Java应用程序关键在于:配置JavaGateway,让zabbix server能够连接到JavaGateway,Tomcat开启JVM远程监控功能

配置Tomcat 客户端

开启Tomcat JMX

#编辑运行脚本
[root@localhost ~]# vi /usr/local/tomcat/apache-tomcat-9.0.56/bin/catalina.sh 
在脚本开头加入下面语句
CATALINA_OPTS="-Docm.sun.management.jmxremote 
               -Docm.sun.management.jmxremote.authenticate=false
               -Docm.sun.management.jmxremote.ssl=false
               -Docm.sun.management.jmxremote.port=12345
               -Djava.rmi.server.hostname=192.168.1.134"
参数说明
-Docm.sun.management.jmxremote启用JMX
-Docm.sun.management.jmxremote.authenticate=false是否开启认证,看是否有需求(若开启,需要定义账户和密码)
-Docm.sun.management.jmxremote.ssl=false远程ssl验证
-Docm.sun.management.jmxremote.port=12345远程监听端口
-Djava.rmi.server.hostname=192.168.1.134Tomcat 所在服务器IP

重启Tomcat,发生错误,原因不要在catalina.sh 脚本里面配置

解决方法

详细流程,看这篇:配置catalian.sh不生效,jmx端口起不来,

#tomcat bin/路径下创建脚本

[root@localhost ~]# vi /usr/local/tomcat/apache-tomcat-9.0.56/bin/setenv.sh

#写入一下语句
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=192.168.1.134"  
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=12345"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.rmi.port=12345"   
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"

zabbix server端配置

安装jdk

#创建jdk文件
[root@localhost ~]# mkdir /usr/local/jdk
#将jdk包解压到jdk文件夹下
[root@localhost ~]# tar zxvf /home/jdk-8u311-linux-x64.tar.gz  -C /usr/local/jdk/
[root@localhost ~]# cd /usr/local/jdk
[root@localhost jdk]# ll
总用量 0
drwxr-xr-x 8 10143 10143 273 9月  27 20:29 jdk1.8.0_311
[root@localhost jdk]# 

jdk下载地址:jdk官网下载地址
页面向下翻,我这里是安装jdk8
在这里插入图片描述

修配置环境

 [root@localhost jdk]# vi /etc/profile  
  #文件最后加上下面四句,配置一下环境
 export JAVA_HOME=/usr/local/jdk/jdk1.8.0_311
 export JRE_HOME=${JAVA_HOME}/jre
 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
 export PATH=${JAVA_HOME}/bin:$PATH

#看下是否安装成功
[root@localhost jdk]# source  /etc/profile    #定义环境变量生效
[root@localhost jdk]# java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
[root@localhost jdk]# 

#安装成功

安装zabbix-java-gateway

[root@localhost jdk]# yum list zabbix*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * centos-sclo-rh: mirrors.163.com
 * centos-sclo-sclo: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
已安装的软件包
zabbix-agent.x86_64                                                                             5.0.18-1.el7                                                               @zabbix         
zabbix-get.x86_64                                                                               5.0.18-1.el7                                                               @zabbix         
zabbix-nginx-conf-scl.noarch                                                                    5.0.18-1.el7                                                               @zabbix-frontend
zabbix-release.noarch                                                                           5.0-1.el7                                                                  installed       
zabbix-server-mysql.x86_64                                                                      5.0.18-1.el7                                                               @zabbix         
zabbix-web.noarch                                                                               5.0.18-1.el7                                                               @zabbix-frontend
zabbix-web-deps-scl.noarch                                                                      5.0.18-1.el7                                                               @zabbix-frontend
zabbix-web-mysql-scl.noarch                                                                     5.0.18-1.el7                                                               @zabbix-frontend
可安装的软件包
zabbix-agent2.x86_64                                                                            5.0.18-1.el7                                                               zabbix          
zabbix-apache-conf-scl.noarch                                                                   5.0.18-1.el7                                                               zabbix-frontend 
zabbix-java-gateway.x86_64                                                                      5.0.18-1.el7                                                               zabbix          
zabbix-js.x86_64                                                                                5.0.18-1.el7                                                               zabbix          
zabbix-proxy-mysql.x86_64                                                                       5.0.18-1.el7                                                               zabbix          
zabbix-proxy-pgsql.x86_64                                                                       5.0.18-1.el7                                                               zabbix          
zabbix-proxy-sqlite3.x86_64                                                                     5.0.18-1.el7                                                               zabbix          
zabbix-sender.x86_64                                                                            5.0.18-1.el7                                                               zabbix          
zabbix-server-pgsql.x86_64                                                                      5.0.18-1.el7                                                               zabbix          
zabbix-web-deps-scl-php73.noarch                                                                5.0.18-1.el7                                                               zabbix-frontend 
zabbix-web-japanese.noarch                                                                      5.0.18-1.el7                                                               zabbix-frontend 
zabbix-web-mysql-scl-php73.noarch                                                               5.0.18-1.el7                                                               zabbix-frontend 
zabbix-web-pgsql-scl.noarch                                                                     5.0.18-1.el7                                                               zabbix-frontend 
zabbix-web-pgsql-scl-php73.noarch                                                               5.0.18-1.el7                                                               zabbix-frontend
[root@localhost jdk]# yum install zabbix-java-gateway.x86_64  -y

总下载量:991 k
安装大小:2.0 M
Downloading packages:
zabbix-java-gateway-5.0.18-1.el7.x86_64.rpm                                                                                                                         | 991 kB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : zabbix-java-gateway-5.0.18-1.el7.x86_64                                                                                                                                1/1 
  验证中      : zabbix-java-gateway-5.0.18-1.el7.x86_64                                                                                                                                1/1 

已安装:
  zabbix-java-gateway.x86_64 0:5.0.18-1.el7                                                                                                                                                

完毕!

开启java-gateway

[root@localhost jdk]# systemctl start zabbix-java-gateway.service 
[root@localhost jdk]# systemctl enable  zabbix-java-gateway.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/systemd/system/zabbix-java-gateway.service.
[root@localhost jdk]# netstat -antup | grep 10052
tcp6       0      0 :::10052                :::*                    LISTEN      4134/java           
[root@localhost jdk]# 

修改zabbix server配置文件,配置Java-Gateway

[root@localhost jdk]# vi /etc/zabbix/zabbix_server.conf 

#将下面语句的注释去掉,并修改参数
 JavaGateway=127.0.0.1  #修改为javagateway所在的服务器的ip地址,这里javagateway在zabbix server同在一台机器上,所以配置为127.0.0.1
 JavaGatewayPort=10052  #端口号
 StartJavaPollers=5     #进程数,大于客户端的数量

#重启服务
[root@localhost jdk]# systemctl restart zabbix-server.service 
[root@localhost jdk]# cd ~


用工具cmdline-jmxclient-0.10.3.jar 测试,出现回显信息,就是成功

cmdline-jmxclient-0.10.3.jar下载:链接:https://pan.baidu.com/s/17ZV_qgkLv_wLj4faSwPhlg
提取码:xukd

[root@localhost ~]# java -jar /home/cmdline-jmxclient-0.10.3.jar - 192.168.1.134:12345 java.lang:type=Memory HeapMemoryUsage
12/23/2021 16:54:42 +0800 org.archive.jmx.Client HeapMemoryUsage: 
committed: 24244224
init: 16777216
max: 247332864
used: 14229288

web端配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐