zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
【Zabbix监控Tomcat工作原理】
Zabbix-server要知道java应用程序的某项性能的使用时候 ,会启动自身的一个Zabbix-JavaPollers进程去链接zabbix-JavaGateway请求数据,而zabbix-Javagateway收到请求后并使用;“JMXmanagentAPI”去查询特定的应用程序,而前提是应用程序这端在开启的时候 需要“-Dcom.sun.management.jmxremote”参数来开启JMX远程查询就行,JAVA程序会启动自身的一个简单的小程序端口向Zabbix-JavaGatway提供请求数据。
java gateway与zabbix-server端配置
1、安装java gateway
#这里直接在zabbix server上安装 yum install -y java zabbix-java-gateway
2、修改zabbix-java-gateway配置文件
[[email protected] ~]# vim /etc/zabbix/zabbix_java_gateway.conf LISTEN_IP="0.0.0.0" 监听的IP地址 LISTEN_PORT=10052 监听的端口 PID_FILE="/var/run/zabbix/zabbix_java.pid" 存放pid路径 START_POLLERS=5 开通几个进程,默认是5。 TIMEOUT=3 超时时间1-30,如果网络环境差,超时时间就修改长一点 #启动java geteway systemctl start zabbix-java-gateway && systemctl enable zabbix-java-gateway #查看进程 [[email protected] ~]# netstat -ntlp |grep 10052 tcp6 0 0 :::10052 :::* LISTEN 34530/java
3、修改zabbix-server 配置
[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf 编辑zabbix-server来指定zabbix-java-gateway JavaGateway=127.0.0.1 #IP地址是安装java-gateway的服务器 JavaGatewayPort=10052 #端口,默认就可以 StartJavaPollers=5 #预启动进程 #重启zabbix-server服务 systemctl restart zabbix-server
Tomcat应用端配置
1、修改脚本文件
vim /opt/tomcat/bin/catalina.sh #添加在# Execute The Requested Command 这一行之上 export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.1.231 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" ./shutdown.sh #关闭tomcat ./startup.sh #启动tomcat #查看进程端口 [[email protected] bin]# netstat -ntlp tcp6 0 0 :::12345 :::* LISTEN 19049/java
#参数解析
-Dcom.sun.management.jmxremote #启用JMX远程监控。
-Dcom.sun.management.jmxremote.ssl=false #是否使用SSL。
-Dcom.sun.management.jmxremote.authenticate=false #是否开启认证
-Dcom.sun.management.jmxremote.port=12345 #端口号
-Djava.rmi.server.hostname=192.168.1.231 #Tomcat所在服务器IP
2、可以下载jdk工具打开jconsole.exe测试连接查看数据
web界面设置
1、在安装tomcat的主机上添加监控
2、查看图形
JMX自定义模板
https://gitlab.com/anonym0x1/share-code/blob/master/zabbix%20templates/JMX_templates.xml