Table of Contents

5 Java 网关

概述

Zabbix中以特定组件形式提供了对监控JMX应用程序的原生支持, Zabbix 守护进程称为 "Zabbix Java gateway"。 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 配置文件,因此只能配置一个 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 target中(受 监控项 间隔影响),并通过单个连接发送到 Java 网关,以提高性能。

建议将 StartJavaPollers 设置为小于或等于 START_POLLERS,否则可能会出现 Java 网关中没有可用线程来处理传入请求的情况;在这种情况下,Java 网关将使用 ThreadPoolExecutor.CallerRunsPolicy,这意味着主线程将处理传入请求,并且暂时不会接受任何新的请求。

如果您尝试通过 Zabbix Java 网关监控基于 Wildfly 的 Java 应用程序,请安装最新版本的 jboss-client.jar,该文件可在 Wildfly download page 上获取。