Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
sysadmin:linux:logs:rotation-des-logs-via-logrotate [2019/10/24 10:09] – yoann | sysadmin:linux:logs:rotation-des-logs-via-logrotate [2022/01/20 00:27] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== logrotate: rotation des fichiers logs ====== | ====== logrotate: rotation des fichiers logs ====== | ||
- | Principal intérêt de logrotate: limiter l' | + | Principal intérêt de logrotate: limiter l' |
Pour chaque fichier journal logrotate agit en 2 étapes: | Pour chaque fichier journal logrotate agit en 2 étapes: | ||
- rotation: archive le fichier de log et supprime les anciennes versions. | - rotation: archive le fichier de log et supprime les anciennes versions. | ||
- | - compression: | + | - compression: |
< | < | ||
L' | L' | ||
</ | </ | ||
+ | |||
+ | Le système gère la planification de l’exécution régulière de logrotate, il suffit d' | ||
===== Principales directives ===== | ===== Principales directives ===== | ||
Ligne 21: | Ligne 23: | ||
^ compress, nocompress | ^ compress, nocompress | ||
^ delaycompress | ^ delaycompress | ||
- | ^ missingok | + | ^ missingok |
^ notifempty | ^ notifempty | ||
^ size | Définir une taille limite déclenchant la rotation. Cette directive est prioritaire sur la périodicité de rotation. | | ^ size | Définir une taille limite déclenchant la rotation. Cette directive est prioritaire sur la périodicité de rotation. | | ||
Ligne 27: | Ligne 29: | ||
^ postrotate/ | ^ postrotate/ | ||
^ sharedscripts | ^ sharedscripts | ||
- | ^ su user group | Change l' | + | ^ su user group | Change l' |
+ | ^ dateext | ||
===== Syntaxe ===== | ===== Syntaxe ===== | ||
Ligne 59: | Ligne 62: | ||
logrotate trace ses actions dans le fichiers **/ | logrotate trace ses actions dans le fichiers **/ | ||
- | Pour lancer manuellement logrotate | + | Pour lancer manuellement logrotate |
<code bash> | <code bash> | ||
- | logrotate --verbose -f / | + | logrotate --verbose --force / |
+ | logrotate --verbose --force | ||
</ | </ | ||
- | Pour déboguer/ | + | Pour déboguer/ |
<code bash> | <code bash> | ||
logrotate -d / | logrotate -d / | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | Avec l' | ||
+ | </ | ||
+ | |||
===== Sécurité et droits d' | ===== Sécurité et droits d' | ||
Ligne 99: | Ligne 108: | ||
</ | </ | ||
- | ===== Dépannages | + | ===== Exécution par l' |
+ | **logrotate** peut être lancé périodiquement par un tout utilisateur non privilégié du système. Pour cela l' | ||
+ | |||
+ | <code bash> | ||
+ | crontab -e | ||
+ | </ | ||
+ | |||
+ | La commande présente dans le fichier cron sera de la forme: | ||
+ | |||
+ | < | ||
+ | # Exemple de contenu du crontab de l' | ||
+ | 15 * * * * / | ||
+ | </ | ||
+ | |||
+ | ===== Troubleshooting ===== | ||
+ | |||
+ | ==== La rotation des logs ne se produit pas ==== | ||
+ | |||
+ | Lorsque logrotate est exécuté avec l' | ||
+ | |||
+ | Ceci peut être du à: | ||
+ | * Des problèmes de droits d' | ||
+ | * Si des scripts prerotate existent une erreur d' | ||
+ | |||
+ | Invoquer la commande logrotate avec le fichier de configuration à tester et l' | ||
+ | |||
+ | |||
==== Apache n’écrit pas dans le nouveau fichier de log ==== | ==== Apache n’écrit pas dans le nouveau fichier de log ==== | ||
Ligne 111: | Ligne 146: | ||
/ | / | ||
endscript | endscript | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | L' | ||
+ | </ | ||
+ | |||
+ | ==== UFW : le fichier ufw.log reste vide après rotation ==== | ||
+ | |||
+ | Après rotation, le nouveau fichier ufw.log reste vide. Les événements continuent à être écris dans le fichier archive ufw.x.log | ||
+ | |||
+ | C'est le daemon rsyslogd qui se charge d' | ||
+ | |||
+ | <code bash> | ||
+ | invoke-rc.d rsyslog rotate | ||
+ | * Closing open files rsyslogd | ||
+ | </ | ||
+ | |||
+ | Cela peut être du au fait que rsyslog géré comme unité | ||
+ | <code bash> | ||
+ | # cette commande est aussi utilisée par d' | ||
+ | / | ||
+ | |||
+ | # equivalent | ||
+ | systemctl kill -s HUP rsyslog.service | ||
+ | </ | ||
+ | |||
+ | Ci-dessous un exemple de fichier **''/ | ||
+ | |||
+ | <file conf ufw> | ||
+ | / | ||
+ | { | ||
+ | su root syslog | ||
+ | |||
+ | # Rotation quotidienne | ||
+ | daily | ||
+ | |||
+ | # Conserve 30 fichiers (un mois) | ||
+ | rotate 30 | ||
+ | |||
+ | # Les fichiers archives ne sont pas compressés | ||
+ | nocompress | ||
+ | |||
+ | # Ne génère pas de message d' | ||
+ | missingok | ||
+ | |||
+ | # droit d' | ||
+ | create 0644 syslog adm | ||
+ | |||
+ | sharedscripts | ||
+ | postrotate | ||
+ | / | ||
+ | endscript | ||
+ | } | ||
</ | </ | ||
Ligne 119: | Ligne 207: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// |