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
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
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.
ps -ef
ou toute autre commande où vous appelez une commande et appelez un autre grep
dessus. La commande équivalente sur les systèmes d’exploitation BSD
est fstat