一,zabbx使用jmx监控tomcat的原理分析
1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据
2.Zabbix-Java-Gateway找Java程序(jmx)获取数据
3.Java程序返回数据给Zabbix-Java-Gateway
4.Zabbix-Java-Gateway返回数据给Zabbix-Server
5.Zabbix-Server进行数据展示
二、配置JMX监控的步骤:
1.安装Zabbix-Java-Gateway
2.配置zabbix_java_gateway.conf参数。
3.配置zabbix-server.conf参数。
4.Tomcat应用开启JMX协议。
5.ZabbixWeb配置JMX监控的Java应用。
三,具体操作如下:
1,在zabbix_server上安装zabbix-java-gateway
yum install -y zabbix-java-gateway #如果提示不能安装,请先安装zabbix.repo源,建议安装的zabbix-java-gateway的版本和zabbix其他软件包一致。
2,安装jdk环境
cd /usr/local/src tar -zxvf jdk1.8.0_65.tar.gz mv jdk1.8.0_65 /usr/local/ vim /etc/profile.d/java.sh #!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=/usr/local/jdk1.8.0_65
export CLASSPATH=/usr/local/jdk1.8.0_65/lib/tools.jar:/usr/local/jdk1.8.0_65/lib/dt.jar source /etc/profile
3,修改java-gateway的配置文件(默认java-gateway开启的是10052端口)
vim /etc/zabbix/zabbix_java_gateway.conf 更改如下配置: #监控地址
LISTEN_IP="0.0.0.0" #监听端口
LISTEN_PORT=10052 #进程文件路径
PID_FILE="/var/run/zabbix/zabbix_java.pid" #开启的工作线程数
START_POLLERS=5 #超时
TIMEOUT=3
4,重启java-gateway服务
systemctl restart zabbix-java-gateway
5,修改zabbix_server配置文件,指定zabbix-server去javagetway获取数据的地址
vim /etc/zabbix/zabbix_server.conf # JavaGateway的服务器IP地址
JavaGateway=192.168.1.61
# JavaGateway的服务端口
JavaGatewayPort=10052
# 从javaGateway采集数据的进程数
StartJavaPollers=5
6, 重启zabbix-server服务器
systemctl restart zabbix-server
7, 在被监控的tomcat应用程序的找到catalina.sh,添加如下内容
CATALINA_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.1.36" //tomcat客户端ip 重启进程: ./shutdown.sh && ./startup.sh
8,测试jmx远程端口是否开启成功并且获取数据(java-gatewya主要是和tomcat远程端口进行通信)。测试工具有3个,供选择!其实都是连接到jmx上面去而已。
a,jmxclient (大部分人都用这个) https://sourceforge.net/projects/jmxcmd/ 打开后点击下载即可 b,jmxterm (很少有人用这个) http://sourceforge.net/projects/cyclops-group/files/jmxterm/ c,jconsole (很多人用这个) 这是个安装jdk自带的工具,需要支持图形化。如果你的电脑安装了jdk,那么就会还有这个工具了。
9,安装测试工具完成之后,测试是否能够获取数据。(ps:有的人会去下载 catalina-jmx-remote.jar这个包放到tomcat的lib目录,其实这个是不需要的)
运行刚刚下载的工具:
java -jar jmxcmd.jar - 192.168.1.36:12345
成功后可以看到获取到了数据
10,导入模版(该模版是3.0版本的zabbix,由于我用的jdk是1.8.0,所以监控项中的老年代(old gen)名其实已经为Tenured Gen(老年代),为了能够监控到old gen,所以模版里面也是有该监控项的,只是处于停用状态)
下载链接如下:
https://coding.net/api/user/molini/project/zabbix/folder/4326588/download