如何使用check_jmx4perl和nagios

时间:2016-09-15 12:57:47

标签: java tomcat nagios jolokia server-monitoring

我们正在使用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个服务定义?

谢谢,

1 个答案:

答案 0 :(得分:0)

首先是的,可以通过你的自定义配置来检查tomcat。这个配置将有你的命令和服务来检查tomcat。然后你可以读取这样的cfg文件。

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

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

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

如何工作

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