Chapitre 8
Supervision
Suivre l'état de la plateforme au quotidien : conteneurs, état de santé, journaux, place disque, sauvegardes et alertes conseillées.
Concerne :Équipe techniqueHébergeur
Les commandes de ce chapitre se lancent sur le serveur, dans le dossier du code :
cd /opt/read/codeÉtat des conteneurs#
docker compose ps -aExemple de résultat attendu :
NAME SERVICE STATUS
read-plateforme-app-1 app Up 2 days (healthy)
read-plateforme-caddy-1 caddy Up 2 days
read-plateforme-db-1 db Up 2 days (healthy)
read-plateforme-migrations-1 migrations Exited (0) 2 days agoappest contrôlé toutes les 15 secondes par Docker : il interroge/health, qui vérifie aussi l'accès à la base. Après 5 échecs, il passe « unhealthy ».dbest contrôlé parpg_isready.migrationsdoit être arrêté avec le code 0 : un autre code signale un échec de migration (Dépannage).app,dbetcaddyredémarrent seuls après un arrêt inattendu ou un redémarrage du serveur (restart: unless-stopped).
Journaux#
| Source | Commande ou emplacement | Conservation |
|---|---|---|
| Application (console) | docker compose logs --tail 100 app | 5 fichiers de 10 Mo |
| Application (fichiers quotidiens) | volume read-plateforme_app-logs, fichiers read-AAAAMMJJ.log | 30 jours |
| Caddy (certificats, relais) | docker compose logs --tail 100 caddy | 5 fichiers de 10 Mo |
| Base | docker compose logs --tail 100 db | 5 fichiers de 10 Mo |
| Migrations | docker compose logs migrations | jusqu'au prochain déploiement |
| Déploiement | /opt/read/deploiement.log | dernier déploiement |
| Sauvegarde | sudo journalctl -u read-sauvegarde.service | journal systemd |
Lire les fichiers quotidiens de l'application :
docker run --rm -v read-plateforme_app-logs:/logs:ro alpine:3.24 sh -c 'ls -l /logs && tail -n 50 /logs/$(ls /logs | tail -n 1)'Chaque requête est journalisée sur une ligne (méthode, adresse, code de réponse, durée). Les niveaux WRN et ERR méritent attention, notamment :
Échec de la tâche quotidienne: une tâche de conservation n'a pas abouti ;Aucun administrateur : renseigner ADMIN_EMAIL et ADMIN_MOT_DE_PASSE: base sans administrateur ;- les erreurs d'envoi SMTP.
Remarque
Le contenu des e-mails n'est jamais journalisé (il peut porter un lien de réinitialisation de mot de passe) ; seul leur sujet l'est.
Le journal d'audit (actions des utilisateurs) se consulte dans la plateforme, écran Journal d'audit de l'administrateur ; il n'est pas dans les journaux techniques.
Place disque#
df -h /
sudo du -sh /var/backups/read
docker system dfLes sauvegardes locales sont le premier poste de consommation (30 copies complètes de la base et des fichiers déposés). Les images Docker inutilisées laissées par les déploiements successifs s'accumulent aussi ; supprimez-les de temps en temps :
docker image prune -fDanger
N'utilisez pas docker system prune --volumes ni docker volume prune : ces commandes peuvent supprimer les volumes de données de la plateforme.
Sauvegardes#
Chaque jour ouvré, vérifiez que la sauvegarde de la nuit s'est terminée et que la copie hors serveur est partie :
sudo journalctl -u read-sauvegarde.service --since yesterday | tail -n 5
ls /var/backups/read | tail -n 3Alertes conseillées#
La plateforme n'envoie pas elle-même d'alertes techniques. Mettez en place au minimum :
| Surveillance | Moyen conseillé | Seuil |
|---|---|---|
| Disponibilité du site | Service de supervision externe interrogeant la page d'accueil en HTTPS toutes les 5 minutes | 2 échecs consécutifs |
| Validité du certificat | Même service (contrôle du certificat) | Expiration dans moins de 14 jours (Caddy renouvelle bien avant) |
| Sauvegarde | Lecture quotidienne du compte rendu, ou script qui vérifie qu'un dossier de moins de 26 heures existe | Absence de sauvegarde du jour |
| Place disque | Supervision de l'hébergeur ou tâche planifiée sur df | Plus de 80 % occupés |
| Mémoire | Supervision de l'hébergeur | Usage du swap durable |
Statistiques d'utilisation#
L'administrateur dispose dans la plateforme d'un écran Statistiques d'utilisation (organisations actives, connexions par semaine, rapports transmis à temps, téléchargements). Il renseigne sur l'usage, pas sur la santé technique.