Rotation des logs
Retour à la liste des tutoriels
- Avoir installé nano.
Installation de logrotate
apt-get install logrotate
Configuration de logrotate
Je souhaite effectuer deux actions principales :
- pour les journaux d'accès aux sites web : les conserver durant 1 année
Ceci répondant à une obligation légale européenne transcrite dans le droit français par le décret n° 2006-358 du 24 mars 2006 relatif à la conservation des données des communications électroniques
- recevoir toutes les semaines par courriel les journaux d'erreur de mes sites web
Edition de la configuration de logrotate
nano /etc/logrotate.d/apache2
Configuration par défaut
Décryptons le fichier originel :
/var/log/apache2/*.log {
Les fichiers de log qui doivent être traités.
weekly
La fréquence de traitement (daily, weekly, monthly, yearly).
missingok
Il se peut que le journal d'événement n'existe pas.
rotate 52
Le nombre de fichiers conservés (le nombre de rotations effectuées avant de supprimer un journal).
compress
Les anciens journaux seront conservés de manière compressée (gain d'espace disque !).
delaycompress
Les anciens journaux ne seront compressés qu'à la fin de la rotation des logs (évite des problèmes d'accès concurrents si un autre processus souhaite accéder au journal durant sa rotation).
notifempty
Aucune action n'est effectuée si le journal est vide.
create 640 root adm sharedscripts
Ces options définissent les droits avec lesquels les journaux sont créés.
postrotate /etc/init.d/apache2 reload > /dev/null endscript }
L'action effectuée après la rotation des journaux d'événements. Dans notre cas : recharger le configuration d'Apache.
Journal d'accès
Voici la configuration que je choisis :
# Les journaux d'accès au site web /var/log/apache2/*.log /var/www/anael.eu/logs/access.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript }
Journal d'erreur
Je rajoute également dans le même fichier une seconde partie pour recevoir par courriel les journaux d'erreur des sites web !
Je vais utiliser les instructions :
mail webm*ster@anael.eu
Définit l'adresse mail destinatrice.
mailfirst
Envoi le premier journal existant (le journal actuel).
Voici la seconde partie du fichier de configuration :
/var/www/anael.eu/logs/error.log { weekly missingok rotate 52 compress delaycompress mail webm*ster@anael.eu mailfirst postrotate /etc/init.d/apache2 reload > /dev/null endscript }
Ajouter d'autres sites web
Planification
Le processus de rotation des logs sera effectué de manière automatique.
Toutefois, si vous souhaitez exécuter manuellement la rotation des logs :
logrotate /etc/logrotate.d/apache2 -v