Gestion des journaux système de SUSE Linux Micro
- CONTENU
L'analyse des fichiers journaux du système est l'une des tâches les plus importantes lors de l'analyse du système. En fait, l'examen des fichiers journaux du système doit être la première chose à faire lors de la maintenance ou du dépannage d'un système. SUSE Linux Micro consigne automatiquement en détail tout ce qui se passe sur le système.
- MOTIF
Cet article fournit des instructions sur la façon d'examiner ce qui s'est passé sur votre système en consultant les journaux système.
- EFFORT
La lecture et la compréhension de cet article nécessitent environ 20 minutes.
- OBJECTIF
Vous obtiendrez un aperçu de l'emplacement des fichiers journaux et de la façon de les gérer.
- CONDITIONS REQUISES
Privilèges
root.
1 Où trouver les fichiers journaux du système ? #
SUSE Linux Micro consigne plusieurs types de messages, provenant par exemple du kernel, de SELinux ou d'autres services.
Les messages du kernel et les messages des services système enregistrés avec systemd sont consignés dans le journal systemd (voir Section 4, « Système de consignation systemd « journal » »). D'autres fichiers journaux du système se trouvent sous le répertoire /var/log. Les messages SELinux sont consignés dans /var/log/audit/audit.log. Pour plus d'informations, reportez-vous au document SELinux
troubleshooting.
La liste suivante fournit un aperçu de tous les fichiers journaux système trouvés dans SUSE Linux Micro après une installation par défaut. En fonction de l'étendue de votre installation, /var/log contient également des fichiers journaux d'autres services et applications non répertoriés ici. Certains fichiers et répertoires décrits ci-dessous sont des « marques de réservation » et ne sont utilisés que lorsque l'application correspondante est installée. La plupart des fichiers journaux ne sont visibles que pour l'utilisateur root. Généralement, vous pouvez afficher ces fichiers à l'aide d'un éditeur étant donné qu'ils sont en texte clair.
utmp, wtmp et lastlog ont été supprimés de SUSE Linux Micro et ne sont plus pris en charge. S'il existe des applications qui écrivent dans ces fichiers journaux, n'oubliez pas que ces derniers sont incomplets. wtmp a été remplacé par wtmpdb, et lastlog par lastlog2.
-
audit/ Journaux de la structure d'audit.
-
ConsoleKit/ Journaux du daemon
ConsoleKit(daemon permettant de suivre les utilisateurs connectés et leur mode d'interaction avec l'ordinateur).-
cups/ Journaux d'accès et d'erreurs de Common Unix Printing System (
cups).-
firewalld Journaux du pare-feu.
-
krb5/ Fichiers journaux du système d'authentification réseau Kerberos.
-
chrony/ Journaux du daemon Network Time Protocol (
chrony).-
YaST2/ Tous les fichiers journaux YaST.
-
zypp/ Fichiers journaux
libzypp. Reportez-vous à ces fichiers pour l'historique d'installation des paquets.-
zypper.log Journaux du programme d'installation de ligne de commande
zypper.
2 Affichage et analyse des fichiers /var/log #
Vous pouvez afficher et analyser les journaux en texte clair dans /var/log à l'aide des commandes CLI comme décrit plus loin.
Pour afficher les fichiers journaux, utilisez les commandes less ou more. Utilisez head et tail pour afficher le début ou la fin d'un fichier journal. Pour afficher les entrées ajoutées à un fichier journal en temps réel, utilisez tail
-f. Pour plus d'informations sur l'utilisation de ces outils, reportez-vous à leurs pages de manuel.
Pour rechercher des chaînes ou des expressions régulières dans les fichiers journaux, utilisez grep. awk est utile pour l'analyse et la réécriture des fichiers journaux.
3 Gestion des fichiers journaux avec logrotate #
Les fichiers journaux sous /var/log augmentent quotidiennement et deviennent rapidement très volumineux. logrotate est un outil qui vous aide à gérer les fichiers journaux et leur croissance. Il permet la rotation automatique, la suppression, la compression et l'envoi par courrier électronique des fichiers journaux. Les fichiers journaux peuvent être traités périodiquement (quotidiennement, hebdomadairement ou mensuellement) ou lorsqu'ils dépassent une certaine taille.
logrotate est habituellement exécuté quotidiennement par systemd et ne modifie donc généralement les fichiers journaux qu'une fois par jour. Toutefois, des exceptions se produisent lorsqu'un fichier journal est modifié en raison de sa taille, si la commande logrotate est exécutée plusieurs fois par jour ou si l'option --force est activée. Affichez le fichier /var/lib/misc/logrotate.status pour savoir quand un fichier particulier a subi la dernière rotation.
logrotate peut être configuré en fonction de vos besoins. Pour plus d'informations, reportez-vous à la Section 3.1, « Configuration de logrotate ».
3.1 Configuration de logrotate #
Le fichier de configuration principal logrotate.conf définit, par exemple, la fréquence de rotation des journaux ou l'outil utilisé pour les compressions de données. Chaque service peut avoir sa propre configuration logrotate dans /etc/logrotate.d/.
3.1.1 Réglage de logrotate.conf #
La version par défaut de logrotate.conf réside dans le répertoire /usr/etc/. Si les valeurs par défaut ne répondent pas à vos besoins, copiez le fichier dans /etc/logrotate.conf et modifiez les valeurs de configuration à cet endroit. Ne modifiez pas la version /usr/etc/, car elle risque d'être remplacée par une mise à jour système. Vous pouvez remplacer les valeurs suivantes :
-
weekly Fréquence de rotation des journaux. Vous pouvez utiliser n'importe laquelle des valeurs suivantes :
hourly,daily,weekly,monthlyouyearly.-
maxage Vous pouvez spécifier le nombre de jours pendant lesquels les journaux sont conservés.
-
rotate 4 Le nombre détermine la quantité de rotations de journaux pour la conservation des journaux ayant subi une rotation. Lorsque cette option est définie sur
rotate 0, les journaux sont supprimés immédiatement. Lorsque cette option est définie surrotate -1, les journaux ne sont supprimés que lorsqu'ils atteignent la valeur demaxage.-
dateext Si l'option est présente dans le fichier de configuration, les noms de fichiers journaux ayant subi une rotation reçoivent une extension reprenant une date au format suivant :
logname.YYYYMMDD. Si elle n'est pas présente, le modèle de nom de fichier par défaut est le suivant :logname.1,logname.2.-
compress Si elle est ajoutée en commentaire, les journaux ne sont pas compressés.
compresscmdetuncompresscmdIci, vous pouvez modifier les outils de compression et de décompression par défaut en définissant les chemins absolus correspondants vers les outils.
-
include PATH Vous pouvez modifier l'emplacement par défaut du fichier avec les informations de rotation des journaux. La valeur par défaut est
/var/lib/misc/logrotate.status.
3.1.2 Configuration logrotate spécifique au service #
Les services et les applications peuvent disposer d'une configuration logrotate spécifique dans /etc/logrotate.d. Outre les options mentionnées à la Section 3.1.1, « Réglage de logrotate.conf », vous pouvez également utiliser les configurations suivantes :
-
missingok La rotation des journaux ne signale pas d'erreurs si l'un des fichiers journaux spécifiés est manquant.
-
notifempty La rotation ne s'applique pas à un fichier journal vide.
-
delaycompress La compression des journaux ayant subi une rotation est reportée jusqu'à la rotation suivante.
-
sharedscripts Indique une section avec des scripts qui ne doivent être exécutés qu'une seule fois, quel que soit le nombre de journaux faisant l'objet d'une rotation. En cas d'omission, les scripts sont exécutés pour chaque fichier journal faisant l'objet d'une rotation.
-
size Définit la taille qu'un fichier journal peut atteindre avant le lancement de la rotation des journaux. Cette option peut ignorer la planification horaire. La valeur peut être exprimée en mégaoctets (M), en kilo-octets (K) ou en octets (B).
-
minsize Les journaux subissent une rotation en fonction de la planification horaire spécifiée si leur taille dépasse cette valeur. La valeur peut être exprimée en mégaoctets (M), en kilo-octets (K) ou en octets (B).
-
maxsize Spécifie la taille de fichier journal maximale. Lorsqu'un fichier journal atteint cette limite, cela déclenche la rotation même lorsque l'intervalle de temps n'est pas atteint. La valeur peut être exprimée en mégaoctets (M), en kilo-octets (K) ou en octets (B).
4 Système de consignation systemd « journal » #
systemd dispose de son propre système de consignation appelé journal. Le journal lui-même est un service système géré par systemd—systemd-journald.service.
Le service collecte et stocke les données de consignation en tenant à jour des journaux indexés structurés basés sur des informations de consignation reçues du kernel, des processus utilisateur, des entrées standard et des erreurs des services système. Le service systemd-journald est activé et démarré par défaut.
Le journal stocke les données de journal dans /var/log/journal/.
4.1 Utilisation de la commande journalctl #
Cette section présente plusieurs options utiles courantes pour améliorer le comportement par défaut de la commande journalctl.
La commande journalctl présente la syntaxe suivante :
journalctl [options…] [matches…]Pour afficher tous les messages de journal liés à un exécutable spécifique, spécifiez le chemin complet de l'exécutable :
>sudojournalctl /usr/lib/systemd/systemd
La commande accepte les options suivantes :
- -f
Affiche uniquement les messages de journal les plus récents et imprime les nouvelles entrées de journal lorsqu'elles sont ajoutées au journal.
- -e
Imprime les messages et passe à la fin du journal, afin que les dernières entrées soient visibles dans le téléavertisseur.
- -r
Imprime les messages du journal dans l'ordre inverse, de sorte que les entrées les plus récentes apparaissent en premier.
- -k
Affiche uniquement les messages du kernel. Cela équivaut à la correspondance de champ
_TRANSPORT=kernel.- -u
Affiche uniquement les messages de l'unité
systemdspécifiée. Cela équivaut à la correspondance de champ_SYSTEMD_UNIT=UNIT.>sudojournalctl -u apache2 [...] Jun 03 10:07:11 pinkiepie systemd[1]: Starting The Apache Webserver... Jun 03 10:07:12 pinkiepie systemd[1]: Started The Apache Webserver.
4.2 Filtrage des journaux #
Lorsque la commande journalctl est appelée sans option, elle affiche tout le contenu du journal, les entrées les plus anciennes apparaissant en premier. Le résultat peut être filtré en fonction d'options ou de champs de journal spécifiques.
4.2.1 Filtrage basé sur l'intervalle de temps #
Vous pouvez filtrer le résultat de journalctl en spécifiant la date de début et/ou de fin. La date doit être spécifiée au format 2014-06-30 9:17:16. Si la partie horaire est omise, le système utilise la valeur minuit. Si les secondes sont omises, le système utilise la valeur :00. Si la partie de date est omise, le système utilise la date actuelle. Au lieu d'une expression numérique, vous pouvez spécifier les mots-clés « hier », « aujourd'hui » ou « demain ». Ils font référence à minuit du jour précédent, du jour en cours ou du jour suivant. Si vous spécifiez « maintenant », cela fait référence à l'heure actuelle. Vous pouvez également spécifier des heures relatives précédées du préfixe - ou +, qui fait référence aux heures antérieures ou postérieures à l'heure actuelle.
Pour afficher uniquement les nouveaux messages depuis maintenant et mettre à jour la sortie en continu :
>sudojournalctl --since "now" -f
Pour afficher tous les messages à partir de minuit jusqu'à 3 h 20 :
>sudojournalctl --since "today" --until "3:20"
4.2.2 Filtrage basé sur un numéro de démarrage #
journalctl peut filtrer les messages en fonction d'un démarrage système spécifique. Pour répertorier tous les démarrages disponibles, exécutez la commande suivante :
>sudojournalctl --list-boots -1 097ed2cd99124a2391d2cffab1b566f0 Mon 2014-05-26 08:36:56 EDT—Fri 2014-05-30 05:33:44 EDT 0 156019a44a774a0bb0148a92df4af81b Fri 2014-05-30 05:34:09 EDT—Fri 2014-05-30 06:15:01 EDT
La première colonne indique le décalage de démarrage : 0 pour le démarrage en cours, -1 pour le précédent et -2 pour celui avant le précédent, etc. La deuxième colonne contient l'ID de démarrage, suivi des tampons horaires de limitation du démarrage spécifique.
Pour afficher tous les messages du démarrage actuel :
>sudojournalctl -b
Si vous avez besoin de voir les messages du journal du précédent démarrage, ajoutez un paramètre de décalage. L'exemple suivant renvoie les messages du précédent démarrage :
>sudojournalctl -b -1
Une autre méthode consiste à répertorier les messages de démarrage en fonction de l'ID de démarrage. Pour ce faire, utilisez le champ _BOOT_ID :
>sudojournalctl _BOOT_ID=156019a44a774a0bb0148a92df4af81b
4.2.3 Filtrage basé sur les champs #
Vous pouvez filtrer la sortie du journal en fonction de champs spécifiques. La syntaxe d'un champ à rechercher est la suivante : FIELD_NAME=MATCHED_VALUE, par exemple _SYSTEMD_UNIT=httpd.service. Vous pouvez spécifier plusieurs correspondances dans une seule requête pour filtrer davantage les messages renvoyés. Reportez-vous à man 7 systemd.journal-fields pour obtenir la liste des champs par défaut.
Pour afficher les messages produits par un ID de processus spécifique :
>sudojournalctl _PID=1039
Pour afficher les messages appartenant à un ID utilisateur spécifique :
# journalctl _UID=1000
Pour afficher les messages du tampon en anneau du kernel (identiques à ceux renvoyés par dmesg) :
>sudojournalctl _TRANSPORT=kernel
Pour afficher les messages de la sortie standard ou d'erreur du service :
>sudojournalctl _TRANSPORT=stdout
Pour afficher uniquement les messages produits par un service spécifié :
>sudojournalctl _SYSTEMD_UNIT=avahi-daemon.service
Si deux champs différents sont spécifiés, seules les entrées correspondant simultanément aux deux expressions sont affichées :
>sudojournalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=1488
Si deux correspondances font référence au même champ, toutes les entrées correspondant à l'une ou l'autre des expressions sont affichées :
>sudojournalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
Vous pouvez utiliser le séparateur + pour combiner deux expressions dans une logique OR. L'exemple suivant affiche tous les messages du processus du service Avahi portant l'ID de processus 1480 avec tous les messages du service D-Bus :
>sudojournalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=1480 + _SYSTEMD_UNIT=dbus.service
4.3 Configuration de journald #
>sudosystemctl restart systemd-journald
4.3.1 Modification de la limite de taille du journal #
Les données du journal utilisent jusqu'à 10 % du système de fichiers sur lequel /var/log/journal réside. Par exemple, si /var/log/journal se trouve sur une partition /var de 30 Go, le journal peut utiliser jusqu'à 3 Go d'espace disque. Pour modifier cette limite, changez (et supprimez la marque de commentaire) de l'option SystemMaxUse :
SystemMaxUse=50M
4.3.2 Transfert du journal vers /dev/ttyX #
Vous pouvez transférer le journal vers un périphérique de terminal pour vous informer des messages système sur un écran de terminal préféré, par exemple, /dev/tty12. Remplacez les options journald comme suit :
ForwardToConsole=yes TTYPath=/dev/tty12
5 Mentions légales #
Copyright © 2006–2025 SUSE LLC et contributeurs. Tous droits réservés.
Il est autorisé de copier, distribuer et/ou modifier ce document conformément aux conditions de la licence de documentation libre GNU version 1.2 ou (à votre discrétion) 1.3, avec la section permanente qu'est cette mention de copyright et la licence. Une copie de la version de licence 1.2 est incluse dans la section intitulée « Licence de documentation libre GNU ».
Pour les marques commerciales SUSE, consultez le site Web https://www.suse.com/company/legal/. Toutes les autres marques de fabricants tiers sont la propriété de leur détenteur respectif. Les symboles de marque (®, ™, etc.) désignent des marques commerciales de SUSE et de ses sociétés affiliées. Des astérisques (*) désignent des marques commerciales de fabricants tiers.
Toutes les informations de cet ouvrage ont été regroupées avec le plus grand soin. Cela ne garantit cependant pas sa complète exactitude. Ni SUSE LLC, ni les sociétés affiliées, ni les auteurs, ni les traducteurs ne peuvent être tenus responsables des erreurs possibles ou des conséquences qu'elles peuvent entraîner.