如何启用Infinispan的JMX指标暴露以实现Prometheus监控?
解决Infinispan Prometheus指标端点连接拒绝问题
1. 确认REST子系统是否已启用
连接拒绝的核心原因大概率是Infinispan的REST服务未启用或端口配置错误——Prometheus metrics端点是通过REST子系统暴露的,你的配置仅完成了core子系统的metrics开关,缺少REST子系统的必要配置:
在standalone.xml/domain.xml中添加适配9.3版本的REST子系统配置:
<subsystem xmlns="urn:infinispan:server:rest:9.3"> <endpoint socket-binding="rest" security-domain="other"/> </subsystem>
同时确保对应的socket绑定存在(通常默认已配置,若缺失需补充):
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> <!-- 其他socket绑定项 --> <socket-binding name="rest" port="${infinispan.rest.port:11222}"/> </socket-binding-group>
2. 验证端口监听状态
执行命令检查11222端口是否被Infinispan进程监听:
netstat -tulpn | grep 11222 # 或使用ss命令 ss -tulpn | grep 11222
如果无任何输出,说明REST服务未启动,需检查REST子系统配置是否存在语法错误,或查看Infinispan启动日志排查报错。
3. 补全缓存级别的统计配置
这一步不会解决连接拒绝问题,但如果后续能访问端点却无指标输出,需要给每个缓存单独开启统计:
<local-cache name="default" statistics="true"/> <local-cache name="namedCache" statistics="true"/>
4. 检查网络与权限限制
- 若远程访问,确认Infinispan的public接口未仅绑定
localhost(默认绑定0.0.0.0,若修改过需确保允许外部访问)。 - 确认本地防火墙/安全组未拦截11222端口。
完成上述配置后重启Infinispan,再执行curl http://localhost:11222/metrics验证即可。
内容的提问来源于stack exchange,提问作者Garamoff
相关产品推荐
相关产品推荐

