提问者:小点点

是否有用于本地(非TCP)连接的JMX服务URL?


我正在尝试使用colectd连接到运行在同一台机器上的JVM进程。GenericJMX colectd插件是通过ServiceURL配置的,如果JVM启用了远程JMX访问,这一切都很好。但是,如果不启用远程JMX访问,是否可以做到这一点?

这个详细的答案解释了(从Java6开始)即使JVM不是以-Dcom.sun.management. jmxRemote开始的,仍然通过"在/tmp/hsperfdata_[user]中找到的内存映射文件"公开JMX访问。这就是JConsole访问的工作方式。但是我可以让Collectd使用这种连接方法吗?有没有“本地”JMX服务URL之类的东西?或者我必须启用一个RMI注册表端口(Dcom.sun.management.jmxRemote.port=[rmicheckstryport])才能工作?


共1个答案

匿名用户

看看我的jmxlocal GitHub。它提供JMX远程处理实现以透明地连接到同一主机上的in-vm MBeanServers和JVM。

例子:

  • 连接到默认的in-vm MBeanServer: service:jmx:local:///
  • 使用domain: service:jmx:local://jboss
  • 连接到不同的in-vm MBeanServer
  • 通过pid连接到本地JVM:service: jmx:add://23474
  • 通过显示名称regex连接到本地JVM:service: jmx:add://[GroovyStarter.*]