Jboss 6.4 con visaulvm

¿Como conectar Jboss 6.4 con visualvm de forma remota?

Me llevo casi todo el día esta pregunta, en parte por no leer completo las soluciones de redhat y por hacer otras cosas que no me daban solución. Por lo que deduzco se tratan de otras versiones, en fin. Para poder conectar nuestro visualvm con jboss 6.4 seguiremos los siguientes pasos.

Antes de empezar

Deberemos contar con la versión jboss 6.4 en nuestra maquina, en mi caso use el jboss eap 6.4. Es necesario tener nuestro jboss debido a que requiere usar módulos tanto para conectarse como para funciones X.

Si no tienes visualvm no importa, jboss provee un script o un .bat para realizar las mismas funciones

Para esta solución suponemos que tienen un servidor para el controlador y un/unos servidores diferentes para los esclavos

Iniciamos

Primero necesitamos un usuario para el aplicativo a que deseemos conectarnos. Este usuario hay que crearlo en nuestro servidor esclavo. Para esto usamos el script que proporciona jboss, ejecutando el siguiente comando;

./add-user.sh -a usuario contraseña

Ahora nos conectamos al servidor maestro mediante cli. Una vez dentro ejecutamos el siguiente comando:

/profile=full-ha/subsystem=jmx/remoting-connector=jmx:add(use-management-endpoint=false)

Donde: 
  • profile: se refiere al perfil que estamos usando para nuestro aplicativo.
Ahora iniciaremos el visualvm de la siguiente forma

visualvm -cp:a jboss-eap-6.4/bin/client/jboss-client.jar

visualvm es el script y le pasamos la dirección de nuestro jboss donde esta ubicado el jar jboss-client.jar.

Creamos la conexión remota a nuestro servidor y de ahí agregamos una conexión jmx. Cuando nos pida la conexión ingresamos lo siguiente:

service:jmx:PROTOCOL://IP:PORT
Donde
  • PROTOCOL=remoting-jmx
  • IP=la ip de nuestro servidor esclavo
  • PORT=Puerto al que nos conectaremos. Por defaul se abre 4447. Si tiene un offset diferente debemos de aumentarlo aquí también. Ejemplo: offset de +500 el puerto es equivalente a 4947
En la sección de use security credencial colocamos el usuario y contraseña que creamos para el servidor > check en Do not use SSL > "OK"

Con esto podremos conectarnos a un servidor esclavo de forma remota para nuestro jboss 6.4.

De forma adicional puedes conectarte mediante JConsole ingresando la conexión de jmx, usuario y contraseña antes creado.

Por alguna extraña razón antes de hacer funcionar visualvm no me dejaba conectarme mediante JConsole a menos que tuviera las siguientes jvmoptions

Las siguientes variables de jvm no funcionan para conectarse a visualvm:

-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345


Una vez ingresadas hay que reiniciar la instancia para que tome los valores.












Comentarios

Entradas populares