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 [2020/08/28 07:28] – 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: | ||
| Ligne 23: | 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 29: | Ligne 29: | ||
| ^ postrotate/ | ^ postrotate/ | ||
| ^ sharedscripts | ^ sharedscripts | ||
| - | ^ su user group | Change l' | + | ^ su user group | Change l' |
| + | ^ dateext | ||
| ===== Syntaxe ===== | ===== Syntaxe ===== | ||
| Ligne 73: | Ligne 74: | ||
| < | < | ||
| - | Avec l' | + | Avec l' |
| </ | </ | ||
| Ligne 107: | 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 119: | 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 127: | Ligne 207: | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||