Table des matières
Maine → Bastion
Archivage des logs Nginx
Contexte
Les logs HTTP d'un site sont à la fois précieuses et sensibles :
- précieuses car permettent de reconstruire des statistiques d'activités.
- sensible car contiennent éventuellement des données personnelles de navigation.
Par conséquent, en cas de conservation, il convient de prendre des précautions vis à vis des données personnelles. À noter que pour respecter les données personnelles, une anonymisation suffit.
Après une période d'évaluation sur les statistiques utiles au Chapril, il a été mis en évidence qu'une génération mensuelle était suffisante. Des statistiques spécifiques à l'année tout entière sont lourdes à générer et peu pertinentes. Du coup, l'anonymisation peut se faire par mois avec une gestion particulière pour les semaines.
Actuellement, les logs Nginx sont configurés en logrotate weekly de 12 semaines.
Procédure
Un outil a été développé pour gérer l'archivage des logs Nginx de la vm bastion : logar.
Le principe est de parcourir les logs Nginx et de mettre de côté les lignes du mois précédent.
Quelques informations :
- déploiement : /srv/logar/
- données : /var/log/logar/
Pour découvrir les commandes : https://forge.april.org/Chapril/logar#documentation
Logar est utilisé :
- pour construire les fichiers de logs du mois précédent des services (logar archive…) ;
- pour vérifier le format des lignes des fichiers de log (logar check) ;
- pour vérifier si lds fichiers de logs sont biens trier par rapport à la date (logar checksort) ;
- pour trier des lignes des fichiers de logs par rapport à la date (logar sort) ;
- pour anonymiser des fichiers de logs (logar anonymize).
Les actions portent les fichiers access et error.
L'anonymisation se fait sur l'ip et le remoteUser pour les fichiers access et sur les ip du message dans les fichiers error.
Un cron permet de déclencher l'archivage mensuel :
=(^-^)=root@bastion:/etc/cron.d# cat logar 6 6 1 * * root /srv/logar/dopreviousmonth >> /var/log/logar/logar.log 2>&1 =(^-^)=root@bastion:/etc/cron.d# cat /srv/logar/dopreviousmonth #!/bin/bash cd /srv/logar/ ./bin/logar.sh archive /var/log/nginx /var/log/logar/