| Prochaine révision | Révision précédente |
| serveurs:installation:web-srv:docker-glitchtip [2023/07/07 14:42] – créée jpmilcent | serveurs:installation:web-srv:docker-glitchtip [2025/02/18 11:58] (Version actuelle) – [Mise à jour de Glitchtip] jpmilcent |
|---|
| ====== 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// |
| * 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>/%%'' |
| |