0

我们使用 Jolokia 和 jmx4perl 来监控带有 Nagios 的 tomcat 实例。我们目前正在使用以下命令定义:

define command {
 command_name         check_tomcat
 command_line         $USER3$/check_jmx4perl \
                          --url $ARG1$ \
                          --mbean java.lang:type=Memory \
                          --attribute HeapMemoryUsage \
                          --path used \
                          --base java.lang:type=Memory/HeapMemoryUsage/max \
                          --label "Heap-Memory: %.2r% used (%.2v %u / %.2b %w)" \
                          --warning 80 --critical 90
}

... 这在 Nagios 中为我们提供了这样一个不错的输出:

OK - Heap-Memory: 37.93% used (295520640 / 779091968)

在一个理想的世界中,我也想像这样获得 Tomcat 版本:

OK - Tomcat 7.0.68 - Heap-Memory: 37.93% used (295520640 / 779091968)

这可以用一个命令完成还是我需要 2 个命令定义和 2 个服务定义?

谢谢,

4

1 回答 1

0

首先是可以使用您的自定义配置检查 tomcat。该配置将具有您的命令和服务来检查 tomcat。然后您可以像这样读取该 cfg 文件。

--config /etc/nagios/check_jmx4perl/tomcat.cfg
                --server servername \
                --check tc_servlet_requests \
                --critical 1000 \
                servletname

在单个配置文件中编写命令和服务。只需编写命令定义,然后是该命令的服务定义。还要确保 .cfg 文件具有 root 权限。

Jmx4Perl 提供了另一种访问基于 JMX(Java 管理扩展)的 Java JEE 服务器管理接口的方法。它是一种基于代理的方法,其中部署在应用程序服务器上的小型 Java Web 应用程序提供对在应用程序服务器中注册的 JMX MBean 的基于 HTTP/JSON 的访问。

这个怎么运作

对于代理模式,需要在 Java 应用程序服务器上部署一个小型 Java 代理 WAR(Web 存档)。该代理由 Jolokia 项目 (www.jolokia.org) 提供。无需向应用程序服务器添加任何启动参数并打开任何其他端口。Perl 模块 JMX::Jmx4Perl 访问已部署的代理 servlet 并将请求的结果从 JSON 转换为简单的 Perl 对象。

于 2016-09-16T13:38:33.520 回答