Intéressé de savoir comment les gens vérifient généralement si Tomcat fonctionne sous un environnement Unix.
Je vérifie soit que le processus s'exécute 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 fonctionne? Ce qui précède semble être un moyen "astucieux" de vérifier que Tomcat fonctionne.
Pourquoi grep ps
, lorsque le pid a été écrit dans le fichier $CATALINA_PID
?
J'ai un script cron
'd checker 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 l'état de santé de votre Tomcat. Si vous avez une page de diagnostic avec le chargement de l'utilisateur, etc., vous pouvez la récupérer périodiquement et l'analyser pour déterminer si quelque chose ne va pas.
Sur mon système Linux, je lance Tomcat avec le script startup.sh. Pour savoir s'il fonctionne ou non, j'utilise
ps -ef | grep Tomcat
Si le résultat en sortie contient le chemin d'accès complet à mon dossier Tomcat, il est en cours d'exécution
essayez plutôt ceci et parce qu'il a besoin de privilèges root, utilisez Sudo
Sudo service Tomcat7 status
netstat -lnp | grep 8080
serait probablement la meilleure solution si vous connaissez le port d'écoute de Tomcat. Si vous voulez être certain que cela fonctionne, vous devez établir une connexion, 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, entrez l'URL suivante dans une fenêtre de navigateur: {Localhost: 8080}
Ceci affichera la page d'accueil de Tomcat avec le message suivant.
Si vous voyez cela, vous avez correctement installé Tomcat. Toutes nos félicitations!
Si Tomcat est installé sur un serveur distinct, vous pouvez taper remplacez 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 de l'une des manières suivantes:
ps -ef | grep Tomcat
Cela renverra le chemin Tomcat si Tomcat 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
. Vérifiez ensuite le code de sortie, s'il est 0 - Tomcat est opérationnel.
Créez un script Shell qui vérifie si Tomcat est actif ou inactif, définissez un cron pour que sh le vérifie toutes les quelques minutes et lance automatiquement Tomcat en cas d'arrêt. 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
J'ai trouvé Tomcat plutôt pointilleux dans la mesure où un processus en cours d'exécution ou un port ouvert ne signifie pas nécessairement qu'il gère réellement les demandes. J'essaie généralement de saisir une page connue et de comparer son contenu avec une valeur attendue 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 place.
Essayez-vous de mettre en place un système d'alerte? Pour un simple "battement de coeur", envoyez 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 machine virtuelle Java. Nous utilisons Nagios avec le plug-in SNMP (passerelles vers JMX) pour vérifier l'utilisation de la mémoire de Tomcat et demander la taille du pool d'unités d'exécution 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 afin qu'ils utilisent "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 le fait pas. (envoi d'une alerte email). Il peut s'intégrer aux scripts /etc/init.d ou vérifier par nom de processus.
Depuis que mes instances Tomcat sont nommées Tomcat_. Par exemple. Tomcat_8086, j'utilise
#
ps aux | grep Tomcat
Autre méthode utilisant l'utilitaire nc
nc -l 8086
(numéro de port)Ou
ps aux | grep Java
Tomcat.sh
vous aide à le savoir facilement.
Le document d'utilisation de Tomcat.sh dit:
aucun argument: affiche l'identifiant de processus du Tomcat, s'il est en cours d'exécution, sinon ne fait rien
alors exécutez la commande sur votre invite de commande et vérifiez le pid:
$ tocmat.sh
Essayez cette commande
ps -ef | awk '/[t]omcat/{print $2}'
Il retournera le pid si Tomcat est en cours d'exécution.
$ Sudo netstat -lpn |grep :8080
Pour vérifier le numéro de port
$ ps -aef|grep Tomcat
Tomcat est-il 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
Voici mes deux cents.
Plusieurs instances de Tomcat s'exécutent sur différents ports pour la configuration de mon cluster. J'utilise la commande suivante pour vérifier chaque processus s'exécutant sur des ports différents.
/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 dans laquelle vous appelez une commande et appelez une autre grep
par dessus.La commande équivalente sur les systèmes d'exploitation BSD
est fstat
En gros, vous voulez tester
J'évaluerai les deux premières options car la troisième a déjà reçu une réponse suffisante.
le plus simple consiste simplement à développer une page Web sur votre application Web qui rassemble certaines métriques de base et à avoir 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