千家信息网

【Zabbix4.2学习笔记】8、数据收集-JMX Agent

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,JMX Agent 用于监控java类的应用JMX Agent 可以实现各种操作系统,系统架构,网络协议的标准化和应用管理Server端配置:zabbix server 安装时需要启动JAVA Gat
千家信息网最后更新 2025年12月03日【Zabbix4.2学习笔记】8、数据收集-JMX Agent

JMX Agent 用于监控java类的应用

JMX Agent 可以实现各种操作系统,系统架构,网络协议的标准化和应用管理

Server端配置:

zabbix server 安装时需要启动JAVA Gateway
zabbix server 配置启动 JAVA Gateway
zabbix server 配置 JAVA Gateway/JAVA GatewayPort参数
zabbix server 配置 StartJavaPollers参数
保障zabbix server和JMX 应用的IP+Port通信

被监控端配置:

开启并正确配置JMX

数据收集流程

ZabbixServer向Zabbix Java Gateway 组件发起获取数据请求,Java Gateway收到请求后会向被监控的Java 应用发起数据请求。
被监控端收到请求,并且响应对应的监控数据。Zabbix Java Gateway收到数据后,会返回给ZabbixServer。

查看Server端是否有安装JavaGateway
[root@localhost ~]# rpm -qa|grep zabbix

如果没有安装的话,安装命令:
yum -y install zabbix-java-gateway-4.2.6-1.el7.x86_64
也可以用yum查找安装包
yum search zabbix
更改zabbixJavaGateway的配置文件
[root@localhost zabbix]# grep ^[a-Z] /etc/zabbix/zabbix_java_gateway.conf LISTEN_IP="0.0.0.0"LISTEN_PORT=10052PID_FILE="/var/run/zabbix/zabbix_java.pid"START_POLLERS=5TIMEOUT=3JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
启动zabbix JavaGateway[root@localhost ~]# systemctl start zabbix-java-gateway.service[root@localhost ~]# systemctl status zabbix-java-gateway.service● zabbix-java-gateway.service - Zabbix Java Gateway   Loaded: loaded (/usr/lib/systemd/system/zabbix-java-gateway.service; disabled; vendor preset: disabled)   Active: active (running) since 二 2019-09-17 21:00:41 CST; 10s ago  Process: 24955 ExecStart=/usr/sbin/zabbix_java_gateway (code=exited, status=0/SUCCESS) Main PID: 24959 (java)   CGroup: /system.slice/zabbix-java-gateway.service           └─24959 java -server -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremot...9月 17 21:00:39 localhost.localdomain systemd[1]: Starting Zabbix Java Gateway...9月 17 21:00:41 localhost.localdomain systemd[1]: Started Zabbix Java Gateway.
更改ZabbixServer配置文件
[root@localhost zabbix]# grep ^[a-Z] /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.logLogFileSize=0PidFile=/var/run/zabbix/zabbix_server.pidSocketDir=/var/run/zabbixDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=zabbixStartTrappers=10JavaGateway=192.168.146.133JavaGatewayPort=10052StartJavaPollers=5SNMPTrapperFile=/tmp/zabbix_traps.tmpStartSNMPTrapper=1Timeout=4AlertScriptsPath=/usr/lib/zabbix/alertscriptsExternalScripts=/usr/lib/zabbix/externalscriptsSSHKeyLocation=/home/zabbix/.sshLogSlowQueries=3000StatsAllowedIP=127.0.0.1
查看Java pollers的进程是否启用
[root@localhost ~]# ps -aux|grep javazabbix    24959  0.7  1.7 3369484 51500 ?       Sl   21:00   0:02 java -server -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-4.2.6.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.startPollers=5 -Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGatewayzabbix    25593  0.0  0.1 164224  3660 ?        S    21:05   0:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000071 sec, idle 5 sec]zabbix    25594  0.0  0.1 164224  3660 ?        S    21:05   0:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000015 sec, idle 5 sec]zabbix    25595  0.0  0.1 164224  3660 ?        S    21:05   0:00 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.000015 sec, idle 5 sec]zabbix    25596  0.0  0.1 164224  3660 ?        S    21:05   0:00 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000030 sec, idle 5 sec]zabbix    25597  0.0  0.1 164224  3660 ?        S    21:05   0:00 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000047 sec, idle 5 sec]root      25707  0.0  0.0 112724   984 pts/1    S+   21:06   0:00 grep --color=auto java
在agent端安装jdk1.8.0
[root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel[root@localhost ~]# which java/usr/bin/java
添加jdk环境变量
[root@localhost ~]# vim /etc/profile最后一行加入export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar[root@localhost ~]# source /etc/profile[root@localhost ~]# echo $JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64
下载安装Tomcat
[root@localhost data]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.tar.gz--2019-09-17 20:25:01--  http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.tar.gz正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:9722154 (9.3M) [application/octet-stream]正在保存至: "apache-tomcat-8.5.45.tar.gz"100%[======================================================================>] 9,722,154   2.14MB/s 用时 4.3s   2019-09-17 20:25:05 (2.14 MB/s) - 已保存 "apache-tomcat-8.5.45.tar.gz" [9722154/9722154])
解压并启动Tomcat
[root@localhost]# mkdir /data[root@localhost]# cd /data[root@localhost data]# tar xvf apache-tomcat-8.5.45.tar.gz[root@localhost data]# cd bin/[root@localhost bin]# ./startup.sh 
查看Tomcat日志,进程
[root@localhost data]# vim ../logs/catalina.out[root@localhost data]# ps aux|grep tomcat
配置Tomcat启用JMX
[root@localhost data]# vim /data/apache-tomcat-8.5.45/bin/catalina.shCATALINA_OPTS="$CATALINA_OPTS-Djavax.management.builder.initial=-Dcom.sun.management.jmxremote=true-Dcom.sun.management.jmxremote.port=12345-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false-Djava.rmi.server.hostname=192.168.146.134"
重启Tomcat
[root@localhost bin]# ./shutdown.sh [root@localhost bin]# ./startup.sh
在zabbixweb管理前端创建监控项
首先在主机添加对应JMX的监控接口


在最新数据可以看到已经获取到监控数据


×××学习

0