Zabbix Java网关以 Zabbix 守护进程方式原生支持监控 JMX 应用程序。Zabbix Java网关的守护进程是用 Java 编写。为了在特定主机上找到 JMX 计数器的值,Zabbix server 向 Zabbix Java网关发送请求,后者使用 JMX 管理 API 来远程查询相关的应用。该应用不需要安装额外的软件。只需要在启动时,命令行添加-Dcom.sun.management.jmxremote
选项即可。
Java 网关接受来自 Zabbix server 或 Zabbix proxy 的传入连接,并且只能用作“被动 proxy”。与 Zabbix proxy 相反,它也可以从 Zabbix proxy (Zabbix proxy 不能被链接)调用。在 Zabbix server 或 Zabbix proxy 配置文件中,可以直接配置每个 Java网关的访问,因此每个 Zabbix server 或 Zabbix proxy 只能配置一个 Java网关。如果主机将有 JMX agent 或其他类型的监控项,则只将 JMX agent 监控项传递给 Java网关进行检索。
当必须通过 Java网关更新监控项时,Zabbix server 或 proxy 将连接到 Java网关并请求该值,Java网关将检索该值并将其传递回 Zabbix server 或 Zabbix proxy。 因此,Java网关不会缓存任何值。
Zabbix server 或 Zabbix proxy 具有连接到 Java网关的特定类型的进程,由 StartJavaPollers 选项控制。在内部,Java网关启动多个线程,由 START_POLLERS 选项 控制。 在服务器端,如果连接超过 Timeout 选项配置的秒数,它将被终止,但 Java网关可能仍在忙于从 JMX 计数器检索值。 为了解决这个问题,Java 网关中有 TIMEOUT 选项,允许为 JMX 网络操作设置超时。
Zabbix server 或 proxy 尝试尽可能地将请求汇集到单个 JMX 目标(受监控项取值间隔影响),并在单个连接中将它们发送到 Java网关以获得更好的性能。
建议让 StartJavaPollers 选项的值小于或等于 START_POLLERS,否则可能会出现 Java网关中没有可用线程来为传入请求提供服务的情况。在这种情况下,Java网关使用 ThreadPoolExecutor.CallerRunsPolicy,表示主线程将处理传入的请求,暂时不接受任何新请求。
如果您尝试使用Zabbix Java网关监控 Wildfly-based 的Java应用程序,请在 Wildfly下载页面 下载安装最新的jboss-client.jar。
您可以从源代码或从下载的包中安装Java网关 Zabbix website.
使用下面的链接,您可以访问以下信息:如何获取和运行Zabbix java网关,如何配置Zabbix server(或Zabbix proxy)以使用Zabbix Java 网关进行JMX监控,以及如何在Zabbix前端配置对应于特定JMX计数器的Zabbix监控项。