Monitoring et logs
Ou trouver les logs, comment les lire, et surveiller l'etat du systeme.
Emplacement des logs
| Log | Emplacement | Contenu |
|---|---|---|
| Sync nocturne | /var/log/qovans/sync_YYYY-MM-DD.log | Sync produits, prix, stocks |
| Uploads SFTP | /var/log/qovans/sftp_uploads.log | Traitement CSV/PDF uploades |
| Backend | docker logs qovans-backend | Requetes API, erreurs Cegid |
| Frontend | docker logs qovans-frontend | Erreurs Next.js |
| PostgreSQL | docker logs qovans-postgres | Requetes lentes, erreurs |
| Caddy | journalctl -u caddy | HTTPS, reverse proxy |
| VPN | journalctl -u openvpn-client@audaxium | Connexion/deconnexion VPN |
Lire les logs de sync
# Dernier log de sync
cat /var/log/qovans/sync_$(date +%Y-%m-%d).log
# Chercher les erreurs
grep ERROR /var/log/qovans/sync_$(date +%Y-%m-%d).log
# Voir tous les logs de la semaine
ls -la /var/log/qovans/sync_*.logLire les logs Docker
# Les 50 dernieres lignes du backend
docker logs qovans-backend --tail 50
# Suivre en temps reel (Ctrl+C pour quitter)
docker logs qovans-backend -f
# Filtrer les erreurs
docker logs qovans-backend 2>&1 | grep -i error | tail -20Cron jobs en production
Deux cron jobs sont configures dans crontab -e sur le VPS :
1. Sync nocturne (3h du matin)
0 3 * * * /opt/qovans/backend/scripts/nightly_sync.shCe script execute dans l'ordre :
| Etape | Commande | Timeout | Frequence |
|---|---|---|---|
| Sync produits | sync_products.py --products | - | Quotidien |
| Sync prix | sync_products.py --prices --all-customers | 30 min | Quotidien |
| Sync stocks | sync_stocks.py --all | - | Quotidien |
| Sync familles | sync_families.py | - | Dimanche uniquement |
Chaque etape est independante — un echec n'arrete pas les suivantes. Les erreurs sont notifiees via Discord.
Avant de lancer la sync, le script verifie que le VPN est actif et que le conteneur backend tourne.
2. Traitement uploads SFTP (toutes les 2 minutes)
*/2 * * * * /opt/qovans/scripts/process_sftp_uploads.shCe script detecte les fichiers CSV/PDF deposes dans /opt/qovans/uploads/ et les traite automatiquement. Un mecanisme de lock empeche les executions concurrentes.
Verifier que les cron jobs fonctionnent
# Voir la crontab actuelle
crontab -l
# Verifier la derniere execution de la sync
ls -la /var/log/qovans/sync_*.log | tail -3
# Verifier les resultats
tail -5 /var/log/qovans/sync_$(date +%Y-%m-%d).logRotation des logs
Les scripts de sync suppriment automatiquement les logs de plus de 30 jours. Pour les logs Docker, ajouter dans docker-compose.prod.yml sur chaque service :
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"Le script de sync nocturne nettoie aussi le cache Docker (images et builds) pour eviter que le disque de 30 GB ne se remplisse.
Espace disque
# Espace general
df -h
# Taille des volumes Docker
docker system df
# Taille des logs
du -sh /var/log/qovans/Le VPS a 30 GB. Surveillez que l'espace libre ne descende pas sous 5 GB.
Surveillance externe
Pour etre alerte quand le site tombe, configurez UptimeRobot (gratuit) :
https://espaceclient.qovans.com— le frontendhttps://apicegid.qovans.com/health— le backend- Intervalle : 5 minutes, alerte email