5 Java 网关

概述

JMX应用程序的原生监控支持以 自Zabbix 2.0起提供的名为"Zabbix Java网关"的Zabbix守护进程。 Zabbix Java网关是一个用Java编写的守护进程。用于获取值 特定JMX计数器在一个主机、Zabbix server queries Zabbix Java上的 网关,使用JMX management API 远程query目标应用程序。该应用程序不 无需安装任何额外软件,只需启动即可 -Dcom.sun.management.jmxremote 命令行选项

Java网关接受来自Zabbix server或proxy的传入连接 只能用作"被动proxy"。与Zabbix proxy不同,它 也可以从Zabbix proxy使用(Zabbix proxies无法被链式调用)。 每个Java网关的访问权限直接在Zabbix server中配置 proxy配置file,因此只能配置一个Java网关 每 Zabbix server 或 Zabbix proxy. 如果 一个主机 将具有类型为 监控项 的 JMX agent 和其他类型的 监控项,只有 JMX agent 监控项 会 传递给Java网关以进行检索。

当需要通过Java网关更新监控项时,Zabbix server或proxy将连接到Java网关并请求该值,随后Java网关获取该值并将其传回server 或 proxy。因此,Java网关不会缓存任何值。

Zabbix server或proxy具有特定类型的进程用于连接Java网关,这些进程由StartJavaPollers选项控制。在内部,Java网关会启动多个线程,这些线程由START_POLLERS option控制。在服务器端,如果连接耗时超过Timeout秒,连接将被终止,但Java网关可能仍在忙于从JMX计数器检索值。为解决此问题,Java网关中提供了TIMEOUT选项,用于设置JMX网络操作的超时时间。

Zabbix server或proxy会尽可能将请求集中到单个JMX目标(受监控项间隔影响),并通过单一连接发送至Java网关以提升性能。

建议将StartJavaPollers设置为小于或等于START_POLLERS,否则可能出现Java网关无可用线程处理传入请求的情况;此时Java网关会采用ThreadPoolExecutor.CallerRunsPolicy策略,即主线程将处理该请求并暂时不再接收新请求。

若需通过Zabbix Java网关监控基于Wildfly的Java应用,请从Wildfly download page安装最新的jboss-client.jar。

获取 Java 网关

您可以从源代码或从Zabbix website下载的软件包安装Java网关。

通过以下链接,您可以获取有关如何get和run Zabbix Java网关的信息,如何配置Zabbix server(或Zabbix proxy)以 使用Zabbix Java网关进行JMX监控,以及如何在Zabbix前端配置与特定JMX计数器对应的Zabbix 监控项。

安装来源 安装说明 配置说明
源代码 安装java网关 Setup
RHEL软件包 java网关安装 Setup
Debian/Ubuntu软件包 java网关安装 Setup