[LINUX] Überwachen Sie Tomcat-Prozesse mit dem Zabbix-Agenten

wie kann ich?

Ich werde ein Überwachungselement für den Startvorgang von Tomcat erstellen. Überprüfen Sie zuerst die Operation mit zabbix_get.

$ zabbix_get -s 192.168.200.24 -k proc.num[httpd]
6
$ zabbix_get -s 192.168.200.24 -k proc.num[tomcat]
0

Wie bekommt man Kater ...?

Die Antwort lautet:

$ zabbix_get -s 192.168.200.24 -k proc.num[java,,,"org.apache.catalina.startup.Bootstrap start"]
1

Umgebung

Lesen Sie die Referenz richtig

Es gab eine Verwendung in Zabbix-Dokumentation 2.2. Wenn Sie also nachschlagen, müssen Sie den Prozessnamen kennen. Wisse das.

proc.num[<name>,<user>,<state>,<cmdline>]

--name --Prozessname (Standard ist "alle Prozesse") --user --Benutzername (Standard ist "alle Benutzer") --state - mögliche Werte: all (Standard), run, sleep, zomb --cmdline - Befehlszeilenfilter (regulärer Ausdruck)

Suchen Sie den Prozessnamen von Tomcat

Überprüfen Sie den Status des laufenden Kater.

$ systemctl status tomcat
● tomcat.service - Apache Tomcat 8
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited)seit Baum 2020-02-06 15:01:19 JST; 1h 29min ago
  Process: 844 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 844 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/tomcat.service
           └─875 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.prot...

06. Februar 15:01:19 192.168.200.24 systemd[1]: Starting Apache Tomcat 8...
06. Februar 15:01:19 192.168.200.24 systemd[1]: Started Apache Tomcat 8.

Untersuchen Sie PID875 weiter.

$ cat /proc/875/stat 
875 (java) S 1 844 844 0 -1 1077944320 19379 0 124 0 937 64 0 0 20 0 41 0 752 2357014528 21813 18446744073709551615 4194304 4196524 140724105374304 140724105356960 140023800299543 0 0 2 16800973 18446744073709551615 0 0 17 0 0 0 5 0 0 6294912 6295604 12607488 140724105383058 140724105383592 140724105383592 140724105383914 0

Der in () eingeschlossene Teil ist der Prozessname. Der Name des Prozesses, auf dem Tomcat ausgeführt wird, scheint "Java" zu sein.

Lösung (falsch)

$ zabbix_get -s 192.168.200.24 -k proc.num[java]
1

Ich hab es geschafft!

... aber plötzlich bemerken. Dies ist nur ein Java-Prozess, und es kann nicht festgestellt werden, ob es sich um einen Tomcat-Prozess handelt.

Überprüfen Sie den Vorgang erneut

$ ps aux | grep java
tomcat     875  0.1  8.6 2301772 87452 ?       Sl   15:01   0:10 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start

Anscheinend wird dieser Prozess von Tomcat ausgeführt.

$ zabbix_get -s 192.168.200.24 -k proc.num[java,tomcat]
1

Ich hab es geschafft.

Wenn Sie jedoch sorgfältig darüber nachdenken, führt der Tomcat-Benutzer nur den Java-Befehl aus. Ich habe festgestellt, dass ich den ** Tomcat-Startvorgang ** nicht überwache.

Erneut überprüfen

Ich überprüfte den Prozess und bemerkte. Die Option war lang und schwer zu verstehen, aber es gibt eine Beschreibung des Startvorgangs (org.apache.catalina.startup.Bootstrap start).

$ ps aux | grep java
tomcat    2023 83.6  7.3 2299724 74204 ?       Sl   17:26   0:02 

/usr/bin/java 
  -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties 
  -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
  -Djdk.tls.ephemeralDHKeySize=2048 
  -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 
  -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 
  -Dignore.endorsed.dirs= 
  -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar 
  -Dcatalina.base=/opt/tomcat 
  -Dcatalina.home=/opt/tomcat 
  -Djava.io.tmpdir=/opt/tomcat/temp 
  org.apache.catalina.startup.Bootstrap start

proc.num[<name>,<user>,<state>,<cmdline>] Es scheint, dass es über die Befehlszeile des 4. Arguments extrahiert werden kann.

$ zabbix_get -s 192.168.200.24 -k proc.num[java,,,"org.apache.catalina.startup.Bootstrap start"]
1

Ich konnte die Anzahl der Startvorgänge sicher ermitteln. Ich habe es nicht geschrieben, weil ich dachte, dass es nicht viel Sinn macht, ein Tomcat-Benutzer zu sein.

Am Ende

Ich habe es lange geschrieben. Ich habe auch eine Beschreibung mit der Aufschrift "proc.num [java, tomcat]" gesehen, also habe ich diese eingeführt.

Ergänzung

Abhängig davon, wie Sie Tomcat installieren, kann es von der oben beschriebenen Methode abweichen. Wenn Sie jedoch wissen, wie Sie dies überprüfen, funktioniert die Anwendung. In meinem Fall habe ich die Quelle heruntergeladen, erweitert und installiert. Referenz: Ich habe versucht, Apache und Tomcat zu verknüpfen

Recommended Posts

Überwachen Sie Tomcat-Prozesse mit dem Zabbix-Agenten
Gaußscher Prozess mit pymc3
[Amsel-Redis] Überwachen Sie Redis mit Amsel
[blackbird-rabbitmq] Überwache rabbitmq mit Amsel
Töte den Prozess mit sudo kill -9
[Amsel-Nginx] Überwachen Sie Nginx mit Amsel
[Amsel-Aerospike] Überwachen Sie Aerospike mit Amsel
[blackbird-xfs] Überwache xfs mit Amsel
ShinobiLayer: Prozessüberwachung mit erweiterter Überwachung
[Amsel-Mysql] Überwachen Sie Mysql mit Amsel
[Amsel-memcached] Monitor Mit Amsel zwischengespeichert
Verarbeiten Sie Feedly-XML mit Python.
Authentifizierungsprozess mit gRPC- und Firebase-Authentifizierung
[Amsel-Fio-Status] Überwachen Sie ioDrive (Fusion-IO) mit Amsel
Überwachen Sie Python-Webanwendungen mit Prometheus
Überwachen Sie die Leistung von Python-Anwendungen mit Dynatrace ♪
Überwachen Sie den Status von ISC DHCP mit ZABBIX
[Amsel benannt] Monitor Binden (benannt) mit Amsel
Verarbeiten Sie Pubmed .xml-Daten mit Python