Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
serveurs:installation:web-srv:docker-glitchtip [2023/07/07 14:42] – créée jpmilcentserveurs:installation:web-srv:docker-glitchtip [2025/02/18 11:58] (Version actuelle) – [Mise à jour de Glitchtip] jpmilcent
Ligne 1: Ligne 1:
 ====== Installer, configurer et gérer le sous-domaine "app-monitor" ====== ====== Installer, configurer et gérer le sous-domaine "app-monitor" ======
-**Notes** : ce domaine hébergera l'outil //GlitchTip// permettant de surveiller les erreurs générées par les applications. Il est embarqué dans un container //Docker// et fait partie de la //stack// //app-monitor//. Le serveur //bkp-srv// devrait utiliser un container //nginx-proxy// comme serveur web pour tous les outils hébergés dessus.+**Notes** :  
 +  * Ce domaine hébergera l'outil //GlitchTip// permettant de surveiller les erreurs générées par les applications. 
 +  * Il est embarqué dans un container //Docker// et fait partie de la //stack// //app-monitor//. 
 +  * Le serveur //bkp-srv// devrait utiliser un container //nginx-proxy// comme serveur web pour tous les outils hébergés dessus. 
 +  * //GlitchTip// est un outil plus simple que //Sentry// et demandant moins de ressource. Il se base sur le SDK de Sentry. Il est donc parfaitement compatible avec la méthode d'installation de //Sentry// pour //GeoNature//
 + 
 +**Ressources** : 
 +  * [[https://github.com/PnX-SI/GeoNature/issues/2332|Missing librairy sentry_sdk]] 
 + 
 +===== Installer la stack Docker Compose "app-monitor" =====
  
   * Se connecter au serveur //bkp-srv// sur l'utilisateur //admin//   * Se connecter au serveur //bkp-srv// sur l'utilisateur //admin//
Ligne 11: Ligne 20:
     * Assurez vous d'avoir une entrée du type : <code>bkp-srv                  IN A      <ipv4-de-bkp-srv></code>     * Assurez vous d'avoir une entrée du type : <code>bkp-srv                  IN A      <ipv4-de-bkp-srv></code>
   * Lancer le container : <code bash>docker compose up</code>   * Lancer le container : <code bash>docker compose up</code>
 +    * Vérifier que vous accédez à l'interface de connexion : https://app-monitor.<domaine-sino>
     * Si tout semble fonctionnel, l'arrêter et le relancer en  tant que service : ''CTRL+C'' puis <code bash>docker compose up -d</code>     * Si tout semble fonctionnel, l'arrêter et le relancer en  tant que service : ''CTRL+C'' puis <code bash>docker compose up -d</code>
 +  * Créer un super utilisateur : <code bash>docker compose run --rm app-monitor-migrate ./manage.py createsuperuser</code>
 +    * Utiliser l'email de l'admin système
 +    * Stocker le mot de passe dans Keepass
 +
 +===== Mise à jour de Glitchtip =====
 +  * Mettre à jour les version de l'outil dans le fichier ''docker-compose.yml'' puis le relancer 
 +  * Appliquer les migrations de l'outil : <code bash>docker compose run --rm app-monitor-migrate ./manage.py migrate</code>
 +    * En cas d'erreur <code>Error response from daemon: manifest for glitchtip/glitchtip:v4.O.6 not found: manifest unknown: manifest unknown
 +</code>, remplacer le numéro de version (ici ''v4.0.6'') de l'image par ''latest'' pour le service ''app-monitor-migrate''.
 +    * Si cela ne fonctionne pas, il est aussi possible de se connecter sur le service ''app-monitor-web'' avec : <code bash>docker exec -it app-monitor-web /bin/bash</code>
 +      * Lancer la migration avec : <code bash>./manage.py migrate</code>
 +    * En cas d'erreur <code>django.db.utils.ProgrammingError: relation "performance_transactionevent" already exists</code> :
 +      * Lancer la commande :<code>./manage.py migrate --fake-initial</code>
 +    * Tenter la migration en tant que root :  <code>docker exec --user root -it app-monitor-web /bin/bash</code>
 +      * Lancer la commande : <code>./manage.py migrate</code>
 +  * Mettre à jour les fichiers statics (en tant que root) : <code>docker exec --user root -it app-monitor-web /bin/bash</code>
 +    * Lancer la commande : <code>./manage.py collectstatic</code>
 +===== Créer un nouveau projet de surveillance sur GlitchTip =====
  
 +  * Se connecter sur le site : https://app-monitor.<domaine-sinp>
 +    * Utiliser le login et le mot de passe du super utilisateur créé précédemment
 +  * Créer une nouvelle organisation :
 +    * pour SINP PACA : Silene
 +    * pour SINP AURA : Biodiv'AURA
 +  * Créer un nouveau projet : 
 +    * Plateforme : Flask
 +    * Nom : GeoNature
 +    * Team : Equipe-SINP
 +  * Copier le DSN qui s'affiche sur la droite de l'interface du nouveau projet.
 +  * Se rendre sur le serveur //web-srv// en tant que //geonat// : <code bash>ssh geonat@web-<region>-sinp </code>
 +  * Activer le venv de GeoNature : ''source ~/geonature/backend/venv/bin/activate''
 +  * Installer le paquet Python Sentry SDK pour Flask : ''%%pip install --upgrade sentry-sdk[flask]%%''
 +  * Désactiver le venv de GeoNature : ''deactivate''
 +  * Éditer le fichier de configuration de GeoNature : <code bash>vi ~/geonature/config/geonature_config.toml</code>
 +    * Ajouter une entrée au début du fichier : <code toml># Set Sentry DSN 
 +SENTRY_DSN = "<coller-ici-le-DSN-du-projet-GeoNature-copier-dans-GlitchTip>"
 +</code>
 +  * Modifier le fichier des routes //commons// : ''vi /home/geonat/geonature/backend/geonature/core/gn_commons/routes.py'' ajouter <code python>
 +@routes.route('/debug-glitchtip', methods=["GET"])
 +def trigger_error():
 +    division_by_zero = 1 / 0 
 +</code>
 +  * Redémarrer GeoNature : <code bash> sudo systemctl restart geonature </code>
 +  * Générer une erreur pour tester le fonction en vous rendant dans un navigateur sur l'URL suivante : ''%%https://geonature.<domaine-sinp>/api/gn_commons/debug-glitchtip%%''
 +    * Si tout se passe bien, vous devriez voir apparaître l'erreur dans l'interface de //GlitchTip// au niveau du projet créé précédemment.
 +      * Pensez à supprimer le code ajouté à GeoNature ayant servi à tester la gestion d'erreur avec Glitchtip
 +    * En cas de problème :
 +      * Redémarrer GeoNature : <code bash>systemctl restart geonature</code>
 +      * Redémarrer la stack //app-monitor// : <code bash>docker compose down ; docker compose up -d</code>
 +      * A priori, un second redémarrage résoud l'erreur ''[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate''
 +      * Vérifier les log des containers de la stack //app-monitor// sur : ''%%https://manager.<domaine-sinp>/%%''
  
  • serveurs/installation/web-srv/docker-glitchtip.1688740948.txt.gz
  • Dernière modification : 2023/07/07 14:42
  • de jpmilcent