Accès jmx / jstatd à une machine distante via un tunnel ssh

Je voudrais utiliser visualvm application à travers un tunnel ssh (pour un EC2 machine) à l'aide de jmx OU jstatd. Comment dois-je faire? Voici une liste de ce qui a été essayé (et échoué):
(BTW: si visual vm n'est pas approprié, comment puis-je trouver des fuites de mémoire sur une machine distante?)

jstatd: tentative:

J'ai configuré le jstatd serveur sur l'EC2 machine (application est déjà en cours d'exécution sur elle)
Puis-je configurer un tunnel de cartographie locale, le port 3333 à distance port 1099
Dans VisualVM j'ai essayé de vous connecter à l'aide jstatd sur le port 3333
... aucun des processus sur EC2 montré

Ce lien indique que jstatd ouvre les portes d'un port:
http://rukuro-blog.heroku.com/2011/06/30/monitoring-remote-java-applications-with-visualvm
... j'ai donc mis en tunnel que le port de l'hôte local à distance.
J'ai redémarré visual vm ... toujours rien

Quand j'ai essayé le processus d'inscription à l'exécution de EC2 à l'aide de la folloing commande:

jps -l -m -v rmi://localhost

... J'ai une liste de processus

Quand je l'ai inscrite sur mon ordinateur à la maison à l'aide de

jps -l -m -v rmi://localhost:3333

.... J'ai eu aucun ! Alors, le port rmi ne pas être dissimulé avec jstatd port (3333) ... ?

jmx tentative:

J'ai commencé à l'application sur la machine distante avec la commande suivante:

java -Dcom.sun.management.jmxremote.port=3333 \
     -Dcom.sun.management.jmxremote.ssl=false \
     -Dcom.sun.management.jmxremote.authenticate=false\
        -cp :post/* <appName>

... l'app fonctionne j'ai donc glissé local port 3333 à distance 3333

Ensuite, j'ai essayé de configurer un jmx lien vers localhost:3333 à partir de visual vm interface:
... il affiche un message d'erreur indiquant:

cannot connect to localhost:3333 using service:jmx:rmi:///jndi/rmi://localhost:3333/jmxrmi

Si j'ai besoin de mettre en place un lien pour supprimer le RMI serveur, je ne suis pas sûr de savoir comment faire.

JMXMP tentative:

C'est prometteur, mais quelque chose n'est pas tout à fait raison:

D'abord, j'ai ajouté la jmx_remote jar au classpath et a commencé à l'application sur la machine distante à l'aide de la même commande que pour la JMX cas je l'ai montré ci-dessus. J'ai trouvé le pot à oracle lien de téléchargement

Je configurer un tunnel ssh à partir du port 3333 à distance le port 3333. Puis j'ai commencé visualvm avec la même jmx_remote fichier dans le calsspath.

visualvm -cp:a ~/jmx/jmxremote_optional.jar

Puis j'ai essayé de connecter visualvm au serveur distant avec:

service:jmx:jmxmp://localhost:3333

Maintenant visual vm semble essayez de vous connecter indéfiniment. Il montre "l'Ajout de service:jmx:jmxp://localhost:3333" dans la barre d'état ... et continutes de le faire jusqu'à ce que je l'arrêt de l'application sur l'extrémité distante à laquelle il jette un popup disant qu'il ne pourrait pas se connecter avec le serveur.

Sur l'utilisation de CHAUSSETTES:

Mes tentatives à l'aide de deux JMX et jstatd a échoué.

Je ne suis pas sûr que le proxy SOCKS est de travail, voici donc comment j'ai essayé de me connecter:

ssh -i ~/.ssh/starter.pem -v -D 9696 user@host

Juste pour être complet, j'ai commencé à la commande sur l'autre extrémité avec:

    java -Dcom.sun.management.jmxremote\
 -Dcom.sun.management.jmxremote.ssl=false\
 -Dcom.sun.management.jmxremote.authenticate=false\
 -Dcom.sun.management.jmxremote.port=3333 <app>

Et sur les locaux en fin je l'ai réglé visualvm connexion que par ce LIEN vers VisualVm page d'aide.

Avec la connexion JMX, j'ai mis le nom de la machine et le port en cliquant droit sur l'hôte sur visualvm et fillng dans le port de l'hôte quand il me pousse. À ce point de la barre d'état au bas montre visualvm tente de se connecter à la machine distante, et après une couple de minutes, il échoue.

Avec jstatd de connexion, je m'attendais à la distance des processus à apparaître automatiquement. Ce n'était pas le cas ... il n'y avait pas de messages d'erreur ou quoi que ce soit.

Sur les chaussettes de côté les messages suivants répétition cyclique:

debug1: Connection to port 9696 forwarding to socks port 0 requested.
debug1: channel 2: new [dynamic-tcpip]
channel 3: open failed: connect failed: Connection timed out
debug1: channel 3: free: direct-tcpip: listening port 9696 for 50.16.35.69 port 3333, connect from 127.0.0.1 port 43909, nchannels 4
debug1: Connection to port 9696 forwarding to socks port 0 requested.
debug1: channel 3: new [dynamic-tcpip]
channel 2: open failed: connect failed: Connection timed out
debug1: channel 2: free: direct-tcpip: listening port 9696 for 50.16.35.69 port 1099, connect from 127.0.0.1 port 44644, nchannels 4

Je me demande si cela a à voir avec les chaussettes de canal. J'ai glissé seul les ports de l'ordinateur distant avant, donc je ne peux pas imaginer être un problème de configuration de tunnel. Je suis sur ubuntu linux sur les deux côtés.

Merci pour la lecture 🙂

source d'informationauteur fodon