So aktivieren Sie die JMX-Überwachung über Tomcat

So aktivieren Sie die JMX-Überwachung über Tomcat

Erstellen Sie eine Simulationsumgebung:
Betriebssystem: centos7
Speicher: 1 GB
jdk:1.8.0_131
Tomcat:8.0.48

Wir werden hier nicht die Umgebungsvorbereitung demonstrieren, sondern den JMX von Tomcat direkt konfigurieren

1. Geben Sie das Bin-Verzeichnis von Tomcat ein

# cd /opt/tomcat/apache-tomcat-8.0.48/bin/

2. Bearbeiten Sie die Konfigurationsdatei

# vim catalina.sh

3. Fügen Sie Parameter über dem Bild unten hinzu

So sieht es nach dem Hinzufügen von Parametern aus

3.1. Für diese Konfiguration ist kein Konto oder Passwort für die Verbindung mit jmx erforderlich:

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.100.117
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

Screenshot nach der Konfiguration:

Parameterbeschreibung:

Hostname: ist die IP-Adresse des Servers, auf dem Tomcat überwacht wird

jmxremote.port: Portnummer, also die zu öffnende Überwachungsportnummer

jmxremote.ssl: ob SSL-Verbindung aktiviert werden soll

authenticate: false bedeutet, dass für die Überwachung kein Benutzer und kein Passwort erforderlich sind

3.2. Benutzername und Passwort müssen konfiguriert werden:

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.100.117
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"

Screenshot nach der Konfiguration:

Parameterbeschreibung:

authenticate: true, um die Kontoauthentifizierung zu aktivieren

access.file: Pfad der Berechtigungsdatei

password.file: Pfad der Kennwortdatei

3.3. Wenn die Kennwortüberprüfung nicht konfiguriert ist, ist dieser Schritt nicht erforderlich. Dieser Schritt ist erforderlich, wenn die Benutzer- und Kennwortüberprüfung aktiviert ist.

3.3.1. Suchen Sie das JDK-Installationsverzeichnis

Wenn Sie nicht wissen, wo das Verzeichnis installiert ist, können Sie es mit dem folgenden Befehl finden:

# java -verbose

3.3.2. Wechseln Sie in das JDK-Verzeichnis

Geben Sie # cd jre/lib/management/

Im Dateiverzeichnis befinden sich die Dateien jmxremote.access und jmxremote.password.template. Kopieren Sie diese in das conf-Verzeichnis von Tomcat.

# cp jmxremote.* /opt/tomcat/apache-tomcat-8.0.48/conf/

3.3.3. Ändern Sie die Datei jmxremote.access

3.3.4. Benennen Sie die Passwortdatei um:

# mv jmxremote.password.template jmxremote.password

3.3.5 Passwortdatei bearbeiten

# vim jmxremote.password

3.3.6. Nach dem Bearbeiten der Datei müssen Sie die Berechtigungen der Zugriffsdatei und der Kennwortdatei ändern, sonst startet Tomcat nicht

# chmod 600 jmxremote.*

4. Starten Sie Tomcat

[root@ha bin]# ./startup.sh 
Verwenden von CATALINA_BASE: /opt/tomcat/apache-tomcat-8.0.48
Verwenden von CATALINA_HOME: /opt/tomcat/apache-tomcat-8.0.48
Verwenden von CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.0.48/temp
Verwenden von JRE_HOME: /usr
CLASSPATH verwenden: /opt/tomcat/apache-tomcat-8.0.48/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.0.48/bin/tomcat-juli.jar
Tomcat wurde gestartet. 

4.1. Nachdem Sie die oben genannten Vorgänge abgeschlossen haben, verwenden Sie die von JDK bereitgestellte Datei jvisualvm.exe, um eine Verbindung herzustellen und es unter Windows zu testen.

Doppelklicken Sie, um die JMX-Verbindung zu öffnen

4.2. Starten Sie Tomcat neu und testen Sie, ob JMX noch eine Verbindung herstellen kann

# ./shutdown.sh

4.2.1. Stellen Sie erneut eine Verbindung zu jmx her, um zu prüfen, ob eine Verbindung hergestellt werden kann

Das Datenüberwachungsdiagramm kann nicht angezeigt und die Verbindung nicht hergestellt werden

Warum tritt dieses Problem auf?

Das online gegebene Fazit lautet:

Für die JMX-Remote-Integrität von Tomcat sind zwei Ports erforderlich: einer ist der Registrierungsport und der andere der Serviceport. Der zuvor angegebene Port 9999 ist der Registrierungsport. Tomcat gibt beim Start nach dem Zufallsprinzip einen Serviceport an. Da wir nur einen Registrierungsport haben, hat sich der Registrierungsport nach dem Neustart des Dienstes nicht geändert, der Serviceport jedoch. Eine erneute Verbindung über den Registrierungsport kann nicht mehr mit dem vorherigen Serviceport hergestellt werden. Es gibt keine Möglichkeit, die Serververbindung anzugeben, und der Serviceport ist zufällig.

Eine Methode besteht darin, für JMX einen festen Registrierungsport und Serviceport festzulegen, um dies über das JAR-Paket zu erreichen.

5. Melden Sie sich auf der offiziellen Website von Tomcat an (beachten Sie, dass meine Tomcat-Version 1.8.0 ist und auf der offiziellen Website nur 1.8.5 verwendet werden kann).

Website: https://tomcat.apache.org/

Finden Sie das JMX Remote Jar entsprechend Ihrer Tomcat-Version

6. Laden Sie die heruntergeladenen Dateien in das lib-Verzeichnis von tomcta hoch

Sie können auch direkt mit wget auf den Link zum Lib-Verzeichnis zugreifen, um das JAR-Paket abzurufen.

# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/extras/catalina-jmx-remote.jar

7. Bearbeiten Sie die Datei server.xml im conf-Verzeichnis von Tomcat

# vim server.xml

Fügen Sie den folgenden Inhalt hinzu:

 <Listener-Klassenname="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
 rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" /> 

8. Bearbeiten Sie catalina.sh im Bin-Verzeichnis von Tomcat

# vim catalina.sh

So entfernen Sie einen Parameter:

-Dcom.sun.management.jmxremote.port=9999

9. Starten Sie den Tomcat-Test neu. Der JMX-Registrierungsport ist 10001 und der Serviceport ist 10002.

10. Starten Sie Tomcat neu und stellen Sie zum Testen erneut eine Verbindung her

Wenn wir auf die zuvor erstellte JMX-Remoteverbindung doppelklicken, stellen wir fest, dass wir keine Verbindung herstellen können. Warum ist das so? Hier sollten wir auf die PID-Nummer in der obigen Verbindung achten. Nach der Abfrage haben wir festgestellt, dass diese PID-Nummer die PID-Nummer von Tomcat unter Linux ist. Wenn wir Tomcat neu starten, wird eine neue PID-Nummer generiert. Wenn wir also eine Verbindung herstellen möchten, müssen wir eine neue Verbindung erstellen.

11. Wenn wir erneut eine neue JMX-Verbindung herstellen, erhalten wir eine neue PID-Nummer

12. Hier haben wir erfolgreich getestet. Wenn wir also Zabbix verwenden, um Tomcat mit JMX zu überwachen, müssen wir uns keine Sorgen machen, dass Tomcat neu gestartet wird und der JMX-Port keine Verbindung herstellen kann.

Zusammenfassen

Oben sehen Sie die vom Herausgeber vorgestellte grafische Methode zum Aktivieren der JMX-Überwachung über Tomcat. Ich hoffe, sie ist für alle hilfreich!

Das könnte Sie auch interessieren:
  • Einführung in die JMX-Servicemethode von Tomcat
  • Tomcat-Konfiguration JMX-Remoteverbindung

<<:  Detaillierte Erläuterung der Konzepte, Prinzipien und allgemeinen Verwendung von gespeicherten MySQL-Prozeduren

>>:  Vue implementiert den Schnittstellen-Gleiteffekt

Artikel empfehlen

Ausführliche Erläuterung der HTML-Grundlagen (Teil 1)

1. Das WEB verstehen Webseiten bestehen hauptsäch...

Detailliertes Tutorial zur Springcloud-Alibaba-Nacos-Linux-Konfiguration

Laden Sie zuerst das komprimierte Nacos-Paket von...

Handschriftliche Implementierung von new in JS

Inhaltsverzeichnis 1 Einführung in den neuen Oper...

So verfolgen Sie Benutzer mit JS

Inhaltsverzeichnis 1. Synchrones AJAX 2. Asynchro...

jQuery-Plugin zur Implementierung des Minesweeper-Spiels (2)

In diesem Artikel wird der zweite Artikel zur Ver...

Implementierung von Single-Div-Zeichentechniken in CSS

Sie können häufig Artikel über das Zeichnen mit C...

Beispiel für eine HTTPS-Konfigurationsmethode für den Nginx-Server

Linux: Linux-Version 3.10.0-123.9.3.el7.x86_64 Ng...

Grundlegendes Tutorial zur Verwendung der Explain-Anweisung in MySQL

Inhaltsverzeichnis 1. Übersicht 1. Aussagetest er...

Erweiterte Erklärung der Javascript-Funktionen

Inhaltsverzeichnis Funktionsdefinitionsmethode Fu...