Qovans Docs
Operations

Monitoring et logs

Ou trouver les logs, comment les lire, et surveiller l'etat du systeme.

Emplacement des logs

LogEmplacementContenu
Sync nocturne/var/log/qovans/sync_YYYY-MM-DD.logSync produits, prix, stocks
Uploads SFTP/var/log/qovans/sftp_uploads.logTraitement CSV/PDF uploades
Backenddocker logs qovans-backendRequetes API, erreurs Cegid
Frontenddocker logs qovans-frontendErreurs Next.js
PostgreSQLdocker logs qovans-postgresRequetes lentes, erreurs
Caddyjournalctl -u caddyHTTPS, reverse proxy
VPNjournalctl -u openvpn-client@audaxiumConnexion/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_*.log

Lire 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 -20

Cron 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.sh

Ce script execute dans l'ordre :

EtapeCommandeTimeoutFrequence
Sync produitssync_products.py --products-Quotidien
Sync prixsync_products.py --prices --all-customers30 minQuotidien
Sync stockssync_stocks.py --all-Quotidien
Sync famillessync_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.sh

Ce 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).log

Rotation 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 frontend
  • https://apicegid.qovans.com/health — le backend
  • Intervalle : 5 minutes, alerte email