Rotation des logs - Configuration de logrotate sur ubuntu

Logrotate permet de faire une rotation des logs ! C'est certainement déjà utiliser sur votre système. Le but est ici de l'utiliser pour ses logs perso.

Exemple pratique d'utilisation

Actuellement :

Vous avez un fichier de log qui fait 2 Go parce que ça fait 6 mois que vous avez installé votre serveur. Mais l'espace disque vous le payez et ça commence à être lourd de vider les logs tous les matins.

Avec log rotate vous avez ceci

10 fichiers de log (1 par mois) quand on passe au mois n+1 le fichier log n-9 est supprimé et le mois n-8 et renommé en n-9. L'avantage c'est que le nombre de fichier de log ne change pas logrotate peut compresser tous les logs des mois passés. Et quand vous cherchez les logs du mois dernier pas besoin de parser le log de 2 Go. Le découpage des fichiers n'est pas forcément horaire. Ca peut être un découpage par taille (rotation des logs quand le log courant atteint 10 Mo)

Dans la configuration de logrotate ( /etc/logrotate.conf ) il y a :

include /etc/logrotate.d

Donc logrotate charge les fichiers dans /etc/logrotate.d . Donc si vous avez besoin d'un logrotate vous créez un nouveau fichier dans /etc/logrotate.d :

Exemple du fichier /etc/logrotate.d/nginx :

/opt/nginx/logs/error.log {

        daily

        rotate 10

        compress

        delaycompress

        missingok

        notifempty

        create 644 root root

}

/opt/nginx/logs/access.log {

        daily

        rotate 10

        compress

        delaycompress

        missingok

        notifempty

        create 644 root root

}

Rotation journalière avec 10 jours de log (compression) je vous encourage à lire la documentation francaise de logrotate : https://www.delafond.org/traducmanfr/man/man8/logrotate.8.html

Source : https://www.croc-informatique.fr/2009/06/rotation-des-logs-avec-logrotate/