GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Logrotate pour gérer les fichiers journaux

Logrotate est un logiciel pré-installé dans la plupart des distributions Linux, qui permet de gérer la sauvegarde et l'organisation à long terme des fichiers journaux.

Les applications du système enregistrent souvent un journal des opérations ou des problèmes de disque. S'ils ne sont pas supprimés périodiquement, ces fichiers peuvent grossir, remplir le disque et provoquer des dysfonctionnements.

Logrotate est la solution la plus courante pour vérifier périodiquement les fichiers journaux et gérer automatiquement leur rotation, leur compression et leur élimination lorsqu'une certaine taille et/ou un certain âge est dépassé.

Configurations de base

Logrotate permet de définir quelques paramètres de base qui seront utilisés par toutes les configurations ultérieures du fichier dans le chemin /etc/logrotate.conf :

# Set a weekly rotation

weekly


# Set the number of rotations to save

rotate 4
              

# make new log file

create
              

# Include all configurations files

include /etc/logrotate.d

Dans cet extrait de logrotate.conf, outre l'application de tous les paramètres décrits ci-dessus, la lecture de toutes les configurations présentes dans le répertoire /etc/logrotate.d est également recommandée. Ce faisant, vous pouvez diviser chaque configuration par application et/ou contexte.

Les configurations de Logrotate définissent un ensemble de règles pour 1 ou plusieurs fichiers :

[FILE] [FILE?] [FILE?] {

    [SETTINGS]

}

Un exemple classique est celui de la configuration de /var/log/messages :

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

Dans l'exemple ci-dessus, seul le fichier message est pris en compte. . et sa rotation est fixée chaque semaine, p à un maximum de 5. Ainsi, à la fin de la cinquième rotation, les fichiers journaux :

-rw-r----- 1 root  adm 1215 Jul 29 06:47 messages

-rw-r----- 1 root  adm 3895 Jul 28 06:49 messages.1

-rw-r----- 1 root  adm 454 Jul 21 06:37 messages.2.gz

-rw-r----- 1 root  adm 506 Jul 15 06:40 messages.3.gz

-rw-r----- 1 root  adm 456 Jul 7 06:41 messages.4.gz

Certains des paramètres les plus importants sont :

  • quotidien, mensuel, hebdomadaire, annuel :indique la fréquence de rotation du fichier journal

  • compress, nocompress :s'il faut ou non compresser les anciennes rotations de fichiers

  • maxage :après combien de jours les anciennes rotations sont éliminées

  • taille :définit la rotation uniquement si les fichiers indiqués sont plus grands que la taille spécifiée. Des suffixes peuvent être utilisés pour indiquer le format de taille (par exemple "k" pour kilooctets, "M" pour mégaoctets)

  • rotate :nombre de journaux en rotation qui doivent être enregistrés avant d'être définitivement supprimés. S'il est défini sur 0, les fichiers journaux seront effacés sans rotation.

Si vous souhaitez définir les mêmes règles pour plusieurs fichiers, vous pouvez ajouter plusieurs chemins en les séparant par une virgule. Par exemple :

/var/log/custom_log, /var/log/alternative_log_file, /var/log/another_log {
                 

      …
                 

}

Cette configuration sera utilisée pour le fichier custom_log, alternative_log_file et another_log.

Vous pouvez également utiliser des masques de fichiers tels que :

/var/custom/logs/*, /var/log/custom_log {
                 

      # This configuration will rotate all the files in the directory. 

      # /var/custom/logs/* e il file /var/log/custom_log
                 

      ...

}

Utiliser le paramètre dateext

Le paramètre dateext vous permet d'ajouter la date de rotation au nom du fichier, afin que les données des journaux puissent être facilement reconnues.

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

La configuration indiquée ci-dessus archivera le fichier custom.log dès qu'il atteindra 100M, jusqu'à un maximum de 3 fois ou après 100 jours. Grâce à l'option de compression, le fichier archivé sera également compressé au format gzip.

Une fois la rotation effectuée, les noms de fichiers auront la date de rotation indiquée ci-dessous :

# ls /var/log

-rw-r--r--  1 user user 8980 2019-06-09 22:10 custom.log-20180609.gz

-rwxrwxrwx 1 user user    0 2019-06-09 22:11 custom.log

Journaux d'e-mail

Logrotate vous permet d'exécuter des scripts personnalisés lorsque certains événements se produisent, comme après chaque rotation de journal, en utilisant les mots-clés postrotate / endscript.

Une utilisation possible pourrait être d'envoyer les journaux par e-mail à la fin de la rotation. Pour continuer, commencez par créer un script pour envoyer les fichiers à votre adresse e-mail :

#!/bin/bash
                 

# Get all logs

tar -cvf /tmp/logpack.tar /var/log/messages*
                 

# Send logs as attachment 

echo "Log" | mail -s "log" [email protected] -A /tmp/logpack.tar

Enregistrez le fichier ci-dessus dans votre répertoire personnel, par exemple /home/map.com username_s//endend.sh et assurez-vous d'activer les autorisations nécessaires via :

# sudo chmod u+x /home/user/sendlog.sh

Maintenant, modifiez le fichier de configuration logrotate comme suit :

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Enregistrer la configuration pour appliquer les modifications.

Une fois terminé, vous recevrez un e-mail avec l'archive de journal décrite ci-dessus à chaque rotation de journal.


Linux
  1. Comment installer et utiliser logrotate pour gérer les fichiers journaux dans Ubuntu 18.04 LTS

  2. Comment gérer les capacités des fichiers Linux

  3. Comment gérer les fichiers journaux à l'aide de Logrotate sous Linux

  4. Comment renommer des fichiers spécifiquement dans une liste que Wget utilisera ?

  5. Comment utiliser Netcat pour transférer des fichiers sous Linux

Comment installer Logrotate sur Ubuntu 16.04 LTS

Comment utiliser le gestionnaire de fichiers de cPanel ?

Comment utiliser gzip sous Linux ?

Comment utiliser Linux pour récupérer des fichiers supprimés

Astuces Ubuntu :Comment afficher les fichiers journaux du système dans l'interface graphique

Comment compresser un fichier sous Linux