Logrotate est un utilitaire conçu pour les administrateurs qui gèrent des serveurs qui produisent un volume élevé de fichiers journaux. Cela les aide à économiser de l'espace disque, ainsi qu'à éviter un risque potentiel de rendre un système insensible en raison du manque d'espace disque.
Normalement, une solution pour éviter ce genre de problème est de configurer une partition ou un volume logique séparé pour un /var
point de montage. Cependant, logrotate peut également être une solution viable à ce problème, surtout s'il est trop tard pour déplacer tous les journaux sous une partition différente.
Dans ce tutoriel, nous montrerons comment configurer le service logrotate sur Red Hat Enterprise Linux, afin que vous puissiez reprendre le contrôle des fichiers journaux.
Dans ce didacticiel, vous apprendrez :
- Comment utiliser l'utilitaire logrotate sur RHEL
- Où sont stockés les fichiers de configuration de logrotate
- Comment configurer une configuration de logrotate personnalisée
- Comment tester une implémentation logrotate
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Red Hat Enterprise Linux |
Logiciel | logrotate |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Qu'est-ce que la rotation de log ?
Logrotate permet à un administrateur système de faire pivoter et d'archiver systématiquement tous les fichiers journaux produits par le système, réduisant ainsi l'espace disque requis par le système d'exploitation. Par défaut, logrotate est invoqué une fois par jour à l'aide d'un planificateur cron depuis l'emplacement /etc/cron.daily/
.
# ls /etc/cron.daily/ cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
Configuration de la rotation de log
La configuration de Logrotate se fait en éditant deux fichiers de configuration distincts :
- /etc/logrotate.conf
- fichiers de configuration spécifiques au service stockés dans /etc/logrotate.d/
Le principal logrotate.conf
Le fichier contient une configuration générique. Voici un fichier de configuration logrotate par défaut logrotate.conf
:
weekly rotate 4 create dateext include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 }
- Ligne 1 :hebdomadaire L'option de configuration assure une rotation hebdomadaire de tous les fichiers journaux définis dans le fichier de configuration principal et dans le répertoire /etc/logrotate.d/.
- Ligne 2 :tourner de 4 garantit que logrotate conserve une sauvegarde de 4 semaines de tous les fichiers journaux
- Ligne 3 – créer l'option indique à logrotate de créer de nouveaux fichiers journaux vides après chaque rotation
- Ligne 4 – textedate ajoute une extension à tous les fichiers journaux en rotation sous forme de date à laquelle chaque fichier journal particulier a été traité par logrotate
- Ligne 5 :inclure toute autre configuration depuis le répertoire /etc/logrotate.d
- Les lignes 6 à 11 contiennent une configuration de rotation de journal de service spécifique
Contrairement à logrotate.conf
, un répertoire /etc/logrotate.d/
contient des fichiers de configuration de service spécifiques utilisés par logrotate. Dans la section suivante, nous allons créer un exemple de configuration squelette de logrotate.
Y compris les nouveaux journaux de service à logrotate
Dans cette section, nous allons ajouter un nouveau fichier journal dans une configuration logrotate. Disons que nous avons un fichier journal appelé /var/log/linuxserver.log
, assis dans notre /var/log
répertoire qui doit faire l'objet d'une rotation quotidienne.
Nous devons d'abord créer un nouveau fichier de configuration logrotate pour accueillir notre nouveau fichier journal :
# vi /etc/logrotate.d/linuxserver
Insérez le texte suivant dans /etc/logrotate.d/linuxserver :
/var/log/linuxserver.log { rotate 7 daily compress delaycompress missingok notifempty create 660 linuxuser linuxuser }
Ce fichier de configuration s'exécutera quotidiennement, créera un maximum de 7 archives détenues par linuxuser et le groupe linuxuser avec 660 autorisations, compressera tous les journaux et n'exclura que les fichiers journaux d'hier et vides. Voici quelques mots-clés de configuration logrotate sélectionnés. Pour un didacticiel complet, consultez la page de manuel de logrotate.
quotidiennement | Les fichiers journaux sont alternés tous les jours. |
hebdomadaire | Les fichiers journaux sont tournés si le jour de la semaine actuel est inférieur au jour de la semaine de la dernière rotation ou si plus d'une semaine s'est écoulée depuis la dernière rotation. C'est normalement la même chose que la rotation des journaux le premier jour de la semaine, mais si logrotate n'est pas exécuté tous les soirs, une rotation des journaux se produira à la première occasion valable. |
mensuel | Les fichiers journaux font l'objet d'une rotation la première fois que logrotate est exécuté dans un mois (c'est normalement le premier jour du mois). |
notifempty | Ne faites pas pivoter le journal s'il est vide (cela remplace l'option ifempty). |
sans compression | Les anciennes versions des fichiers journaux ne sont pas compressées. |
delaycompress | Reporter la compression du fichier journal précédent au cycle de rotation suivant. Cela n'a d'effet que lorsqu'il est utilisé en combinaison avec la compresse. Il peut être utilisé lorsqu'un programme ne peut pas être invité à fermer son fichier journal et peut donc continuer à écrire dans le fichier journal précédent pendant un certain temps. |
compresser | Les anciennes versions des fichiers journaux sont compressées avec gzip par défaut. |
adresse e-mail | Lorsqu'un journal n'existe plus, il est envoyé à l'adresse. Si aucun courrier ne doit être généré par un journal particulier, la directive nomail peut être utilisée. |
manquantok | Si le fichier journal est manquant, passez au suivant sans afficher de message d'erreur. |
Une fois votre fichier de configuration prêt, copiez-le simplement dans le répertoire logrotate et modifiez le propriétaire et les autorisations :
# cp linuxserver /etc/logrotate.d/ # chmod 644 /etc/logrotate.d/linuxserver # chown root.root /etc/logrotate.d/linuxserver
Tester une nouvelle configuration Logrotate
Maintenant que la configuration de logrotate a été implémentée, suivez les étapes ci-dessous pour la tester.
- Créez un exemple de fichier journal, s'il n'existe pas déjà :
# echo "rotate my log file" > /var/log/linuxserver.log
- Une fois votre fichier journal en place, forcez logrotate à faire pivoter tous les journaux avec
-f
option.# logrotate -f /etc/logrotate.conf
Avertissement :La commande ci-dessus fera pivoter tous vos journaux définis dans
/etc/logrotate.d
répertoire. - Maintenant, visitez à nouveau votre répertoire /var/log/ et confirmez que votre fichier journal a été tourné et qu'un nouveau fichier journal a été créé.
Réflexions finales
Comme il a déjà été mentionné précédemment, la meilleure façon d'éviter que votre système ne soit encombré par des fichiers journaux est de créer une partition/volume logique séparé pour votre /var/
ou encore mieux /var/log
annuaire. Cependant, même dans ce cas, logrotate peut vous aider à économiser de l'espace disque en compressant vos fichiers journaux. Logrotate peut également vous aider à archiver vos fichiers journaux pour une référence future en créant une copie supplémentaire ou en vous envoyant par e-mail tout fichier journal récemment pivoté.