Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
logrotate [Le 29/09/2013, 17:24] LeJerome [Logrotate] |
logrotate [Le 24/11/2023, 09:14] (Version actuelle) 90.89.138.125 [Statut et Vérification] Mise en forme exemple de fichier status |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>Xenial Bionic Focal journal log système}} | ||
+ | ----- | ||
====== Logrotate ====== | ====== Logrotate ====== | ||
- | {{tag>énergie}} | ||
Logrotate permet de limiter la taille des fichiers journaux présents dans /var/log. | Logrotate permet de limiter la taille des fichiers journaux présents dans /var/log. | ||
- | Pour chaque fichier journal, logrotate réalise 2 opération simultanées : | + | Pour chaque fichier journal, logrotate réalise 2 opérations simultanées : |
* la **rotation** : il archive le fichier journal sous un autre nom et supprime la plus ancienne archive | * la **rotation** : il archive le fichier journal sous un autre nom et supprime la plus ancienne archive | ||
* la **compression** : il compresse éventuellement le fichier journal avant de l'archiver | * la **compression** : il compresse éventuellement le fichier journal avant de l'archiver | ||
- | ===== Installer Logrotate ===== | + | La compression diminue : |
- | Step 1—Update System and System Packages | + | * l'espace disque utilisé |
- | Run the following command to update the package lists from apt-get and get the information on the newest versions of packages and their dependencies. | + | mais **augmente** : |
+ | * la **quantité de données lues et écrites sur le disque** : **usure du disque** | ||
+ | * la **consommation d'énergie** | ||
- | <note>sudo apt-get update</note> | + | <note important>Depuis la version **16.04**, les différents éléments du système sont lancés par **[[systemd|systemd]]** et c'est aussi lui qui tient à jour son propre système de journalisation nommé The Journal, enregistré dans le répertoire /var/log/journal/. Ainsi la gestion de ces journaux ne dépend pas de logrotate. Voir la page [[systemd|systemd]] pour plus d'informations.</note> |
- | Step 2—Install Logrotate | ||
- | If logrotate is not already on your VPS, install it now through apt-get. | ||
- | <note>sudo apt-get install logrotate</note> | + | ===== Installation===== |
- | Step 3 — Confirmation | + | logrotate est normalement installé par défaut sur votre système, s'il ne l'est pas, [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>logrotate]]**. |
- | To verify that logrotate was successfully installed, run this in the command prompt. | + | |
- | <note>logrotate</note> | + | =====Utilisation===== |
+ | Pour vérifier que Logrotate a été installé correctement, on exécute cette commande dans un terminal | ||
+ | <code>logrotate</code> | ||
- | Since the logrotate utility is based on configuration files, the above command will not rotate any files and will show you a brief overview of the usage and the switch options available. | + | Vu que l'utilitaire Logrotate est basé sur des fichiers de configuration, la commande ci-dessus ne provoquera aucune rotation de fichier et se contentera de vous montrer un bref aperçu des usages et des options disponibles. |
- | Step 4—Configure Logrotate | + | =====Configuration===== |
- | Configurations and default options for the logrotate utility are present in: | + | |
- | <note>/etc/logrotate.conf</note> | + | Les configurations et les options par défaut de l'utilitaire Logrotate sont disponibles dans le fichier **/etc/logrotate.conf**. |
- | Some of the important configuration settings are : rotation-interval, log-file-size, rotation-count and compression. | + | Quelques-uns des réglages importants à configurer sont : rotation-interval, log-file-size, rotation-count et compression. |
- | Application-specific log file information (to override the defaults) are kept at: | + | Les informations spécifiques à la journalisation de certaines applications (surchargeant les paramètres par défaut) sont conservées dans le répertoire **/etc/logrotate.d/**. |
- | <note>/etc/logrotate.d/</note> | + | Ne pas hésiter à consulter certains exemples afin de comprendre un peu mieux ce concept |
+ | ====Exemple ==== | ||
- | We will have a look at a few examples to understand the concept better. | + | Voici un exemple de configuration spécifique pour l'application DPKG (le gestionnaire de paquets de Debian), stocké dans le fichier **/etc/logrotate.d/dpkg**. Une des entrées de ce fichier pourrait se présenter comme suit: |
- | Step 5—Example | + | |
- | An example application configuration setting would be the dpkg (Debian package management system), that is stored in /etc/logrotate.d/dpkg. One of the entries in this file would be: | + | |
- | <note>/var/log/dpkg.log { | + | <file>/var/log/dpkg.log { |
monthly | monthly | ||
rotate 12 | rotate 12 | ||
Ligne 52: | Ligne 52: | ||
notifempty | notifempty | ||
create 644 root root | create 644 root root | ||
- | }</note> | + | }</file> |
- | What this means is that: | + | Que l'on peut traduire comme suit : |
- | the logrotation for dpkg monitors the /var/log/dpkg.log file and does this on a monthly basis - this is the rotation interval. | + | * pour dpkg, Logrotate surveille le fichier /var/log/dpkg.log et génère une rotation une fois par mois - c'est l'"intervalle de rotation".\\ |
+ | * 'rotate 12' signifie qu'à chaque intervalle, on conserve 12 mois de journalisation.\\ | ||
+ | * Les fichiers de logs peuvent être compressés au format gzip en spécifiant 'compress' et, 'delaycompress' retarde le processus de compression jusqu'à la prochaine rotation. 'delaycompress' ne fonctionnera que si l'option 'compress' est clairement spécifiée.\\ | ||
+ | * 'missingok' permet au processus de ne pas s'arrêter à chaque erreur et de poursuivre avec le fichier de log suivant.\\ | ||
+ | * 'notifempty' empêche la rotation de s'effectuer si le fichier de log est vide.\\ | ||
+ | * 'create <mode> <owner> <group>' créé un fichier vide avec les propriétés spécifiées, après la rotation des logs. | ||
- | 'rotate 12' signifies that 12 days worth of logs would be kept. | + | Bien qu'absent de l'exemple ci-dessus, 'size' est également un paramètre important si vous souhaitez contrôler la taille des logs accumulés par le système. (note personnelle : sur un serveur web de faible capacité par exemple, type VPS entrée de gamme, c'est *incontournable* !) |
- | logfiles can be compressed using the gzip format by specifying 'compress' and 'delaycompress' delays the compression process till the next log rotation. 'delaycompress' will work only if 'compress' option is specified. | + | Par exemple, pour limiter ce poids à 100MB, on ajouterait : |
- | 'missingok' avoids halting on any error and carries on with the next log file. | + | <file>size 100M</file> |
- | 'notifempty' avoid log rotation if the logfile is empty. | + | Notez que, si 'size' et 'rotation' sont spécifiés ensemble, 'size' prend la priorité. Donc si votre fichier de configuration contient les paramètres suivants : |
- | 'create <mode> <owner> <group>' creates a new empty file with the specified properties after log-rotation. | + | <file>monthly |
+ | size 100M</file> | ||
- | Though missing in the above example, 'size' is also an important setting if you want to control the sizing of the logs growing in the system. | + | alors, la rotation se fera dès lors que votre fichier de logs atteint les 100M et ce, sans attendre la prochaine rotation mensuelle. |
+ | ====Tâche Cron ==== | ||
- | A configuration setting of around 100MB would look like: | + | Vous pouvez aussi gérer la rotation des logs avec une tâche cron, pour éviter la configuration à la main et traiter ça de manière automatique. En créant une entrée dans /etc/cron.daily/logrotate, la rotation des logs sera alors effectuée tous les jours. |
- | <note>size 100M</note> | ||
+ | ==== Statut et Vérification ==== | ||
- | Note that If both size and rotation interval are set, then size is taken as a higher priority. That is, if a configuration file has the following settings: | + | Pour s'assurer qu'un fichier de logs effectue correctement ses rotations ou, pour vérifier la date et l'heure de sa dernière rotation, consulter le fichier /var/lib/logrotate/status ou logrotate.status. |
+ | C'est un fichier aisément lisible, qui contient le nom du fichier de logs et la date à laquelle il a subi sa dernière rotation. | ||
- | <note>monthly | + | <code>cat /var/lib/logrotate/status</code> |
- | size 100M</note> | + | ou |
+ | <code>cat /var/lib/logrotate/logrotate.status</code> | ||
- | then the logs are rotated once the file size reaches 100M and this need not wait for the monthly cycle. | ||
- | Step 6—Cron Job | ||
- | You can also set the logrotation as a cron so that the manual process can be avoided and this is taken care of automatically. By specifying an entry in /etc/cron.daily/logrotate , the rotation is triggered daily. | ||
- | Step 7—Status Check and Verification | ||
- | To verify if a particular log is indeed rotating or not and to check the last date and time of its rotation, check the /var/lib/logrotate/status file. This is a neatly formatted file that contains the log file name and the date on which it was last rotated. | ||
- | <note>cat /var/lib/logrotate/status</note> | + | Quelques entrées de ce fichier, pour exemple: |
+ | ''"/var/log/lpr.log" 2013-4-11\\ | ||
+ | "/var/log/dpkg.log" 2013-4-11\\ | ||
+ | "/var/log/pm-suspend.log" 2013-4-11\\ | ||
+ | "/var/log/syslog" 2013-4-11\\ | ||
+ | "/var/log/mail.info" 2013-4-11\\ | ||
+ | "/var/log/daemon.log" 2013-4-11\\ | ||
+ | "/var/log/apport.log" 2013-4-11\\ | ||
+ | don't forget to check your host before editing anything | ||
+ | '' | ||
- | A few entries from this file, for example: | + | ==== La rotation ==== |
- | + | ||
- | "/var/log/lpr.log" 2013-4-11 | + | |
- | "/var/log/dpkg.log" 2013-4-11 | + | |
- | "/var/log/pm-suspend.log" 2013-4-11 | + | |
- | "/var/log/syslog" 2013-4-11 | + | |
- | "/var/log/mail.info" 2013-4-11 | + | |
- | "/var/log/daemon.log" 2013-4-11 | + | |
- | "/var/log/apport.log" 2013-4-11 | + | |
- | + | ||
- | + | ||
- | ===== La rotation ===== | + | |
Si l'on regarde le fichier syslog, on voit qu'il a d'autres fichiers similaires avec une extension ajoutée : | Si l'on regarde le fichier syslog, on voit qu'il a d'autres fichiers similaires avec une extension ajoutée : | ||
- | <code>~$ ls -l /var/log/syslog* | + | <code>~ls -l /var/log/syslog* |
-rw-r----- 1 syslog adm 45432 2011-09-24 10:12 /var/log/syslog | -rw-r----- 1 syslog adm 45432 2011-09-24 10:12 /var/log/syslog | ||
-rw-r----- 1 syslog adm 44442 2011-09-21 19:45 /var/log/syslog.1 | -rw-r----- 1 syslog adm 44442 2011-09-21 19:45 /var/log/syslog.1 | ||
Ligne 118: | Ligne 120: | ||
En définissant le nombre maximum d'archives ainsi que la fréquence de rotation (journalière, hebdomadaire, mensuelle, ...), on limite la taille occupée par un journal. | En définissant le nombre maximum d'archives ainsi que la fréquence de rotation (journalière, hebdomadaire, mensuelle, ...), on limite la taille occupée par un journal. | ||
- | ===== La compression ===== | + | ==== La compression ==== |
La compression permet de réduire la taille des archives qui subissent une rotation. | La compression permet de réduire la taille des archives qui subissent une rotation. | ||
Ligne 129: | Ligne 131: | ||
La compression peut être paramétrée globalement dans le fichier /etc/logrotate.conf. | La compression peut être paramétrée globalement dans le fichier /etc/logrotate.conf. | ||
- | Un paramétrage pour chaque application peut être redéfinit dans les fichiers présents dans le répertoire /etc/logrotate.d. | + | Un paramétrage pour chaque application peut être redéfini dans les fichiers présents dans le répertoire /etc/logrotate.d. |
Avec l'option "**nocompress**", logrotate renomme simplement le fichier en 'nom_de_fichier_journal.log.1', avec très peu d'échange disque puisque seul le nom du fichier est changé dans le système de fichier, le contenu reste inchangé. | Avec l'option "**nocompress**", logrotate renomme simplement le fichier en 'nom_de_fichier_journal.log.1', avec très peu d'échange disque puisque seul le nom du fichier est changé dans le système de fichier, le contenu reste inchangé. | ||
Ligne 136: | Ligne 138: | ||
Les options "**delaycompress**" et "**nodelaycompress**" sont similaires respectivement aux options "**compress**" et "**nocompress**" à la différence que la compression ne s'opère qu'à partir de la deuxième rotation d'un fichier journal (lors du passage du numéro "1" à "2"). | Les options "**delaycompress**" et "**nodelaycompress**" sont similaires respectivement aux options "**compress**" et "**nocompress**" à la différence que la compression ne s'opère qu'à partir de la deuxième rotation d'un fichier journal (lors du passage du numéro "1" à "2"). | ||
+ | ===== Forcer la rotation. ===== | ||
+ | Il peut arriver qu'un gros journal soit en cours de fabrication. | ||
+ | Afin de le libérer proprement, il est possible de forcer la rotation. | ||
+ | <code bash> sudo logrotate -f /etc/logrotate.conf </code> |