Jolokia 端点未通过 spring 启动执行器公开班次

Jolokia endpoint is not exposed through spring boot actuator in open shift

我有一个 camel application which is running in spring boot 2 并且骆驼路线通过 hawtio 可视化。并且 all actuator endpoints are exposed including jolokia endpoint

this application is completely working in local 和 当我尝试访问本地 http://localhost:8080/actuator/ 中的执行器端点时,我可以看到下面的端点以及其他 16 个端点(例如健康、信息等)

"jolokia": {
"href": "http://localhost:8080/actuator/jolokia",
"templated": false
}

我有 deployed the in same Openshift,但是当我尝试 access actuator endpoints in Openshift 我可以看到 only 16 endpoints without jolokia endpoint

应用程序启动登录 local

INFO : Initializing Spring embedded WebApplicationContext
INFO : Root WebApplicationContext: initialization completed in 3543 ms
INFO : Registered '/actuator/jolokia' to jolokia-actuator-endpoint
INFO : Initialising hawtio services
INFO : Configuration will be discovered via system properties
INFO : Welcome to Hawtio 2.10.0
INFO : Starting hawtio authentication filter, JAAS authentication disabled
INFO : Initializing ExecutorService 'applicationTaskExecutor'
INFO : Detected and using LURCacheFactory: camel-caffeine-lrucache
INFO : Exposing 17 endpoint(s) beneath base path '/actuator'

应用程序启动登录 Openshift

INFO : Initializing Spring embedded WebApplicationContext
INFO : Root WebApplicationContext: initialization completed in 3543 ms

INFO : Initialising hawtio services
INFO : Configuration will be discovered via system properties
INFO : Welcome to Hawtio 2.10.0
INFO : Starting hawtio authentication filter, JAAS authentication disabled
INFO : Initializing ExecutorService 'applicationTaskExecutor'
INFO : Detected and using LURCacheFactory: camel-caffeine-lrucache
INFO : Exposing 16 endpoint(s) beneath base path '/actuator'

INFO : Registered '/actuator/jolokia' to jolokia-actuator-endpointOpenshift 日志中丢失, 很明显它没有在 spring boot actuator

注册

有什么想法吗why jolokia is not exposed via spring boot actuator

因此 hawtio 无法访问骆驼路线 (JMX)。

Issue is resolved Solution : Disable the default OpenJDK8 jolokia in Openshift

本地

应用程序在 Openshift 中不是 运行/Docker 作为图像,运行 作为 tomcat 中的正常 spring 启动应用程序,所以我没有面对这个问题。

在 Openshift 中

应用程序在 openshift 中 运行 / Docker 作为图像实例。 该图像是使用基本 openJDK 8 创建的,它启用了默认的 jolokia Red hat openshift reference

我通过在 openshift 环境变量中用 AB_JOLOKIA_OFF:true 覆盖它来禁用它。

or either 如果您在 pom 中使用 maven fabric8 plugin 构建图像,那么您可以在 pom 本身中覆盖它的 jolokia 属性(我还没有尝试过它但它可能根据 documents).