Verbindung mit remote tomcat JMX-Instanz mithilfe von jConsole
Ich versuche eine Verbindung zu einem remote tomcat JMX-Instanz mithilfe von jConsole. Kann aber keine Verbindung erfolgreich. Irgendeine Idee?
Habe ich die folgende option im remote-tomcat catalina.sh
:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9004 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false"
InformationsquelleAutor der Frage Niger | 2009-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte ein ähnliches, wenn nicht sogar gleichen problem. Ich konnte die Verbindung zum JMX-server, wenn ich anfing, jconsole lokal auf der Maschine.
Scheint es, den RMI-server war nicht zu hören auf die richtige ip. So, wie vorgeschlagen wurde, in in diesem Zusammenhang Fragehabe ich noch folgende:
zu
JAVA_OPTS
als gut, und dann hat es geklappt.InformationsquelleAutor der Antwort waxwing
Die ich gesammelt habe, verbreiten von Informationen über das Netz, gefunden mit Tipps von anderen Mitgliedern.
Meisten Schmerzen verursacht durch JMX ist (imo) die Tatsache, dass der JMX-öffnet eine zweite dynamisch zugeordnete Netzwerk-port. Eine firewall (wie iptables) sperren.
Lösung für tomcat unter linux :
tomcat 6.0.24 oder neuer
download catalina-jmx-remote.jar von apache-tomcat-extras (suchen Sie auf tomcat-download-Seite)
kopieren Sie es in die $CTALINA_HOME\lib
Dies ermöglicht Ihnen, beide ports die JMX -
Bearbeiten-Server-Abschnitt in Ihrem server.xml
einige Umgebungsvariablen setzen (z.B. in setenv.sh)
dieser aktiviert die access control für die JMX -
jmxremote.zugreifen Aussehen wird
Ende jmxremote.Passwort wird
(nur einfache Leerzeichen)
starten Sie tomcat neu.
Nun konfigurieren Sie die firewall auf dem server (z.B. iptables)
/etc/sysconfig/iptables
und /etc/sysconfig/ip6tables
restart iptables
Getan!
Nun verwenden VisualVM oder JConsole auf Ihrer Arbeitsstation, um eine Verbindung aufbauen zu rmiRegistryPortPlatform, 9840 in unserer Stichprobe.
Wenn es keine weiteren firewalls zwischen workstation und server sollte es funktionieren.
InformationsquelleAutor der Antwort Hajo Thelen
Versucht mit Java-8
1. Fügen Sie dem java-tomcat-Startskript:
zum Beispiel add in bin/setenv.sh diese:
2. Führen Sie diese auf Ihrem computer.
Windows-Benutzer:
putty.exe -ssh user@remote-host -L 1616:remote-host:1616
Linux-und Mac-Nutzer:
ssh user@remote-host -L 1616:remote-host:1616
3. Start
jconsole
auf Ihrem computer4. Spaß haben!
ssh
und-L
Sie angeben, dass der port 1616 auf dem lokalen (client) host weitergeleitet werden, um die remote-Seite.InformationsquelleAutor der Antwort freedev
welche Zeichenfolge verwenden Sie als die JMX-connection-url. Ich meine nicht die offensichtlichen, sondern JConsole hat eine schreckliche Schnittstelle und für mich erfordert eine übermäßig komplexe url, bevor Sie eine Verbindung zu einem remote-jmx-app. Mine sieht wie folgt aus:
InformationsquelleAutor der Antwort Matt
Aktivieren von JMX in Tomcat8, erfolgreich getestet in meinem POC
1/Download der
catalina-jmx-remote.jar
von der apache-website und platzieren Sie in$CATALINA_HOME/lib
.2/Nehmen Sie
server.xml
/setenv.sh
backup. Die änderungen anserver.xml
wie unten-3/änderungen Vornehmen, um
$CATALINA_BASE/bin/setenv.sh
wie -4/Erstellen Sie diese beiden Dateien -
$touch $CATALINA_BASE/conf/jmxremote.password
mit:$touch $CATALINA_BASE/conf/jmxremote.access
mit:5/Starten Sie tomcat neu, und testen Sie auf jconsole-tool 🙂
InformationsquelleAutor der Antwort Bkkv
Was genau meinst du wenn du sagst "kann Aber keine Verbindung erfolgreich."? Gibt es eine Fehlermeldung? Aktivieren Sie die Protokollierung in jconsole und sehen, ob das hilft Debuggen.
Einschalten jconsole Anmeldung, Bearbeiten Sie eine Datei mit dem Namen logging.Eigenschaften in das Verzeichnis, das Sie laufen wird, jconsole, hinzufügen:
Dann starten Sie jconsole mit:
InformationsquelleAutor der Antwort joe p
wenn Sie arbeiten auf linux, ändern Sie die catalina.sh Datei hinzufügen:
oder ändern Sie die Datei /etc/profile als root an, und führen Sie erneut die Datei (source /etc/profile)
wenn Sie unter windows arbeiten und Sie starten von tomcat von der Kommandozeile verwenden
die Umgebungsvariable CATALINA_OPTS
wenn Sie unter windows arbeiten und Sie starten von tomcat als service, die Sie brauchen, um verwenden der monitor-service-Dienstprogramm, um den Dienst zu konfigurieren Initialisierung Parameter (weder setenv.Fledermaus, catalina.Fledermaus oder env-vars arbeiten). dafür benötigen Sie den service-Namen ein, der angezeigt wird, Dienste aufgeführt.msc (zum Beispiel jasperreportsTomcat). Nach, müssen Sie öffnen Sie eine Konsole als administrator und führen Sie (zum Beispiel):
tomcat6w.exe //MS//jasperreportsTomcat
mit diesem Befehl erscheint ein tray-icon, wo Sie können, öffnen Sie ein panel. In der "Java" - Registerkarte können Sie nun ändern Sie die jmx-Optionen. Seien Sie vorsichtig, um nicht add trailing whitespaces und die "[enter]" - symbol, trennen Sie jede option zeilenweise.
Hoffe es hilft
InformationsquelleAutor der Antwort andhdo
Prüfen Sie, ob Ihr server hinter der firewall. JMX ist die Basis der Java-RMI-API, die open zwei-port, wenn Sie es starten. Ist das register port, Standard ist 1099, und kann angegeben werden durch die com.Sonne.management.jmxremote.port-option. Die andere ist für Daten, Kommunikation, und zufällig ist, was zu Problemen führen. Eine gute Nachricht ist, dass, von JDK6, diese zufälligen port kann angegeben werden durch die com.Sonne.management.jmxremote.rmi.port-option.
fügen Sie die Zeile in der Sie {tomcat_dir}/bin/setenv.sh:
InformationsquelleAutor der Antwort arganzheng
Habe ich etwas für alle von Euch, um die komplette Aufklärung dieser ganzen Sache. Gibt es einen trick, passiert es, dass die profiler-tool connnects mit der jvm über einen Anschluss, aber die jvm weiterhin das Gespräch mit einem anderen zufälligen port. Wenn die jvm ausgeführt wird, innerhalb einer remote-Maschine (zum Beispiel : tomcat-web-app-server), und der remote-Computer muss der Schutz gegen ausgehende und eingehende verbindungen, müssen Sie die java system property
com.sun.management.jmxremote.rmi.port
auf den gleichen Wert der Eigenschaft mit dem Namencom.sun.management.jmxremote.port
Quelle : https://serverfault.com/questions/308662/how-do-i-fix-a-failed-to-retrieve-rmiserver-stub-jmx-error
Und auch check this out : http://blog.cantremember.com/debugging-with-jconsole-jmx-ssh-tunnels/
Hoffe, dazu beitragen, Jungs!
Und viel Glück!
InformationsquelleAutor der Antwort Victor
Gut, ich hatte dieses problem in einem Linux-Rechner (virtuelle Maschine) und ich reparierte es mit -Djava.rmi.server.hostname-Eigenschaft, aber es gibt eine Sache, die ich nicht verstehen kann. Meine Maschine hat 5 tomcat-Servern, die alle von Ihnen hat jmx aktiviert in aufeinanderfolgenden ports (8008,8018,8028...) und nur einer von Ihnen hatte dieses Problem Verbindung JMX. Keine firewall, kein -Djava.rmi.server.hostname-Eigenschaft in jedem tomcat....
Also das Ding ist, ich verstehe das problem, aber ich kann nicht verstehen, warum die 4 von meinem Kater gearbeitet, und 1 von Ihnen nicht.
P. D: Mein Englisch ist sehr schlecht, ich weiß. Ich Entschuldige Mich.
InformationsquelleAutor der Antwort Icarokun
PROTIP: Sie brauchen, zu beheben (wie in einer bekannten Nummer) die RMI-Registry und JMX/RMI-Server-ports. Sie tun dies, indem Sie die jar-Datei im lib-Verzeichnis und die Konfiguration einer speziellen Hörer. (Und natürlich die üblichen flags zur Aktivierung der JMX -
Finden Sie unter: JMX-Remote-Lifecycle-Listener an http://tomcat.apache.org/tomcat-6.0-doc/config/listeners.html
InformationsquelleAutor der Antwort supdog
Änderung der
/etc/hosts
auf linux, wo ich ersetzte die localhost-Adresse zu meinem Konto auf der Maschine, ip -, löste dieses problem für mich.InformationsquelleAutor der Antwort PedroG