我们想监视我们的tomcat实例的jvm指标。我们认为jolokia是一个不错的解决方案,因为有一个不错的Nagios(checkMK)插件。我想知道,如果我们使用spring agent选项,则在pom中指定依赖项。
据我了解,这将在应用程序启动时启动代理。是否可以在任何tomcat属性文件中指定是否要启动代理?因为否则,如果由于某种原因我们想停止该代理,则别无选择,只能重新部署该应用程序,对吗?
最佳答案
如果按照here所述将Jolokia集成到Spring应用程序上下文中,则可以直接或通过Spring属性将选项autoStart
设置为false
。如果您是systemPropertiesMode
,那么您甚至可以从外部属性进行设置。
Tbh,我不确切知道提供依赖项时Spring Boot是如何在内部创建代理的,但是希望它提供了与您在应用程序上下文中自己声明代理相同的配置方式。
或者,如果您使用外部代理,则可以在bin/setenv.sh
中轻松地将Jolokia代理添加到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
。