Estoy ejecutando Tomcat 6 en un servidor Linux en la nube de Amazon. Intento conectarme con VisualVM desde mi Mac en mi oficina. He permitido abrir todos los puertos TCP entre mi escritorio y el servidor, pero no puedo hacer que VisualVM haga nada.Depuración conexión remota VisualVM
En la máquina Linux, he empezado con Tomcat:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
en mi Mac, pongo en marcha VisualVM y seleccione Archivo -> Nueva conexión JMX ...
entro amazonhostname.com: 9191 en el cuadro. Dice "Agregar amazonhostname.com:9191 ..." y se queda allí varios minutos antes de que se agote el tiempo de espera.
Desde mi Mac, puedo "telnet amazonhostname.com 9191" bien, y probé algunos otros puertos aleatorios, y todos funcionaron. Estoy bastante convencido de que no es un problema de firewall, a menos que necesite abrir UDP o ICMP o algo así. (¿Realmente?)
No hay nada en catalina.log en el servidor, o la consola del sistema en mi Mac, relacionado con jmx. netstat en el servidor muestra 9191 y algunos otros puertos se abren en todas las interfaces.
No hay jstatd en el servidor remoto. ¿Es eso un requisito previo para JMX? (Soy totalmente nuevo en Java y no estoy seguro de lo que significan esas cosas, pero lo vi en una publicación de blog en algún lugar. Estoy agarrando pajas ahora.)
¿Se ha asegurado de que iptables no esté bloqueando la conexión en su linux box? EDIT: veo que puedes telnet, está bien, rayar eso. –
La otra cosa que debe observar es el nombre de host de RMI; consulte: http://stackoverflow.com/questions/9985293/how-do-i-use-jconsole-to-connect-to-ec2 –
Jstatd no es necesario. Como Greg sugirió intente agregar -Djava.rmi.server.hostname = the.public.ip a los argumentos de Tomcat JVM. –