zabbix 监控tomcat
- zabbix-server对java程序的数据采集需要使用java gateway组件
- java gateway是一个独立于zabbix server和zabbix agent的组件,也就是java gateway可以是单独的一台服务器,
但是也可以和zabbix server或者zabbix agent公用一台服务器 - zabbix监控tomcat的指标有堆栈内存利用率、当前会话连接数、繁忙线程等
安装手册 https://www.zabbix.com/documentation/5.0/zh/manual/concepts/java
包地址 https://repo.zabbix.com/zabbix/
1 安装java gateway
yum -y install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-java-gateway-5.0.12-1.el7.x86_64.rpm
cp /etc/zabbix/zabbix_java_gateway.conf{,.bak}
cat > /etc/zabbix/zabbix_java_gateway.conf << eof
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=50
TIMEOUT=30
eof
systemctl enable --now zabbix-java-gateway
2 配置zabbix server调用java gateway
cat >> /etc/zabbix/zabbix_server.conf << eof
# zabbix server java gateway 配置
#监听地址
JavaGateway=192.168.1.113
#指定java gateway的服务器监听端口,如果是默认端口可以不写
JavaGatewayPort=10052
#启动多少个进程去轮训 java gateway
StartJavaPollers=20
eof
systemctl restart zabbix-server
3 tomcat配置JMX监控
JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务,通常使用JMX来监控系统的运行状态
# tomcat启动脚本添加以下参数
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.1.107"
#启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x" #tomcat主机自己的IP地址,不是zabbix服务器的地址
systemctl restart tomcat
4 zabbix server添加JMX监控
cat >> /etc/zabbix/zabbix_server.conf << eof
# zabbix-java-gate config
JavaGateway=192.168.1.113
JavaGatewayPort=10052
StartJavaPollers=5
eof
systemctl restart zabbix-server
$ 5 zabbix web GUI配置
# 1 配置 -- 主机 -- 添加主机 -- 添加 jmx接口 -- 关联模板
# 2 查看GUI数据
PS
https://www.zabbix.com/documentation/5.0/manual/config/items/itemtypes/jmx_monitoring
JMX 客户端工具(cmdline-jmxclient)