Envoi de journaux par logrotate
Par Sébastien Le Ray le mardi 12 mai 2009, 07:26 - Sysadmin - Lien permanent
Et non, cet article ne traite ni de dauphin, ni d'éléphant, ni d'acronyme en trois lettres.
Si vous travaillez sous Unix, vous utilisez certainement logrotate (peut être sans le savoir). Le rôle de ce petit logiciel est d'effectuer une rotation des différents journaux applicatifs afin d'éviter de vous retrouver sans espace sur le disque suite à l'immense succès de votre site sur les 150 dernières années[1].
Logrotate va donc effectuer une rotation des journaux, c'est à dire renommer le journal courant et éventuellement le compresser ou l'analyser[2] puis relancer l'application utilisant le journal (pour qu'elle écrive dans un nouveau fichier).
Une des fonctionnalités intéressantes de logrotate est l'envoi d'un journal par mail. Selon la configuration, cela peut se faire lorsque le journal en question va être supprimé (si on dit à logrotate de garder 4 versions du journal, il enverra la 5° puis la supprimera à chaque rotation) ou lorsqu'il vient d'être "tourné". Le premier cas est le cas par défaut (directive maillast), le second est indiqué par la directive mailfirst, la directive mail indiquant l'adresse à laquelle envoyer le mail. Ce procédé est très pratique pour conserver les logs sur une longue durée ailleurs que sur le serveur ou pour être au courant des erreurs (en complément de logwatch ou autre et à condition que le journal d'erreur soit assez restreint pour être lisible).
Si à la suite de l'ajout de la directive mail, cron vous indique que logwatch s'est lamentablement écrasé par un sensuel :
/etc/cron.daily/logrotate: error: mail command failed for /var/log/toto.log.1 run-parts: /etc/cron.daily/logrotate exited with return code 1
Cela signifie tout simplement que vous n'avez pas de commande /usr/bin/mail sur votre système (il est possible d'en utiliser une autre via l'option --mail de la ligne de commande, elle doit accepter en paramètre -s sujet destinataire).
Enfin, sachez qu'en France, la conservation des données est régie par la loi, les journaux doivent être conservés un an et contenir un certain nombre d'informations (il me semble que le décret de la LCEN sur la conservation des données n'est toujours pas paru).