龙虎赌博

4 Java gateway

概述

从 龙虎赌博 2.0 开始,以 龙虎赌博 守护进程方式原生支持监控 JMX 应用程序就存在了,称之为“龙虎赌博 Java gateway”。龙虎赌博 Java gateway 的守护进程是用 Java 编写。为了在特定主机上找到 JMX 计数器的值,龙虎赌博 server 向 龙虎赌博 Java gateway 发送请求,后者使用 来远程查询相关的应用。该应用不需要安装额外的软件。只需要在启动时,命令行添加-Dcom.sun.management.jmxremote选项即可。

Java gateway 接受来自 龙虎赌博 server 或 龙虎赌博 proxy 的传入连接,并且只能用作“被动 proxy”。与 龙虎赌博 proxy 相反,它也可以从 龙虎赌博 proxy (龙虎赌博 proxy 不能被链接)调用。在 龙虎赌博 server 或 龙虎赌博 proxy 配置文件中,可以直接配置每个 Java gateway 的访问,因此每个 龙虎赌博 pserver 或 龙虎赌博 proxy 只能配置一个 Java gateway。如果主机将有 JMX agent 或其他类型的监控项,则只将 JMX agent 监控项传递给 Java gateway 进行检索。

当必须通过 Java gateway 更新监控项时,龙虎赌博 server 或 proxy 将连接到 Java gateway 并请求该值,Java gateway 将检索该值并将其传递回 龙虎赌博 server 或 龙虎赌博 proxy。 因此,Java gateway 不会缓存任何值。

龙虎赌博 server 或 龙虎赌博 proxy 具有连接到 Java gateway 的特定类型的进程,由 StartJavaPollers 选项控制。在内部,Java gateway 启动多个线程,由 START_POLLERS 选项控制。 在服务器端,如果连接超过 Timeout 选项配置的秒数,它将被终止,但 Java gateway 可能仍在忙于从 JMX 计数器检索值。 为了解决这个问题,从 龙虎赌博 2.0.15、龙虎赌博 2.2.10 和 龙虎赌博 2.4.5 开始,Java gateway 中有 TIMEOUT 选项,允许为 JMX 网络操作设置超时。

龙虎赌博 server 或 proxy 尝试尽可能地将请求汇集到单个 JMX 目标(受监控项取值间隔影响),并在单个连接中将它们发送到 Java Gateway 以获得更好的性能。

此外,建议让 StartJavaPollers 选项的值小于或等于 START_POLLERS,否则可能会出现 Java gateway 中没有可用线程来为传入请求提供服务的情况。

以下部分描述了如何获取和运行龙虎赌博 Java gateway,如何配置 龙虎赌博 server(或 龙虎赌博 proxy)来使用 龙虎赌博 Java gateway 进行 JMX 监控,以及如何在 龙虎赌博 GUI 中配置与特定 JMX 计数器对应的 龙虎赌博 监控项。

1 获取 Java gateway

获取 Java gateway 有两种方法。 一种是从 龙虎赌博 网站下载 Java gateway 二进制包,另一种是从源代码编译 Java gateway。

1.1 从 龙虎赌博 网站下载

龙虎赌博 Java gateway 二进制包 (RHEL, Debian, Ubuntu)可以从 下载。

1.2 从源码包中编译

为了编译 Java gateway,首先使用 --enable-java 选项运行 ./configure 脚本。建议您使用 --prefix 选项来指定其他路径,而非默认的 /usr/local 路径,因为安装 Java gateway 将创建整个目录树,并非单个可执行文件。

$ ./configure --enable-java --prefix=$PREFIX

要将 Java gateway 编译并打包到 JAR 文件中,请运行 make。 值得注意的是,对于此步骤,会使用 javacjar 可执行文件,因此需要确保它们处于正确的路径下。

$ 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 依赖于:、 和 库。

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 配置文件

值得注意的是,端口 10052 并没有在 。

待熟悉设置后,您可以通过运行 startup 脚本来启动 Java gateway:

$ ./startup.sh

同样的,一旦您不需要 Java gateway,运行 shutdown 脚本即可关闭它。

$ ./shutdown.sh

请注意,与 龙虎赌博 server 或 龙虎赌博 proxy 不同,Java gateway 是轻量级的,并不需要数据库。

4 配置 server 以使用 Java gateway

现在 Java gateway 正在运行,您必须告诉 龙虎赌博 server 从哪里找到 龙虎赌博 Java gateway。因此需要在 龙虎赌博 server 配置文件 中指定 JavaGateway 和 JavaGatewayPort 参数。如果 龙虎赌博 proxy 监控运行着 JMX 应用程序的主机,则在 龙虎赌博 proxy 配置文件 中指定连接参数。

JavaGateway=192.168.3.14
       JavaGatewayPort=10052

默认情况下,Zabibx server 不会启动与 JMX 监控相关的任何进程。但是,如果要使用它,则必须指定 Java pollers 的 pre-forked 实例数。 同样的,您也可以指定常规的 pollers 和 trappers。

StartJavaPollers=5

值得注意的是,在完成配置后,请不要忘记重新启动 龙虎赌博 server 或 龙虎赌博 proxy。

5 Java gateway 的调试

如果 Java gateway 出现任何问题或者您看到 龙虎赌博 前端中的监控项错误消息不充分时,您可以查看 Java gateway 的日志文件。

默认情况下,Java gateway 的日志会记录到 /tmp/zabbix_java.log 文件中,日志级别为“info”。有时候这些信息是不够的,需要将日志级别修改为“dubug”。为了提高日志记录级别,需要修改lib/logback.xml 文件并将 <root> 标记的 level 属性更改为“debug”:

<root level="debug">
         <appender-ref ref="FILE" />
       </root>

值得注意的是,与 龙虎赌博 server 或 龙虎赌博 proxy 不同,更改 logback.xml 文件后无需重新启动 龙虎赌博 Java gateway,将自动完成 logback.xml 中的更改。 完成调试后,可以将日志记录级别修改回“info”。

如果您希望记录到其他文件或完全不同的介质(如数据库),请调整 logback.xml 文件以满足您的需要。详见 。

有时为了方便调试,将 Java gateway 作为控制台应用程序而不是守护程序启动是更有用的。 为此,请在 settings.sh 中注释掉 PID_FILE 变量。 如果省略 PID_FILE ,则 startup.sh 脚本将 Java gateway 作为控制台应用程序启动,并让 Logback 使用 lib/logback-console.xml 文件,这不仅会记录到控制台,还会启用日志记录级别“debug”。

最后,值得注意的,由于 Java gateway 使用 SLF4J 进行日志记录,因此可以适当地将 JAR 包放置在 lib 目录中, 来将 Logback 替换为您所选的框架。详见 。