Jestem w stanie połączyć się z JMC do JVM, będąc w tym samym systemie. Chcę jednak monitorować zdalny serwer. Jak podłączyć lokalny JMC do mojej zdalnej maszyny JVM?Jak podłączyć JMC (Java Mission Control) do zdalnej maszyny JVM w Ubuntu?
Odpowiedz
W serwerze {Ubuntu} Edytuj plik /etc/hosts
127.0.1.1 server-name
Replace powyżej linii z tej linii
<system-ip> server-name
Wszystko to jest opisane w dokumentacji:
1. Kliknij Pomoc-> Pomoc dotycząca Java Mission Control.
2. Sprawdź pomoc dotyczącą przeglądarki JVM.
celu uzyskania bardziej szczegółowych informacji, sprawdź:
http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html
Najpierw trzeba włączyć zewnętrznego agenta JMX na serwerze. Robisz to, dodając odpowiednie com.sun.management.jmxremote do flag wiersza poleceń dla JVM serwera, z którym chcesz się połączyć. Oto prosty przykład zestawu właściwości systemu, które można wykorzystać. Wyłączają zabezpieczenia i uwierzytelnianie, więc NIGDY nie używaj go w ten sposób:
-Dcom.sun.management.jmxremote.port=7091
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Następnie utworzysz niestandardowe połączenie w JMC. Można to zrobić, klikając przycisk "Utwórz połączenie niestandardowe" w przeglądarce JVM:
W nadchodzącym oknie dialogowym wystarczy wprowadzić host i port.
Moje środowisko jest JBoss 7.1 w systemie Linux, próbuje połączyć JMC do mojego JBoss Na przykład mam problemy z odmową połączenia - po półtorej dnia kopania zdalna JMC działa teraz dla mnie, z następującymi konfiguracjami w standalone.conf:
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,org.jboss.logmanager"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS"
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:/apps/jboss-as-7.1.1.Final/modules/org/jboss/logmanager/main/jboss-logmanager-1.2.2.GA.jar"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:/apps/jboss-as-7.1.1.Final/modules/org/jboss/logmanager/log4j/main/jboss-logmanager-log4j-1.0.0.GA.jar"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:/apps/jboss-as-7.1.1.Final/modules/org/apache/log4j/main/log4j-1.2.16.jar"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=7091"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=7091"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockCommercialFeatures"
JAVA_OPTS="$JAVA_OPTS -XX:+FlightRecorder"
Inna odpowiedź dostarczona przez hirt jest o wiele bardziej przydatna – anon