Conexões JMX remotas são enviadas para localhost

1

Estou tentando configurar o monitoramento JMX remoto em um processo Java. Estas são as opções que estou dando à JVM para iniciá-lo:

JAVA_OPTS="-server -Xms1G -Xmx1G -XX:MaxPermSize=512m "
JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=57011 -Dcom.sun.management.jmxremote.authenticate=false"
JMX_OPTS="$JMX_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dfoo.jmx=true -Dfoo.jmx.detailed=true"
JMX_OPTS="$JMX_OPTS -Djava.rmi.server.host=192.168.9.121"
LOG_OPTS="-Dfoo.logging.type=log4j -DLOGDIR=${SERVERDIR}/logs"
ASD_OPTS="-Dfoo.conf.file=file:${PROPFILE} -cp ${CLASSPATH} foo"
/usr/bin/nohup ${JAVA_EXE} $JAVA_OPTS $JMX_OPTS $LOG_OPTS $ASD_OPTS 1>${SERVERDIR}/service.log 2>&1 &

Consigo me conectar usando o Jconsole localmente, mas quando me conecto de um host remoto, recebo o seguinte erro (cortado por questão de brevidade)

Java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: 
java.net.ConnectException: Connection refused: <snip>

Portanto, apesar da declaração explícita dizendo para ligar para 192.168.9.121 (-Djava.rmi.server.host), o JMX ainda está ligado à interface de loopback do sistema remoto.

A única solução encontrada é modificar meu / etc / hosts para definir o FQDN do sistema da seguinte forma:

127.0.0.1       localhost localhost.localdomain
192.168.9.121   my.servers.fqdn.com

Baseado no fato de que todo sistema Linux que eu já vi tem "my.servers.fqdn.com" apontando para 127.0.0.1, eu posso apenas imaginar estranhos problemas em mudar isso.

Como posso fazer o monitoramento remoto do JMX funcionar sem esse hack?

O sistema é o CentOS 6, o Java 1.6.0_35, firewall desativado para testes.

    
por grog_7 16.05.2013 / 00:35

0 respostas

Tags