Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦。所有后来为了解决这个监控问题,Zabbix和Java双方应运生成了各自的代理监控程序:zabbix 2.0以后添加了服务进程zabbix-java-gateway;Java有了JMX,全称是Java Management Extensions,即Java管理扩展。
# wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz
# tar xf apache-tomcat-8.5.61.tar.gz -C /app/
# vim /app/apache-tomcat-8.5.61/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Djava.rmi.server.hostname=10.1.1.200
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false"
## 启动
# /app/apache-tomcat-8.5.61/bin/startup.sh
windows 有java环境的在jdk/bin目录下运行jconsole
yum -y install zabbix-java-gateway
[root@bj_proxy ~]$grep ^[a-Z] /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0" // 本机ip地址,如果和server安装在相同的位置可以不修改
LISTEN_PORT=10052 // 监听端口
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5 // 设置启动多个线程,这里和server段相同
[root@bj_proxy ~]$systemctl start zabbix-java-gateway.service
[root@bj_proxy ~]$systemctl enable zabbix-java-gateway.service
zabbix-java-gateway默认工作在10052端口
[root@zabbix ~]# grep ^[a-Z] /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
StartDiscoverers=2
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
#### 重启服务
systemctl restart zabbix-server.service