[LINUX] Surveiller les processus Tomcat avec Zabbix-agent

Comment puis-je faire?

Je vais faire un élément de surveillance pour le processus de démarrage de Tomcat. Commencez par vérifier l'opération avec 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

Comment obtenez-vous Tomcat ...?

La réponse est la suivante

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

environnement

Lisez correctement la référence

Il y avait une utilisation dans Documentation Zabbix 2.2, donc si vous le recherchez, vous devez connaître le nom du processus. Sache que.

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

--name --Nom du processus (la valeur par défaut est "tous les processus") --user --Nom d'utilisateur (la valeur par défaut est "tous les utilisateurs") --state - valeurs possibles: all (par défaut), run, sleep, zomb --cmdline --Filtre de ligne de commande (expression régulière)

Recherchez le nom du processus de tomcat

Vérifiez l'état du tomcat en cours d'exécution.

$ systemctl status tomcat
● tomcat.service - Apache Tomcat 8
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited)depuis l'arbre 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 février 15:01:19 192.168.200.24 systemd[1]: Starting Apache Tomcat 8...
06 février 15:01:19 192.168.200.24 systemd[1]: Started Apache Tomcat 8.

Examinez plus en détail le PID «875».

$ 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

La partie entre () est le nom du processus. Le nom du processus exécutant tomcat semble être java.

Solution (fausse)

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

J? ai compris!

... mais remarquez soudainement. Il ne s'agit que d'un processus Java et il ne peut pas être déterminé s'il s'agit d'un processus tomcat.

Vérifiez à nouveau le processus

$ 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

Apparemment, ce processus est exécuté par tomcat.

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

J? ai compris.

Cependant, si vous y réfléchissez bien, l'utilisateur tomcat exécute simplement la commande java. J'ai remarqué que je ne surveille pas le ** processus de démarrage de Tomcat **.

Revérifier

J'ai vérifié le processus et remarqué. L'option était longue et difficile à comprendre, mais il existe une description du processus de démarrage (ʻ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>] Il semble qu'il puisse être extrait en utilisant la ligne de commande du 4ème argument.

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

J'ai pu obtenir le décompte du processus de démarrage en toute sécurité. Je ne l'ai pas écrit parce que je pensais que cela n'avait pas beaucoup de sens d'être un utilisateur de Tomcat.

À la fin

Je l'ai écrit pendant longtemps. J'ai aussi vu une description qui dit proc.num [java, tomcat], donc j'ai introduit ceci.

Supplément

Selon la façon dont vous installez Tomcat, cela peut différer de la méthode ci-dessus, mais si vous savez comment le vérifier, l'application fonctionnera. Dans mon cas, j'ai téléchargé et développé la source et l'ai installée. Référence: J'ai essayé de lier Apache et Tomcat

Recommended Posts

Surveiller les processus Tomcat avec Zabbix-agent
Processus gaussien avec pymc3
[blackbird-redis] Surveiller Redis avec blackbird
[blackbird-rabbitmq] Surveiller rabbitmq avec blackbird
Tuez le processus avec sudo kill -9
[blackbird-nginx] Surveiller Nginx avec blackbird
[blackbird-aerospike] Surveiller Aerospike avec blackbird
[blackbird-xfs] Surveiller les fichiers xfs avec blackbird
ShinobiLayer: surveillance de processus avec surveillance avancée
[blackbird-mysql] Surveiller mysql avec blackbird
[blackbird-memcached] Surveiller Memcached avec blackbird
Traitez le XML avec Python.
Processus d'authentification avec gRPC et authentification Firebase
[blackbird-fio-status] Surveiller ioDrive (Fusion-IO) avec blackbird
Surveillez les applications Web Python avec Prometheus
Surveillez les performances des applications Python avec Dynatrace ♪
Surveiller l'état du DHCP ISC avec ZABBIX
[blackbird-named] Monitor Bind (nommé) avec blackbird
Traiter les données Pubmed .xml avec python