< Systemd (Français)

systemd (Français)/Journal (Français)

systemd possède son propre système de journalisation appelé journal ; il n'est pas nécessaire d'exécuter un daemon de journalisation séparé. Pour lire le journal, utilisez journalctl(1).

État de la traduction: Cet article est la version francophone de systemd/Journal. Date de la dernière traduction: 2022-04-30. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Sous Arch Linux, le répertoire /var/log/journal/ fait partie du paquet systemd, et le journal (lorsque Storage= est défini sur auto dans /etc/systemd/journald.conf) écrira dans /var/log/journal/. Si ce répertoire est supprimé, systemd ne le recréera pas automatiquement et écrira ses journaux dans /run/systemd/journal de manière non persistante. Cependant, le répertoire sera recréé si Storage=persistent est ajouté à journald.conf et est redémarré (ou si le système est redémarré).

Le journal de systemd classe les messages par Niveau de priorité et Fonctionnalité. La classification des journaux correspond au protocole classique Syslog (RFC 5424).

Niveau de priorité

Un code de gravité syslog (appelé priorité dans systemd) est utilisé pour marquer l'importance d'un message RFC 5424 6.2.1.

ValeurGravitéMot-ClefDescriptionExemples
0 Urgente emerg Système inutilisable BUG sévère du noyau, systemd a reçu un «core dump».
Ce niveau ne doit pas être utilisé par les applications.
1 Alerte alert Doit être corrigé immédiatement Un sous-système vital ne fonctionne plus. Perte de données.
2 Critique crit Situations critiques Crashs, coredumps. Un exemple habituel était Adobe Flash :

Défaillance de l'application principale du système, comme X11.
3 Erreur err Situations d'erreurs Erreur non grave signalée:

systemd[1]: Failed unmounting /var.
libvirtd[1720]: internal error: Failed to initialize a valid firewall backend
4 Avertissement warning Peut indiquer qu'une erreur se produira si aucune action n'est entreprise. Un système de fichiers hors racine n'a plus que 1 Go de libre.
5 Avis notice Les événements qui sont inhabituels, mais pas des situations d'erreur.
6 Informative info Messages durant un fonctionnement normal qui ne nécessitent aucune action.
7 Débogage debug Informations utiles aux développeurs pour le débogage de l'application.

Ces règles sont des recommandations, et le niveau de priorité d'une erreur donnée est à la discrétion du développeur de l'application. Il est toujours possible que l'erreur soit à un niveau plus élevé ou plus bas que prévu.

Fonctionnalité

Un code de fonctionnalité syslog est utilisé pour spécifier le type de programme qui enregistre le message RFC 5424 6.2.1.

Code de fonctionnalitéMot-cléDescriptionInfo
0kernMessages du noyau
1userMessages au niveau de l'utilisateur
2mailSystème de messagerieArchaïque, POSIX, encore pris en charge et parfois utilisé (voir )
3daemonDaemon systèmeTous les daemons, y compris systemd et ses sous-systèmes
4authMessages de sécurité/autorisationVoir aussi la fonctionnalité n°10
5syslogMessages générés en interne par syslogdPour les implémentations de syslogd (non utilisé par systemd, voir la fonctionnalité n°3)
6lprSous-système d'imprimante de ligne (sous-système archaïque)
7newsSous-système d'informations réseau (sous-système archaïque)
8uucpSous-système UUCP (sous-système archaïque)
9Daemon horlogesystemd-timesyncd
10authprivMessages de sécurité/autorisationVoir aussi la fonctionnalité n°4
11ftpDaemon FTP
12-Sous-système NTP
13-Journal des audits
14-Journal des alertes
15cronDaemon de planification
16local0Utilisation locale 0 (local0)
17local1Utilisation locale 1 (local1)
18local2Utilisation locale 2 (local2)
19local3Utilisation locale 3 (local3)
20local4Utilisation locale 4 (local4)
21local5Utilisation locale 5 (local5)
22local6Utilisation locale 6 (local6)
23local7Utilisation locale 7 (local7)

Installations utiles à surveiller : 0, 1, 3, 4, 9, 10, 15.

Filtrage de la sortie

journalctl permet de filtrer la sortie par des champs spécifiques. S'il y a beaucoup de messages à afficher, ou si le filtrage de grandes périodes de temps doit être fait, la sortie de cette commande peut être largement retardée.

Exemples :

  • Afficher tous les messages de ce démarrage : Cependant, il arrive souvent que l'on soit intéressé par des messages provenant non pas du démarrage actuel, mais du démarrage précédent (par exemple, si un crash système irrécupérable s'est produit). Ceci est possible grâce au paramètre optionnel offset de l'indicateur -b : affiche les messages du démarrage actuel, du démarrage précédent, journalctl -b -2 du deuxième démarrage précédent et ainsi de suite - vous pouvez voir la liste des démarrages avec leurs numéros en utilisant . Voir journalctl(1) pour une description complète ; la sémantique est plus puissante que celle indiquée ici.
  • Inclure les explications des messages du journal à partir du catalogue de messages lorsqu'il est disponible : Notez que cette fonctionnalité ne devrait pas être utilisée lorsque vous joignez des journaux à des rapports de bogues et à des fils de support, afin de limiter les sorties superflues. Vous pouvez lister toutes les entrées de catalogue connues en exécutant .
  • Afficher tous les messages depuis la date (et éventuellement l'heure) :
  • Afficher tous les messages depuis 20 minutes :
  • Suivre les nouveaux messages :
  • Afficher tous les messages par un exécutable spécifique :
  • Afficher tous les messages d'un processus spécifique :
  • Afficher tous les messages d'une unité spécifique :
    # journalctl -u man-db.service
  • Afficher tous les messages des services utilisateurs par une unité spécifique :
  • Afficher le tampon du noyau :
    # journalctl -k
  • Afficher uniquement les messages d'erreur, critiques et d'alerte prioritaires : Vous pouvez également utiliser un niveau de journal numérique, comme . Si un seul nombre/niveau de journal est utilisé, , alors tous les niveaux de journaux de priorité supérieure sont également inclus (c'est-à-dire de 0 à 3 dans ce cas).
  • Montrer l'équivalent de auth.log en filtrant sur la facilité syslog :
  • Si le répertoire journal (situé par défaut sous ) contient une grande quantité de données de journal, peut prendre plusieurs minutes pour filtrer la sortie. Il peut être accéléré de manière significative en utilisant l'option pour forcer à ne regarder que dans le journal le plus récent :

Voir journalctl(1), systemd.journal-fields(7), ou l'article du blog de Lennart Poettering pour plus de détails.

Limite de taille du journal

Si le journal est persistant (non-volatile), sa taille limite est fixée par défaut à 10 % de la taille du système de fichiers sous-jacent, mais est plafonnée à 4 Go. Par exemple, avec /var/log/journal/ situé sur une partition de 20 Go, les données du journal peuvent occuper jusqu'à 2 Go. Sur une partition de 50 Go, elles seraient limitées à 4 Go. Pour confirmer les limites actuelles sur votre système, examinez les journaux de l'unité  :

# journalctl -b -u systemd-journald

La taille maximale du journal persistant peut être contrôlée en décommentant et en modifiant les éléments suivants :

Il est également possible d'utiliser des fichiers de substitution plutôt que de modifier le fichier de configuration global. Dans ce cas, placez les surcharges sous l'en-tête  :

/etc/systemd/journald.conf.d/00-journal-size.conf
[Journal]
SystemMaxUse=50M

Redémarrez le après avoir modifié ce paramètre pour appliquer la nouvelle limite.

Voir pour plus d'informations.

Limite de taille par unité avec un espace de nom séparé

Éditez le fichier d'unité pour le service que vous souhaitez configurer (par exemple sshd) et ajoutez dans la section .

Créez ensuite /etc/systemd/journald@ssh.conf en copiant /etc/systemd/journald.conf. Après cela, éditez et ajustez à votre convenance.

[Le redémarrage du service devrait automatiquement démarrer le nouveau service de journal . Les journaux du service avec son propre espace de nom peuvent être visualisés avec .

Voir systemd-journald.service(8) §JOURNAL NAMESPACES pour plus de détails sur les espaces de noms des journaux.

Nettoyer les fichiers journaux manuellement

Les fichiers journaux peuvent être supprimés globalement de /var/log/journal/ à l'aide de par exemple, ou peuvent être découpés selon divers critères en utilisant . Par exemple :

  • Supprimez les fichiers journaux archivés jusqu'à ce que l'espace disque qu'ils utilisent tombe en dessous de 100M :
  • Faites en sorte que tous les fichiers journaux ne contiennent aucune donnée datant de plus de 2 semaines.

Voir journalctl(1) pour plus d'informations.

Journald en conjonction avec syslog

La compatibilité avec une implémentation classique, non compatible avec Journald, de syslog peut être assurée en laissant systemd transmettre tous les messages via le socket . Pour que le daemon syslog fonctionne avec le journal, il doit se lier à cette socket au lieu de /dev/log. (annonce officielle).

La valeur par défaut de journald.conf pour la redirection vers la socket est pour éviter la surcharge du système, car rsyslog ou syslog-ng extraient les messages du journal par eux-même.

Voir Syslog-ng#Overview et Syslog-ng#syslog-ng and systemd journal, ou rsyslog respectivement, pour plus de détails sur la configuration.

Transférer journald sur /dev/tty12

Créez un répertoire de remplacement et créez-y un fichier  :

Puis redémarrez .

Spécifier un autre journal à afficher

Il peut y avoir un besoin de vérifier les journaux d'un autre système qui est mort dans l'eau, comme démarrer à partir d'un système vivant pour récupérer un système de production. Dans ce cas, on peut monter le disque dans par exemple , et spécifier le chemin du journal via /, comme ceci :

# journalctl -D /mnt/var/log/journal -e

Accès au journal en tant qu'utilisateur

Par défaut, un utilisateur normal n'a accès qu'à son propre journal par utilisateur. Pour accorder un accès en lecture au journal du système en tant qu'utilisateur normal, vous pouvez ajouter cet utilisateur au systemd-journal groupe d'utilisateurs. Les membres des groupes et ont également un accès en lecture.

Voir journalctl(1) §DESCRIPTION et Users and groups (Français)#Groupes d'utilisateurs pour plus d'informations.

gollark: Better than the osmarksßspointers™?
gollark: https://wiki.mondecitronne.com/wiki/Apioforms
gollark: FEAR it.
gollark: Spreadsheets < numpy.
gollark: What? Nothing is scheduled until 2026.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.