JMX (Java Management Extension) ist eine sehr leistungsfähige Technologie, mit der Sie Tomcat MBeans verwalten, überwachen und konfigurieren können.
Wenn Sie ein Tomcat-Administrator sind, dann sollten Sie wissen, wie Sie JMX in Tomcat aktivieren, um Heap-Speicher, Threads, CPU-Auslastung, Klassen zu überwachen und verschiedene MBeans zu konfigurieren.
In diesem Artikel werde ich Ihnen erklären, wie Sie Tomcat mit JConsole aktivieren und eine Verbindung zu ihm herstellen.
Ich gehe davon aus, dass Sie Tomcat bereits installiert haben; falls nicht, können Sie die Installationsanleitung zu Rate ziehen.
- Gehen Sie zu dem Pfad, auf dem Sie Tomcat installiert haben
- Gehen Sie zum Ordner bin
- Erstellen Sie eine Datei mit dem Namen "setenv.sh".
- Ändern Sie die Datei mit dem Editor vi und fügen Sie Folgendes hinzu
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- Speichern Sie die Datei mit ":w“
- Ändern Sie die Dateiberechtigung als ausführbar
chmod 755 setenv.sh
Bevor Sie Tomcat starten, um JMX zu überprüfen, lassen Sie uns einen Blick auf die obige Konfiguration werfen.
- Dcom.sun.management.jmxremote.port=9000 - Sie können die Portnummer ändern, wenn Sie möchten.
- Dcom.sun.management.jmxremote.ssl=false - dies bedeutet eine Verbindung ohne SSL
- Dcom.sun.management.jmxremote.authenticate=false - dies bedeutet, dass keine Authentifizierung erforderlich ist, wenn Sie den JMX-Client zur Verbindung mit der Tomcat-Instanz verwenden.
Starten wir den Tomcat mit der Skriptdatei startup.sh. Sobald er gestartet ist, können Sie ihn entweder mit dem Befehl netstat oder ps -ef grep überprüfen.
So überprüfen Sie mit netstat
netstat -anlp | grep 9000
[root@localhost ~]# netstat -anlp |grep 9000 tcp6 0 0 :::9000 :::* LISTEN 9372/java [root@localhost ~]#
Um dies mit dem Befehl ps zu überprüfen
ps -ef |grep jmx
[root@localhost ~]# ps -ef|grep jmx
root 9372 1 0 21:30 pts/0 00:00:04 java -Djava.util.logging.config.file=/home/chandan/Downloads/apache-tomcat-8.0.28/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.endorsed.dirs=/home/chandan/Downloads/apache-tomcat-8.0.28/endorsed -classpath /home/chandan/Downloads/apache-tomcat-8.0.28/bin/bootstrap.jar:/home/chandan/Downloads/apache-tomcat-8.0.28/bin/tomcat-juli.jar -Dcatalina.base=/home/chandan/Downloads/apache-tomcat-8.0.28 -Dcatalina.home=/home/chandan/Downloads/apache-tomcat-8.0.28 -Djava.io.tmpdir=/home/chandan/Downloads/apache-tomcat-8.0.28/temp org.apache.catalina.startup.Bootstrap start root 9816 9781 0 21:46 pts/0 00:00:00 grep --color=auto jmx [root@localhost ~]#
Damit ist jmx in Tomcat aktiviert und es ist an der Zeit, eine Verbindung mit dem JMX-Client herstellen.
Sie können jeden beliebigen Client verwenden, aber um es Ihnen zu zeigen, werde ich jconsole verwenden, das mit Java geliefert wird.
Tomcat JMX mit Jconsole verbinden
- Gehen Sie zu dem Pfad, in dem Sie jconsole haben
Tipp: Sie können den Befehl finden verwenden, wenn Sie sich nicht sicher sind.
- Führen Sie jconsole aus
./jconsole
Daraufhin wird die Java Monitoring & Management Console geöffnet.
- Wählen Sie "Entfernter Prozess".
- Geben Sie den Host und den Port des Servers ein
- Klicken Sie auf "Verbinden".
Dies stellt eine Verbindung zu Tomcat her und zeigt Ihnen sehr schöne Diagramme zur CPU-, Speicher- und Thread-Auslastung an. Dies ist bei der Fehlersuche sehr nützlich.
Sie können die GC auch von der Konsole aus durchführen.
- Klicken Sie auf die Registerkarte Speicher und Sie sehen die Schaltfläche "GC durchführen".
Wie bereits zu Beginn des Artikels erwähnt, können Sie auch MBeans für die Klassen konfigurieren.
Dies wird häufig verwendet, wenn Sie die Protokollierung oder bestimmte Parameter zur Laufzeit ändern müssen.
Spielen Sie auch ruhig ein wenig mit Jconsole und JMX herum. Es ist ein wunderbares Werkzeug für die Fehlersuche und Überwachung.
Wenn Sie mehr über Tomcat erfahren möchten, dann Sehen Sie sich dieses Tutorial an an.