如何从远程位置访问karaf容器的JMX

时间:2017-05-24 14:20:59

标签: remote-access jmx karaf

我在AWS服务器上运行karaf容器。 使用一个小程序,我可以通过服务URL服务在本地访问它的JMX数据:jmx:rmi://127.0.0.1:44444 / jndi / rmi://127.0.0.1:1099 / karaf-root 使用用户名和密码保护登录

但我无法远程访问它,例如从我的PC到AWS服务器。

  • 我已经尝试在karaf中为JMX配置正确的IP服务器,当然还有服务URL(而不是0.0.0.0,它应该链接到服务器的所有IP,对吗?)
  • 我打开服务器的所有端口进行测试,但没有连接
  • 我通过SSH连接隧道传输端口1099和44444
  • 我试图挖掘karaf进程监听的其他端口

到目前为止,没有任何帮助。

org.apache.karaf.management.cfg中的当前karaf配置:

rmiRegistryPort = 1099
rmiRegistryHost = 0.0.0.0 (tested 127.0.0.1 and the correct IP of the server)
rmiServerPort = 44444
rmiServerHost = 0.0.0.0 (tested 127.0.0.1 and the correct IP of the server)
serviceUrl = service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}
authenticatorType = password
secured = false

当前错误消息是:

java.rmi.ConnectException: Connection refused to host: 172.31.28.52; nested exception is: 
java.net.ConnectException: Connection timed out: connect
java.rmi.ConnectException: Connection refused to host: 172.31.28.52; nested exception is: 
java.net.ConnectException: Connection timed out: connect

我错过了什么吗? 是否有任何配置可能阻止来自实际服务器外部的请求?

1 个答案:

答案 0 :(得分:0)

好像我在这里专注于绳索的错误一端。

问题在于AWS本身,因为服务器只知道其本地IP。

如果配置JAVA选项

java.rmi.server.hostname=<public EC2 hostname>

在$ KARAF_HOME / etc / system.properties中,可以建立连接。