Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Script de maintenance Tomcat » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
Mhymonet (discussion | contributions)
Mhymonet (discussion | contributions)
Ligne 16 : Ligne 16 :
* supprimer le cache et redémarrer,
* supprimer le cache et redémarrer,
* envoyer un mail s'il y a eu un problème.
* envoyer un mail s'il y a eu un problème.
[[Fichier:Diagrammes_Script.png]]
[[Fichier:Diagrammes_Script.png|1000px]]


== Installation du script ==
== Installation du script ==

Version du 9 juin 2022 à 13:34

Utilité du script

Une des pannes les plus fréquentes des applications Pleade est l'arrêt de Tomcat. Dans ce cas, l'application Pleade n'est plus fonctionnelle et elle renvoie une erreur de type 403.

Ces arrêts sont souvent dus à un manque de ressources en mémoire attribuée à JAVA.

Ce manque de ressource déclenche une OutOfMemory, l'arrêt de Tomcat et de l'application Pleade.

La cause de l'OutOfMemory est liée soit : à une publication dans Pleade qui consomme toutes les ressources ; à la fréquentation importante de l'application ; à la combinaison de tous ces facteurs.

Le script de maintenance de Tomcat permet de suivre automatiquement le fonctionnement de Tomcat, de repérer les pannes et de relancer Tomcat en cas d'arrêt.

Il s’exécute toutes les 30 minutes et vérifie le bon fonctionnement d'une application Tomcat donnée.

Si Tomcat ne fonctionne pas correctement, le script effectue certaines actions comme :

  • supprimer des fichiers bloquants,
  • supprimer le cache et redémarrer,
  • envoyer un mail s'il y a eu un problème.

Installation du script

Version de java nécessaire : ≥7

Les sources java du script se trouvent sur le svn, sous le nom de "maintenance_tomcat".

Après avoir récupéré les sources et les avoir placé dans un répertoire de l'utilisateur qui les exécutera, on défini les instructions du script dans le Crontab de l'utilisateur (comme par exemple ajlsm). On appelle le crontab avec la commande :

$ crontab -e

Il faut adapter les instructions en fonction des projets et en suivant les explications du script.

  1. Voir "Explication du script" pour plus de détails.[1]

Explication du script

Voici un exemple de script :

 
*/30 * * * * java -cp /home/ajlsm/maintenance_tomcat/lib/commons-cli-1.5.0.jar:/home/ajlsm/maintenance_tomcat/lib/htmlunit-driver-3.61.0.jar:/home/ajlsm/maintenance_tomcat/lib/selenium-api-4.1.4.jar:/home/ajlsm/maintenance_tomcat/lib/commons-io-2.11.0.jar:/home/ajlsm/maintenance_tomcat/lib/javax.mail.jar:/home/ajlsm/maintenance_tomcat/lib/javax.activation-1.2.0.jar /home/ajlsm/maintenance_tomcat/src/Maintenance_tomcat.java   -tomcat-path "/opt/tomcat7/"   -nb-try-http 3   -mail "mateohymonet@hotmail.fr"   -app-url "http://mirador.pleade.com/cdc.html"   -datadirs-path "/home/ajlsm/datadirs/"   -restart-path "/home/ajlsm/restart-tomcat.sh"
  • La première instruction définie la fréquence de rotation du script. Par exemple, toutes les 30 minutes :
*/30 * * * *
  • Ensuite, tous les paramètres nécessaires pour exécuter la commande.
  1. Voir "Paramètres du code java" pour plus d'explication sur les paramètres.[[1]]

Paramètres du code java

Afin de s’exécuter, le script à besoin de renseigner au code java certains paramètres, dans le crontab, comme ici :

java -cp /home/ajlsm/maintenance_tomcat/lib/commons-cli-1.5.0.jar:/home/ajlsm/maintenance_tomcat/lib/htmlunit-driver-3.61.0.jar:/home/ajlsm/maintenance_tomcat/lib/selenium-api-4.1.4.jar:/home/ajlsm/maintenance_tomcat/lib/commons-io-2.11.0.jar:/home/ajlsm/maintenance_tomcat/lib/javax.mail.jar:/home/ajlsm/maintenance_tomcat/lib/javax.activation-1.2.0.jar /home/ajlsm/maintenance_tomcat/src/Maintenance_tomcat.java   -tomcat-path "/opt/tomcat7/"   -nb-try-http 3   -mail "mateohymonet@hotmail.fr"   -app-url "http://mirador.pleade.com/cdc.html"   -datadirs-path "/home/ajlsm/datadirs/"   -restart-path "/home/ajlsm/restart-tomcat.sh"

On a donc :

Paramètre Description
-cp Le chemin vers chaque librairie dont le script a besoin séparés à chaque de ":" avec toute suite après, le chemin vers le script à exécuter,
-tomcat-path Le chemin vers le dossier Tomcat qu'utilise l'application.
-nb-try-http Nombre d'essais avant...
-mail L'adresse courriel de destination de l'alerte.
-app-url L'URL d'une page de l'application Pleade à tester (liée au Tomcat). Si la page répond : OK, si la page ne répond pas, NOK : déclenchement des actions.
-datadirs-path Le PATH du répertoire où sont écrits les données lors des processus d'indexation de Pleade et où sont écrits des verrous (selon l'état de fonctionnement de Pleade).
-restart-path Le PATH du script de redémarrage de Tomcat.