Tomcat est-il en cours d’exécution?

Intéressé de savoir comment les gens vérifient généralement si Tomcat est exécuté sur un environnement Unix.

Je vérifie que le processus fonctionne en utilisant

ps -ef | grep java ps -ef | grep logging 

ou je vérifie que le numéro de port est actif

 netstat -a | grep 8080 

existe-t-il un meilleur moyen de vérifier que Tomcat est en cours d’exécution? Ce qui précède semble être une façon “pirates” de vérifier que Tomcat est en cours d’exécution.

Pourquoi grep ps , lorsque le pid a été écrit dans le fichier $CATALINA_PID ?

J’ai un script de vérification de cron qui envoie un courrier électronique lorsque Tomcat est en panne:

 kill -0 `cat $CATALINA_PID` > /dev/null 2>&1 if [ $? -gt 0 ] then echo "Check tomcat" | mailx -s "Tomcat not running" [email protected] fi 

Je suppose que vous pouvez également utiliser wget pour vérifier la santé de votre Tomcat. Si vous avez une page de diagnostic avec un chargement utilisateur, vous pouvez la récupérer périodiquement et l’parsingr pour déterminer si quelque chose ne va pas.

Sur mon système Linux, je lance Tomcat avec le script startup.sh. Pour savoir si elle fonctionne ou non, j’utilise

 ps -ef | grep tomcat 

Si le résultat de la sortie contient l’intégralité du chemin d’access à mon dossier Tomcat, il est en cours d’exécution

essayez plutôt cela et parce qu’il a besoin des privilèges root utilisez sudo

 sudo service tomcat7 status 

netstat -lnp | grep 8080 netstat -lnp | grep 8080 serait probablement le meilleur moyen, si vous connaissez le port d’écoute de Tomcat. Si vous voulez être certain qu’il est fonctionnel, vous devrez établir une connexion et envoyer une requête HTTP et obtenir une réponse. Vous pouvez le faire par programme ou en utilisant n’importe quel navigateur Web.

Si tomcat est installé localement, tapez l’URL suivante dans une fenêtre de navigateur: {localhost: 8080}

Cela affichera la page d’accueil de Tomcat avec le message suivant.

Si vous voyez cela, vous avez bien installé Tomcat. Toutes nos félicitations!

Si tomcat est installé sur un serveur distinct, vous pouvez taper replace localhost par un nom d’hôte valide ou Iess où tomcat est installé.

Ce qui précède s’applique à une installation standard dans laquelle tomcat utilise le port par défaut 8080

Vous pouvez vérifier le statut de tomcat en procédant comme suit:

 ps -ef | grep tomcat 

Cela retournera le chemin tomcat si le chat est en cours d’exécution

 netstat -a | grep 8080 

où 8080 est le port tomcat

wget url ou curl url où url est une url du serveur tomcat qui devrait être disponible, par exemple: wget http://localhost:8080 . Ensuite, vérifiez le code de sortie, si c’est 0 – Tomcat est actif.

J’ai trouvé Tomcat assez compliqué en ce sens qu’un processus en cours ou un port ouvert ne signifie pas nécessairement qu’il traite réellement les requêtes. J’essaie généralement de saisir une page connue et de comparer son contenu avec une valeur pré-calculée.

je fais toujours

 tail -f logs/catalina.out 

Quand je vois là

 INFO: Server startup in 77037 ms 

alors je sais que le serveur est en marche.

Créez un script Shell qui vérifie si tomcat est actif ou non et définissez un cron pour sh pour qu’il vérifie toutes les quelques minutes, puis démarrez automatiquement tomcat si c’est le cas. Exemple d’extrait de code ci-dessous

 TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print $2}') echo TOMCAT PROCESSID $TOMCAT_PID if [ -z "$TOMCAT_PID" ] then echo "TOMCAT NOT RUNNING" sudo /opt/tomcat/bin/startup.sh else echo "TOMCAT RUNNING" fi 

Essayez-vous de mettre en place un système d’alerte? Pour un simple “battement de coeur”, faites une requête HTTP au port Tomcat.

Pour une surveillance plus élaborée, vous pouvez configurer JMX et / ou SNMP pour afficher les statistiques de la JVM. Nous exécutons Nagios avec le plug-in SNMP (ponts vers JMX) pour vérifier l’utilisation de la mémoire Tomcat et demander la taille du pool de threads toutes les 10-15 minutes.

http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

Mise à jour (2012):

Nous avons mis à niveau nos systèmes pour utiliser “monit” pour vérifier le processus tomcat. J’aime vraiment ça. Avec très peu de configuration, il vérifie automatiquement que le service est en cours d’exécution et redémarre automatiquement s’il ne l’est pas. (envoi d’une alerte par email). Il peut s’intégrer aux scripts /etc/init.d ou vérifier par nom de processus.

Comme mes instances tomcat sont nommées tomcat_. Par exemple. tomcat_8086, j’utilise

#

 ps aux | grep tomcat 

Une autre méthode utilise l’utilitaire nc

nc -l 8086 (numéro de port)

Ou

ps aux | grep java

 $ sudo netstat -lpn |grep :8080 

Pour vérifier le numéro de port

 $ ps -aef|grep tomcat 

Est-ce que tomcat est en cours d’exécution sous le serveur.

 tsssinfotech-K53U infotech # ps -aef|grep tomcat 

root 9586 9567 0 11:35 pts / 6 00:00:00 grep –colour = auto tomcat

Essayez cette commande

 ps -ef | awk '/[t]omcat/{print $2}' 

Il retournera le pid si tomcat est en cours d’exécution.

En gros, vous voulez tester

  1. Connectivité à votre instance Tomcat
  2. Recueillir des statistiques de base
  3. Si le processus unix est en cours d’exécution

Je vais évaluer les 2 premières options car la 3ème a déjà reçu une réponse suffisante.

Le plus simple est de développer une page Web sur votre WebApp qui regroupe des mesures de base et qui dispose d’un client capable de lire les résultats ou de détecter les problèmes de connectivité.

Pour ce faire, vous avez plusieurs problèmes

  • Client autonome en Java
  • Utiliser Curl .

Voici mes deux cents.

J’ai plusieurs instances tomcat en cours d’exécution sur des ports différents pour la configuration de mon cluster. J’utilise la commande suivante pour vérifier chaque processus exécuté sur différents ports.

 /sbin/fuser 8080/tcp 

Remplacez le numéro de port selon vos besoins.

Et pour tuer le processus, utilisez -k dans la commande ci-dessus.

  • C’est beaucoup plus rapide que la méthode ps -ef ou toute autre commande où vous appelez une commande et appelez un autre grep dessus.
  • Fonctionne bien avec plusieurs installations de tomcat, ou tout autre serveur utilisant un port en cours d’exécution sur le même serveur.

La commande équivalente sur les systèmes d’exploitation BSD est fstat