我们想要监视tomcat实例的jvm指标。我们认为jolokia是一个很好的解决方案,因为它有一个很好的Nagios (checkMK)插件。我想知道,如果我们使用spring代理选项,在我们的pom中指定依赖项。
据我所知,这将在应用程序启动时启动代理。是否有可能在任何tomcat属性文件中指定我们是否希望启动代理?否则如果出于某种原因我们想要停止代理除了重新部署应用程序就没有别的办法了,对吧?
如果您像这里描述的那样将Jolokia集成到Spring应用程序上下文中,那么您可以直接或通过Spring属性将选项autoStart
设置为false
。如果你设置了systemPropertiesMode
,那么你甚至可以从外部属性设置它。
老实说,我不知道Spring Boot在提供依赖项时是如何在内部创建代理的,但希望它能提供与在应用程序上下文中声明代理相同的配置方式。
作为一种替代方法,如果您想使用外部代理,您可以轻松地将Jolokia代理添加到bin/setenv.sh
中的Tomcat启动选项中。由于这是一个常规的shell脚本,您也可以在这里添加任何逻辑,并有条件地将Jolokia配置添加到变量CATALINA_OPTS
中:
if [ -n "$ENABLE_JOLOKIA" ]; then
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/jolokia-agent.jar"
fi
,然后在启动tomcat之前设置env var ENABLE_JOLOKIA