Uno
de los problemas encontrados en la nube de Amazon, al poner en
marcha un portal basado en Java como Liferay Portal fue la
monitorización via JMX. Los servicios de Amazon están detras de un
firewall y es necesario gestionar los puertos que abres para tu
instancia de Amazon, por ejemplo, el 22 o el 80. De este modo, en las
opciones de java de arranque del contenedor Tomcat necesitaríamos
abrir los puertos que gestionan la consola JMX. Uno de ellos puede
fijarse con la variable jmxremoteport, pero la monitorización remota
necesita tambien de otro puerto RMI, que no es posible definir por
configuración en versiones < 6.0.24 del contenedor Tomcat y que no
responde un puerto fijo. Para ello utilizamos esta clase java y las
siguientes opciones:
http://confluence.sakaiproject.org/display/QA/Remote+JVM+profiling+via+SSH+tunnels
La configuración en el arranque es la siguiente:
JMX_PORT=9012 RMI_PORT=55038 JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx2048m -XX:MaxPermSize=1024m -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaas.config -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false" CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=$JMX_PORT -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/opt/liferay-portal-5.2-ee-sp3-test/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/opt/liferay-portal-5.2-ee-sp3-test/jmxremote.access -Djava.rmi.server.hostname=liferay.zylk.net -Dedu.ucmerced.jmx.tunnelingrmiagent.port=$RMI_PORT -javaagent:/opt/liferay-portal-5.2-ee-sp3-test/jmxtunnel.jar"
Desde jconsole en remoto:
service:jmx:rmi://liferay.zylk.net:9012/jndi/rmi://liferay.zylk.net:55038/jmxrmi
Si dispones de una versión de Tomcat por encima de 6.0.24:
http://gabenell.blogspot.com/2010/04/connecting-to-jmx-on-tomcat-6-through.html
Se espera que estas opciones de monitorización via consola JMX
sean mayores en la reciente versión beta de Tomcat 7.0
http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html