最近我已将项目从 java 8 更新到 17,并决定将 Hawtio 从版本 1.X 刷新到 4.2.0,由于某种原因,JMX 选项卡在 UI 上不可见。我可以看到 Jolokia 正确地获取了 MBean,因为我向
/jolokia/search
端点发出了请求,并看到了我想要的所有 Mbean 的正确版本。我很难在互联网上找到类似的案例,而且 Hawtio 官方文档也没有真正提及任何相关内容。 Jolokia 代理以及 Hawtio 部署在同一台 Wildfly 服务器上(作为 .war 部署)。
这是
/jolokia
的回复
{
"request": {
"type": "version"
},
"value": {
"agent": "2.0.3",
"protocol": "7.3",
"details": {
"agent_version": "2.0.3",
"agent_id": "someId",
"secured": false,
"url": "someURL"
},
"id": "someId",
"config": {
"agentId": "someId",
"allowErrorDetails": "false",
"includeStackTrace": "false",
"mbeanQualifier": "qualifier=hawtio"
},
"info": {
"proxy": {},
"jmx": {}
}
},
"status": 200,
"timestamp": 1732550404
}
造成此类问题的原因是什么?
我尝试更改配置,创建一个
hawtio.properties
,其中包含 hawtio.plugins=org.hawtio.jmx
,然后将其放入我的 hawtio.war的
WEB-INF/classes/
中。由于 Hawtio 文档中的信息太少,我找不到任何其他可以用来解决我的问题的方法。
[解决方案] 实际上,TLS 终止代理存在问题,hawtio 无法通过 https 与 pod 上通过 http 打开流量的 jolokia 代理连接。解决方案是添加此 jolokia 属性 (https://hawt.io/docs/configuration.html#_configuring_jolokia_through_system_properties) 以及添加您自己的 jolokia-access.xml,其 CORS 配置与此类似 https:/ /github.com/jolokia/jolokia/issues/731