我有一个支持JMX的Java应用程序(Java 1.5),它位于HTTP代理服务器后面。所以我无法通过JConsole直接访问它。
我想要的解决方案是在我的应用程序中安装一个VM内JMX客户端,它从JMX服务器收集统计信息和配置数据,并通过代理定期通过HTTP将其发布到我的外部服务器。如果需要,我的外部服务器会回复任何配置更改,并且in-VM JMX客户端会将这些更改传播到JMX服务器,并将其应用于应用程序。
我猜这是一个频繁到足以让解决方案解决它的方案。是否有任何帮助框架/库通过HTTP启用此类访问?
答案 0 :(得分:3)
不确定这是否是您所需要的,但有一个非常好的JMX到REST桥,名为Jolokia。如果将其添加到应用程序中,您将能够通过REST接口与JMX交互,该接口可通过HTTP代理访问,就像任何其他HTTP流量一样。因此,不仅您通过HTTP隧道化JMX,而且还以更好的格式(JSON over HTTP)公开它。
它非常好documentation,另见showcase。
答案 1 :(得分:0)
如果您的服务器托管在Linux / Unix上,您可以设置端口转发(使用putty,ssh或其他工具)。然后启动JConsole并指定本地主机和端口以将请求传递到远程服务器。 SSH端口转发非常简单,您可以在Web上找到大量示例。