通过命令提示符从Tomcat JMX获取服务状态
问题描述:
我一直在网上搜索,我发现了一些我最近需要的东西。但有不同的使用它。我想通过命令学习Tomcat服务的状态。通过命令提示符从Tomcat JMX获取服务状态
我相信Tomcat还没有获得状态命令。于是,我看到了这一点:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+HeapDumpOnOutOfMemoryError -Djava.rmi.server.hostname=192.168.1.250"
export CATALINA_OPTS;
他们说,这添加到您的catalina.sh文件的开头并执行它使用JMX与JConsole的。但我是命令提示符,所以我不能使用GUI。我需要它的命令版本。
寻找的东西可以工作,如:
[email protected]:# $TOMCAT_HOME/bin/catalina.sh --connect command=:status'
,并将结果打印到我...
我能做些什么?
答
这些-Dcom.sun...
参数对于Tomcat/JVM是必需的,因此它允许客户端通过JMX连接到它。如果没有这些,只能连接到正在运行的JVM,如果它位于同一主机上并且在同一用户下运行。顺便说一下,-XX:+HeapDumpOnOutOfMemoryError
和下面的位是完全不相关的。运行完毕后,使用jconsole
连接到JVM,并首先查看可用的内容。
jconsole
是一个GUI工具。如果你想要控制台的JMX客户端,请看here或here。
还有其他方法可以监视Tomcat状态。你可以这样做:
- 使用JMX proxy servlet;
- 使用Tomcat Manager Ant extensions;
- 创建自定义监控servlet和运行
wget
反对
答
你也可以看看在Jolokia和Jmx4Perl组合附带了相当长的一段工具支持(如强大的j4psh壳或全功能Nagios的插件check_jmx4perl其中包括大约10到20次特定的Tomcat检查。