
Logrotate est un service qui s’occupe de la rotation des fichiers logs, et automatiquement.
Celui contient de nombreuses options qui permet de choisir le fonctionement de la rotation.
Logrotate est installé par défaut sur l’ensemble des distributions Linux
Histoire d’y voir claire dans mes petits fichiers de log, je suis parti d’un principe très simple :
- 1 fichier de log par jour
- 1 rotation avec dans le nom du fichier de log la date
- le fichier de log compressé
- et on garde le tout sur 1 an !
Voici comment j’ai procédé :
Dans mon fichier /etc/logrotate.conf, voici les options :
# On le fait tourner tout les jours daily # On le garde 365 jours rotate 365 # Une fois tourné on en créer un nouveau create # On compresse le log compress # On y inclue la date dateext
Ensuite il ne reste plus qu’a adapter les fichiers présents dans /etc/logrotate.d/ avec ces petites options ci-dessus.
Exemple d’un fichier de config du répertoire /etc/logrotate.d/ :
ls /etc/logrotate.d/ apache2 apt aptitude dpkg syslog-ng
Fichier apache2 :
access.log { daily missingok rotate 365 compress dateext delaycompress create 640 root adm sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }
Vérifier bien que la crontab est bien réglé pour executer logrotate vers minuit!
[wimpy@cdulux]:[~] > cat /etc/crontab # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 00 * * * * root cd / && run-parts --report /etc/cron.hourly 00 0 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 00 0 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 00 0 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Ainsi, les fichiers de log démarreront en tout début de journée.
Enfin ceci est surtout valable pour les serveurs….
Pour valider votre configuration de logrotate, l’exécution de la commande suivante ne doit sortir aucune erreur :
# logrotate -f /etc/logrotate.conf
Voici les options possibles de Logrotate (issue du man page) :
- compress : Compresse les anciens journaux avec gzip. Voir aussi nocompress.
- copytruncate : Tronque le journal original en place après en avoir créé une copie, au lieu de déplacer l’ancien journal et optionnellement d’en créer un. Cela peut être utilisé quand il n’est pas possible de demander à un programme de fermer son journal, et par conséquent que l’écriture (l’ajout) puisse continuer sur le précédent journal. Remarquez qu’il existe une très courte période entre la copie du fichier et sa troncature, aussi des données journalisées peuvent être perdues. Quand cette option est utilisée, l’option create est sans effet, attendu que le journal reste en place.
- create mode propriétaire groupe : Immédiatement après la permutation (avant que le script postrotate ne soit exécuté), un journal est créé (du même nom que le journal juste permuté). mode précise les permissions du journal en octal (de la même façon que pour chmod(2)), propriétaire précise le nom de l’utilisateur propriétaire du journal, et group précise le groupe auquel appartient le journal. Chacun des attributs du journal peut être omis, auquel cas ces attributs omis pour le nouveau journal prendront les même valeurs que pour le journal original. Cette option peut être désactivée en utilisant l’option nocreate.
- daily : Les journaux sont permutés chaque jour.
- delaycompress : Reporte la compression du journal précédent au prochain cycle de permutation. Ceci n’a un effet qu’utilisé en combinaison avec l’option compress. Elle peut être utilisée quand il n’est pas possible de demander à un programme de fermer son journal et qu’il puisse par conséquent continuer à écrire pour un moment dans le journal précédent.
- errors adresse : Toutes les erreurs se produisant durant le traitement des journaux sont envoyées à l’adresse donnée.
- extension ext : Les journaux se voient attribuer le suffixe ext après permutation. Si la compression est utilisée, le suffixe de compression (normalement .gz) apparaît après ext.
- ifempty : Permute le journal même s’il est vide, outrepassant l’option notifempty (ifempty est l’option par défaut).
- include fichier_ou_répertoire : Lit le fichier donné en argument comme s’il était inclus littéralement à l’endroit où la directive include apparaît. Si un répertoire est donné, la plupart des fichiers de ce répertoire sont lus avant de continuer le traitement. Les seuls fichiers ignorés sont les fichiers non réguliers (tels que les répertoires et les tubes nommés) et les fichiers dont les noms se terminent par une des extensions taboues, comme précisé par la directive tabooext. La directive include ne devrait pas apparaître dans la définition d’un fichier journal.
- mail adresse : Quand un journal est permuté, il est envoyé à adresse. Si aucun mail ne devrait être généré pour un journal particulier, la directive nomail peut être utilisée.
- mailfirst : Lors de l’utilisation de la commande mail, envoie le journal juste permuté, au lieu d’envoyer le journal sur le point d’expirer.
- maillast : Lors de l’utilisation de la commande mail, envoie le journal sur le point d’expirer, au lieu d’envoyer le journal juste permuté (ceci est l’option par défaut).
- missingok : Si le journal est manquant, continue avec le suivant sans produire de message d’erreur. Voir aussi nomissingok.
- monthly : Les journaux sont permutés la première fois que logrotate est lancé dans le mois (c’est normalement le premier jour du mois).
- nocompress : Les anciennes versions des journaux ne sont pas compressées avec gzip. Voir aussi compress.
- nocopytruncate : Ne tronque pas le journal original en place après avoir créé une copie (ceci outrepasse l’option copytruncate).
- nocreate : Les nouveaux journaux ne sont pas créés (ceci outrepasse l’option create).
- nodelaycompress : Ne reporte pas la compression du journal précédent au prochain cycle de permutation (ceci outrepasse l’option delaycompress).
- nomail : N’envoie aucun ancien journal.
- nomissingok : Si un journal n’existe pas, produit une erreur (ceci est la valeur par défaut).
- noolddir : Les journaux sont permutés dans le répertoire où ils résident normalement (ceci outrepasse l’option olddir).
- notifempty : Ne permute pas le journal s’il est vide (ceci outrepasse l’option ifempty).
- olddir répertoire : Les journaux sont déplacés dans répertoire pour permutation. Le répertoire doit être sur le même périphérique physique que le journal en cours de permutation. Quand cette option est utilisée, toutes les anciennes versions des journaux terminent dans répertoire. Cette option peut être outrepassée par l’option noolddir.
- postrotate/endscript : Les lignes entre postrotate et endscript (chacun devant apparaître sur une ligne isolée) sont exécutées après permutation du journal. Ces directives doivent apparaîtrent dans la définition d’un journal. Voir aussi prerotate.
- prerotate/endscript : Les lignes entre prerotate et endscript (chacun devant apparaître sur une ligne isolée) sont exécutées avant permutation du journal. Ces directives doivent apparaîtrent dans la définition d’un journal. Voir aussi postrotate.
- rotate nombre : Les journaux sont permutés fois avant d’être supprimés ou envoyés à l’adresse précisée dans une directive mail. Si nombre est 0, les anciennes versions sont supprimées au lieu d’être permutés.
- size taille : Les journaux sont permutés quand leur taille dépasse taille octets. Si taille est suivi par M, la taille est supposée être en mégaoctets. Si k est utilisé, la taille est en kilooctets. Ainsi size 100, size 100k, et size 100M sont tous valides.
- tabooext [+] liste : Change la liste courante des extensions taboues (voir la directive include pour les informations sur les expressions taboues). Si un + précède la liste d’extensions, la liste courante des expressions taboues est augmentée, sinon elle est remplacée. Au démarrage, la liste des extensions taboues contient .rpmorig, .rpmsave, .v et ~.
- weekly : Les journaux sont permutés si le jour courant est plus petit que le jour de la dernière permutation ou si plus d’une semaine s’est écoulée depuis la dernière permutation. Ceci est normalement identique à permuter les journaux le premier jour de chaque semaine, mais fonctionne mieux si logrotate n’est pas lancé chaque nuit.
Article lu 2384 fois
Laisser un commentaire
Vous devez être connecté pour publier un commentaire.