以下部分描述了如何获取和运行Zabbix Java gateway,如何配置 Zabbix server(或 Zabbix proxy)来使用 Zabbix Java gateway 进行 JMX 监控,以及如何在 Zabbix GUI 中配置与特定 JMX 计数器对应的 Zabbix 监控项。
1 获取 JAVA GATEWAY
获取 Java gateway 有两种方法。 一种是从 Zabbix 网站下载 Java gateway 二进制包,另一种是从源代码编译 Java gateway。
1.1 从 ZABBIX 网站下载
Zabbix Java gateway 二进制包 (RHEL, Debian, Ubuntu)可以从 http://www.zabbix.com/download.php 下载。
1.2 从源码包中编译
为了编译 Java gateway,首先使用 --enable-java 选项运行 ./configure 脚本。建议您使用 --prefix 选项来指定其他路径,而非默认的 /usr/local 路径,因为安装 Java gateway 将创建整个目录树,并非单个可执行文件。
$ ./configure --enable-java --prefix=$PREFIX
要将 Java gateway 编译并打包到 JAR 文件中,请运行 make。 值得注意的是,对于此步骤,会使用 javac 和 jar 可执行文件,因此需要确保它们处于正确的路径下。
$ make
现在您在 src/zabbix_java/bin 路径下 有 zabbix-java-gateway-$VERSION.jar 文件。如果您熟悉在 src/zabbix_java 分发目录下运行 Java gateway,那么您可以继续执行配置和运行 Java gateway 的指令。否则,请确保您有拥有足够的权限来运行 make install。
$ make install
2 JAVA GATEWAY 分发中的文件概述
无论您如何获得的 Java gateway,在 $PREFIX/sbin/zabbix_java 路径下您都会获得一系列的 shell 脚本、JAR 和配置文件。这些文件的作用的概述如下。
bin/zabbix-java-gateway-$VERSION.jar
Java gateway JAR 文件。
lib/logback-core-0.9.27.jar
lib/logback-classic-0.9.27.jar
lib/slf4j-api-1.6.1.jar
lib/android-json-4.3_r3.1.jar
Java gateway 依赖于:Logback、SLF4J 和 Android JSON 库。
lib/logback.xml
lib/logback-console.xml
用于 Logback 的配置文件:
shutdown.sh
startup.sh
启动和停止 Java gateway 的便捷脚本:
settings.sh
由上面启动和停止脚本提供的配置文件。
3 配置和运行 JAVA GATEWAY
默认情况下,Java gateway 监听 10052 端口。如果您计划使用不同的端口来运行 Java gateway,则可以通过 setting.sh 脚本中指定端口。有关如何指定此选项和其他选项,详见下文附录 Java gateway 配置参数详情。
待熟悉设置后,您可以通过运行 startup 脚本来启动 Java gateway:
$ ./startup.sh
同样的,一旦您不需要 Java gateway,运行 shutdown 脚本即可关闭它。
$ ./shutdown.sh
请注意,与 Zabbix server 或 Zabbix proxy 不同,Java gateway 是轻量级的,并不需要数据库。
4 配置 SERVER 以使用 JAVA GATEWAY
现在 Java gateway 正在运行,您必须告诉 Zabbix server 从哪里找到 Zabbix Java gateway。因此需要在 Zabbix server 配置文件 中指定 JavaGateway 和 JavaGatewayPort 参数。如果 Zabbix proxy 监控运行着 JMX 应用程序的主机,则在 Zabbix proxy 配置文件 中指定连接参数。
JavaGateway=192.168.3.14
JavaGatewayPort=10052
默认情况下,Zabibx server 不会启动与 JMX 监控相关的任何进程。但是,如果要使用它,则必须指定 Java pollers 的 pre-forked 实例数。 同样的,您也可以指定常规的 pollers 和 trappers。
StartJavaPollers=5
值得注意的是,在完成配置后,请不要忘记重新启动 Zabbix server 或 Zabbix proxy。
5 JAVA GATEWAY 的调试
如果 Java gateway 出现任何问题或者您看到 Zabbix 前端中的监控项错误消息不充分时,您可以查看 Java gateway 的日志文件。
默认情况下,Java gateway 的日志会记录到 /tmp/zabbix_java.log 文件中,日志级别为“info”。有时候这些信息是不够的,需要将日志级别修改为“dubug”。为了提高日志记录级别,需要修改lib/logback.xml 文件并将 标记的 level 属性更改为“debug”:
值得注意的是,与 Zabbix server 或 Zabbix proxy 不同,更改 logback.xml 文件后无需重新启动 Zabbix Java gateway,将自动完成 logback.xml 中的更改。 完成调试后,可以将日志记录级别修改回“info”。
如果您希望记录到其他文件或完全不同的介质(如数据库),请调整 logback.xml 文件以满足您的需要。点击详见 Logback 手册。
有时为了方便调试,将 Java gateway 作为控制台应用程序而不是守护程序启动是更有用的。 为此,请在 settings.sh 中注释掉 PID_FILE 变量。 如果省略 PID_FILE ,则 startup.sh 脚本将 Java gateway 作为控制台应用程序启动,并让 Logback 使用 lib/logback-console.xml 文件,这不仅会记录到控制台,还会启用日志记录级别“debug”。
最后,值得注意的,由于 Java gateway 使用 SLF4J 进行日志记录,因此可以适当地将 JAR 包放置在 lib 目录中, 来将 Logback 替换为您所选的框架。点击详见 SLF4J 手册。
如果使用startup.sh和shutdown.sh脚本来启动Zabbix Java gateway,则可以在settings.sh文件中指定必要的配置参数。启动和关闭脚本提供设置文件的来源,并负责将外壳变量(在第一列中列出)转换为Java属性(在第二列中列出)。