zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
Zabbix gateway 是用Java语言写成。要查得一台主机特定的JMX计数器值,Zabbix server向Zabbix Java gateway发送请求,后者使用JMX管理API 去请求远程的有关应用。应用不需要额外安装软件,只需要启动时在命令行指定-Dcom.sun.management.jmxremote 即可。
Java gateway接受来自Zabbix Server或Agent的传入连接,且只能用作“被动proxy”。 与Zabbix proxy相反,它也可以从Zabbix agent调用(Zabbix agent不能被链接)。 每个Java gateway的访问都直接在Zabbix sever或 proxy配置文件中配置,因此每个Zabbix sever或Zabbix agent只能配置一个Java gateway。 如果一台主机具 JMX agent 类型的监控项和和其他类型的监控项,则只将JMX agent监控项传递到Java gateway进行检索。
当在Java gateway上的一个监控项值更新了,Zabbix server或agent将连接Java gateway请求查询该值,Java gateway会依次retrieves并传回到server或proxy。 同样的,Java gateway不会缓存任何值.
Zabbix sever或proxy具有连接到Java gateway特定类型的进程,由 START_POLLERS 选项控制。 在内部,Java gateway启动多个由该选项控制的线程。 在sever端,如果连接超过 Timeout 秒,则将终止,但Java gateway可能仍忙于从JMX计数器检索值。 为了解决这个问题,由于Zabbix 2.0.15,Zabbix 2.2.10和Zabbix 2.4.5在Java gateway中有TIMEOUT选项,允许为JMX网络操作设置超时。
Zabbix server或agent将尽可能地将请求集中到一个JMX目标(受监控项间隔影响),并将它们发送到单一连接中的Java gateway,以获得更好的性能。 建议 StartJavaPollers 小于或等于 START_POLLERS ,否则可能导致当连接Java gateway时而Java gateway没有多余的线程进行处理。
user --> webui --> zabbix server --> zabbix jmx :10052 --> tomcat :8888
具体部署
zabbix agent端:
[root@server5 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
<2>配置tomcat、JMX
[root@server5 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
[root@server5 ~]# cd /usr/local/
[root@server5 local]# ln -s apache-tomcat-8.5.24/ tomcat
[root@server5 local]# cd tomcat/bin/
[root@server5 bin]# vim catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'
[root@server5 bin]# ./startup.sh
查看端口:
测试:访问http://172.25.81.11:8080
zabbix server端:
<1>下载、安装java-gateway
[root@zabbix-server ~]# yum install -y zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
<2>配置java-gateway
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=172.25.81.11 ##指定java gateway的地址
JavaGatewayPort=10052 ## 指定java gateway服务的监听端口
StartJavaPollers=5 ##启动多少个进程来轮巡java gateway,要和java gateway的配置一致
[root@zabbix-server ~]# systemctl start zabbix-java-gateway
[root@zabbix-server ~]# systemctl restart zabbix-server
查看端口:
网页端配置java-gateway:
<1>添加Java-gateway接口
所有主机-->server5-->添加JMX接口
<2>关联一个tomcat模板