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