我们正在使用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个服务定义?
谢谢,
答案 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 对象