一、zabbix监控远程tomcat的流程
Zabbix-server 找 zabbix Java Gateway获取Java数据
zabbix Java Gateway 找Java程序(zabbix-agent)获取数据
Java程序返回数据给zabbix Java Gateway
zabbix Java Gateway 返回数据给zabbix server
zabbix server进行数据展示
zabbix server想知道一台机器上的特定的JMX值时,它向zabbix Java Gateway询问,而zabbix Java Gateway使用JMX manager API去查询特定的应用程序,而前提是应用程序开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX
zabbix_server开启java poller,zabbix_java开启Java Gateway,端口为10052,Tomcat JMX开启12345提供性能数据。
数据获取:java poller <--> Java Gateway:10052 <--> Tomcat JMX:12345
二、zabbix 服务端
https://www.zabbix.com/documentation/3.2/manual/concepts/java 官网
zabbix当初编译安装的时候,得加上--enable-java参数,有没有安装,可以查看有没有zabbix_java这个目录
/usr/local/zabbix-3.2.6/sbin/zabbix_java
若没有,则只能重新编译安装,记得把原先的脚本和配置文件备份一份,我的配置文件是放在其他地方的,这就是放在其他地方的好处
tar xf nginx-1.8.0.tar.gz -C /usr/local/lnmp cd /usr/local/lnmp/nginx-1.8.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9--enable-java make make install
然后修改zabbix server的配置文件,添加如下:
JavaGateway=10.0.0.146 JavaGatewayPort=10052 StartJavaPollers=5
然后重新启动zabbix-server,启动zabbix-java
/usr/local/zabbix-3.2.6/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf /usr/local/zabbix-3.2.6/sbin/zabbix_java/startup.sh
然后查看10052端口是否在监听:
[[email protected] zabbix-3.2.6]# lsof -i:10052 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 67287 lile 14uIPv619487880t0 TCP *:10052(LISTEN)
三、在客户端
1:修改tomcat的配置文件,在前面添加:
vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345"
2:然后重启tomcat,查看12345端口是否在监听
[email protected]:~$ lsof -i:12345 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 80728 lile 20uIPv63182450t0 TCP *:12345(LISTEN) java 80728 lile 80uIPv63344490t0 TCP vst2:12345->10.0.0.146:52630(ESTABLISHED)
第二个可以看到agent已经和zabbix server端建立了连接
四、在zabbix web端
1:选择一个主机,然后添加JMX模版,zabbix自带的
添加JMX接口:
然后就可以看到,他的应用集,监控项,触发器,图形等
最典型的现象就是图标JMX由灰色变成了绿色
五、测试,查看图像,或者把tomcat停掉,看会不会发送邮件(不知道为啥有很多都没数据)