GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration de logrotate sous Linux

Imaginez à quoi ressemblerait la vie si un service critique faisait faillite il y a quelques minutes et que vous étiez appelé pour sauver la situation. Vous essayez de redémarrer le service, et cela ne donne rien. Il n'y a pas de messages d'erreur, mais plus important encore, aucune trace de ce qu'il faisait avant de décider de mourir. Cent et une causes traversent votre esprit, et vous vous rendez compte qu'il n'y a aucun moyen de savoir dans quelle direction aller. Peut-être pourriez-vous redémarrer complètement le serveur. Juste peut-être.

Ce scénario est l'un des nombreux dans lesquels la journalisation peut venir à votre secours. Habituellement, un logiciel en cours d'exécution conserve un enregistrement des activités importantes liées à son exécution pour l'amour de la postérité dans un fichier. Tout peut être conservé dans un fichier journal car il aide les développeurs et les administrateurs système à savoir ce qui s'est passé avec un logiciel particulier après coup. Les fichiers journaux sont également utilisés par les personnes soucieuses de la sécurité pour examiner l'accès à des ressources particulières. Dans le réseautage ou la messagerie, les fichiers journaux enregistrent l'heure à laquelle les messages ont été envoyés ou reçus pour référence ultérieure.

Les fichiers journaux, par définition, continuent d'augmenter en taille en fonction de la fréquence et de la verbosité avec lesquelles ils sont mis à jour. Pour remplir leur fonction, ils sont normalement ouverts en mode ajout et contiennent des horodatages pour aider au dépannage et à la criminalistique. Cependant, cela pose un problème car les fichiers de grande taille rendent le travail avec les fichiers journaux fastidieux à la fois pour le système et pour l'examinateur humain. Les journaux font l'objet d'une rotation pour que les fichiers journaux restent tenables. En termes simples, un nouveau fichier est ouvert tandis que l'ancien est fermé et conservé ou supprimé en fonction des préférences de conception. Cela empêche les journaux de remplir des partitions entières et de mettre les systèmes à genoux dans le processus. Vous avez peut-être remarqué la rotation des journaux à l'œuvre sur un système à proximité. Regardez les dates sur le boot.log fichiers.

Dans ce cas, lorsqu'une condition spécifique est remplie, le fichier actuel est renommé en ajoutant une date pour l'identifier et le suivre, et un nouveau fichier portant le nom d'origine est ouvert, prêt à recevoir les messages de journal entrants.

Connexion sous Linux (rsyslogd)

Comme vous vous en doutez, la connexion aux systèmes Linux, tels que le serveur CentOS 7 que j'utilise à titre d'illustration, s'appuie sur un démon pour faciliter la journalisation. Rsyslogd est le nom de l'ancien service fiable et il est open-source. En fait, ce n'est pas si vieux. Il s'agit d'une version améliorée du syslog d'origine démon, et il possède la capacité de traiter et de transférer rapidement les journaux vers n'importe quel emplacement d'un réseau IP. Mis à part syslog et rsyslog , il y a syslog-ng , qui est encore un autre démon pour gérer les journaux. Le gestionnaire de journal par défaut dépend de la distribution choisie. Rsyslog est fourni par défaut dans de nombreuses distributions basées sur Red Hat. Exécutez la commande suivante pour vérifier sa présence et sa version sur votre système :

rsyslogd -v

Comme il s'agit d'un démon, vous pouvez vérifier qu'il est actif en utilisant systemd comme suit :

systemctl status rsyslog

Si, pour une raison quelconque, il ne fonctionne pas, vous pouvez le démarrer via systemd .

[ Note de l'éditeur :de nombreux systèmes plus récents ont remplacé rsyslogd par journald pour la journalisation. Vous pouvez choisir l'une ou l'autre option, voire les deux, pour gérer vos besoins de journalisation. Pour plus d'informations, consultez la documentation de votre distribution. Cet article supposera que vous utilisez rsyslogd.]

Logrotate

Logrotate est un utilitaire Linux dont la fonction principale est - attendez-le - de faire pivoter les journaux. S'il n'est pas installé dans le cadre de l'installation du système d'exploitation par défaut, il peut être installé simplement en exécutant :

 yum install logrotate

Le fichier binaire peut être situé dans /bin/logrotate .

En installant logrotate , un nouveau fichier de configuration est placé dans le répertoire /etc/ répertoire pour contrôler le comportement général de l'utilitaire lorsqu'il s'exécute. En outre, un dossier est créé pour les fichiers de configuration de composant logiciel enfichable spécifiques au service pour les demandes de rotation de journaux sur mesure. Plus d'informations à ce sujet un peu plus tard.

Tâche cron quotidienne

Un cron le travail est exécuté quotidiennement qui démarre l'utilitaire. Ceci est réalisé en plaçant un appel à l'utilitaire dans le cron standard dossier pour les tâches quotidiennes. Bien que les détails de l'appel sortent du cadre de cet article, il suffit de dire que l'appel n'est qu'un script Bash qui exécute le logrotate binaire, indiquant au système quoi faire en cas d'erreur.

Emplacement standard du fichier journal

Les journaux sur un système Linux peuvent être placés partout où les autorisations le permettent. Cependant, en raison du fait qu'ils changent continuellement de taille et de contenu, par définition, la hiérarchie du système de fichiers prescrit qu'ils sont conservés dans le fichier /var/log/ répertoire.

La capture d'écran ci-dessous est un aperçu du contenu de mon /var/log répertoire.

Fichiers de configuration et exemples

/etc/logrotate.conf

Le premier fichier à prendre en compte en ce qui concerne la fonction de logrotate est logrotate.conf . Ce fichier de configuration contient les directives sur la rotation des fichiers journaux par défaut. S'il n'y a pas d'ensemble spécifique de directives, l'utilitaire agit conformément aux directives de ce fichier.

Vous trouverez ci-dessous un exemple du contenu du fichier de configuration.

Passons en revue quelques-unes des directives pour avoir une idée de la flexibilité de logrotate. Gracieusement, l'auteur de l'utilitaire a mis suffisamment de commentaires pour faire démarrer un débutant. Vous pouvez également voir le man page pour une plongée plus profonde. Les directives weekly , dateext , compress , create , et rotate 4 indiquer que les fichiers journaux doivent être alternés hebdomadaire , que la date de rotation soit utilisée comme suffixe d'identification des fichiers pivotés, que les fichiers pivotés doivent être compressés , qu'un nouveau fichier doit être créé pour recevoir les journaux entrants, et que pas plus de quatre les journaux doivent être conservés. En d'autres termes, le cinquième journal le plus récent doit être supprimé. Notez également que sur mon système, en raison de la présence du # avant le compress directive, la compression est désactivée par défaut.

De plus, il existe une directive pour inclure un dossier particulier :/etc/logrotate.d . Ce dossier est utilisé pour les demandes de rotation de journaux spécifiques au package. Packages conçus pour tirer parti de logrotate déposez les fichiers de configuration dans ce répertoire. Cette modularité s'inscrit dans l'esprit Linux et renforce l'extensibilité de l'utilitaire. Les fichiers de configuration contiennent des directives similaires et des fichiers journaux personnalisés, le cas échéant. Vous pouvez également créer votre propre fichier de configuration pour gérer n'importe quel fichier journal de votre choix. Donnez simplement un nom au fichier, ajoutez le fichier journal à traiter et placez-le dans ce répertoire. Enfin, il existe des directives pour les fichiers journaux sans packages propriétaires, tels que wtmp et d'autres fichiers journaux du système. L'man La page est remplie de plus de directives, et pour les utilisateurs qui ont des besoins de rotation plus spécifiques, je vous conseille fortement d'y jeter un œil.

/etc/logrotate.d

Heureusement, j'ai beaucoup parlé sur le /etc/logrotate.d répertoire, alors sans plus tarder, laissez-moi vous montrer le contenu de ce répertoire pour ramener les idées partagées plus tôt à la maison.

Et juste pour faire bonne mesure, jetons un coup d'œil au fichier de configuration de Samba.

Pouvez-vous voir à quel point il est similaire à logrotate.conf ? Avant de tirer les rideaux de cette pièce, passons en revue certaines des directives de ce fichier :

/var/log/samba/* - Le fichier journal à tourner. Dans ce cas, il s'agit de tous les fichiers journaux du répertoire des journaux Samba.

notifempty - Directive indiquant que le fichier ne doit pas être tourné s'il est vide.

olddir /var/log/samba/old - Emplacement pour stocker les anciens journaux de rotation.

missingok - Arrête logrotate de lancer une erreur si le fichier journal est manquant.

copytruncate - Ne fermez pas le fichier journal. Faites une copie, qui sera le fichier pivoté et renommé, puis tronquez le fichier journal à la taille zéro

Pouvez-vous deviner ce que les sharedscripts directive fait? Pas besoin de deviner - consultez le man page.

Conclusion

Espérons que cela suffira pour vous permettre de gérer les journaux. Logrotate est un utilitaire de rotation open source simple mais puissant. Jusqu'au prochain post, bonne rotation !

[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]


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

  2. Utilisation de Logrotate sous Linux pour gérer les fichiers journaux (avec exemples)

  3. Linux - Tout est un fichier ?

  4. Comment vider un fichier journal sous Linux

  5. Comment utiliser Logrotate pour gérer les fichiers journaux

Commande de fichier Linux

Comment créer un fichier sous Linux

Moins de commande sous Linux

Commande Gzip sous Linux

Commande Gunzip sous Linux

Comment changer le fichier journal Sudo par défaut sous Linux