Ich bin in der Lage, mit JMC auf dem gleichen System mit der JVM zu verbinden. Ich möchte jedoch einen Remote-Server überwachen. Wie verbinde ich meinen lokalen JMC mit meiner Remote-JVM?Wie verbinde ich JMC (Java Mission Control) mit Remote-JVM in Ubuntu?
Antwort
Im Server {Ubuntu} die /etc/hosts
Datei bearbeiten
127.0.1.1 server-name
mit dieser Zeile über der Linie ersetzen
<system-ip> server-name
Es ist alles in der Dokumentation beschrieben:
1. Klicken Sie auf Hilfe-> Java Mission Control Help.
2. Überprüfen Sie die JVM-Browserhilfe.
Weitere Informationen finden Sie unter:
http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html
Zuerst müssen Sie die externe JMX-Agent auf dem Server aktivieren. Dazu fügen Sie die entsprechenden com.sun.management.jmxremote den Befehlszeilenflags für die Server-JVM hinzu, mit der Sie eine Verbindung herstellen möchten. Hier ist ein einfaches Beispiel für eine Reihe von Systemeigenschaften, die verwendet werden können. Sie deaktivieren Sicherheit und Authentifizierung, so dass es nie so verwenden in der Produktion:
-Dcom.sun.management.jmxremote.port=7091
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Nächstes erstellen Sie eine benutzerdefinierte Verbindung in JMC. Sie tun dies, indem Sie die „Erstellen von benutzerdefinierten Verbindung“ in der JVM-Browser klicken:
Im nächsten Dialog können Sie einfach den Host und Port eingeben.
Meine Umgebung ist Jboss 7.1 in Linux, versuchte JMC meiner Jboss zu verbinden Beispiel, anfänglich habe ich Probleme mit der Verbindung abgelehnt - nach einem Tag und der Hälfte des Grabens, Remote JMC funktioniert jetzt für mich, mit den folgenden Konfigurationen in 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"
Die andere Antwort von hirt ist viel nützlicher – anon