Introduction aux niveaux de log du noyau Linux

Introduction aux niveaux de log du noyau Linux

objectif

l’objectif de ce tutoriel est d’en apprendre davantage sur les différents niveaux de log du noyau linux, comment ils sont organisés, et comment nous pouvons configurer quels messages doivent être affichés sur la console en fonction de leur gravité.

exigences

  • privilèges Root pour modifier les fichiers de configuration

difficulté

facile

Introduction

la gestion des fichiers journaux du noyau Linux est un aspect crucial de l’administration d’une machine: les journaux peuvent simplement nous informer sur l’état du démon, ou Afficher des messages critiques ou des avertissements., Dans ce tutoriel, nous verrons les différents types de niveau de journal utilisés par le noyau linux, comment ils sont organisés par gravité et comment nous pouvons filtrer les messages affichés sur la console en fonction de celle-ci.

les niveaux de log du noyau Linux

il existe essentiellement huit niveaux de log qu’un message envoyé par le noyau linux peut adopter, à partir delevel 0et décroissant en gravité ‘jusqu’àlevel 7: l’identifiant de niveau de log le plus bas, le contexte le plus critique.,
Lorsqu’un niveau de journal est défini par défaut pour la console, de manière persistante ou temporaire, il agit comme un filtre, de sorte que seuls les messages avec un niveau de journal inférieur à celui-ci, (donc les messages avec une gravité plus élevée) sont affichés. Voyons brièvement comment les niveaux de journal sont organisés: le premier niveau de journal est0, identifié par la chaîneKERN_EMERG. C’est le niveau le plus élevé par ordre de gravité: il est adopté par les messages sur l’instabilité du système ou les plantages imminents.,
Loglevel1ouKERN_ALERTc’est ce qui vient immédiatement après. Ce niveau est utilisé dans les situations où l’utilisateur attention est immédiatement nécessaire.
La prochaine niveau de journal dans l’ordre de gravité estKERN_CRIT, ou loglevel2. Ce niveau de gravité est utilisé pour informer sur les erreurs critiques, à la fois liées au matériel ou au logiciel.
Loglevel3, également identifié par la chaîneKERN_ERR, c’est le suivant dans l’échelle., Les Messages adoptant ce niveau sont souvent utilisés pour informer l’utilisateur d’erreurs non critiques, comme par exemple une reconnaissance de périphérique défaillante ou problématique, ou plus généralement des problèmes liés au pilote.

SUBSCRIBE NEWSLETTER& RSS
abonnez-vous à RSS et NEWSLETTER et recevez les dernières nouvelles Linux, emplois, conseils de carrière et tutoriels.,

KERN_WARNING, ou loglevel 4 c’est le niveau de journal généralement utilisé comme valeur par défaut dans la majorité des distributions linux. Ce niveau est utilisé pour afficher des avertissements ou des messages concernant des erreurs non imminentes.
Loglevel 5 c’est KERN_NOTICE. Les Messages qui utilisent ce niveau de gravité concernent des événements qui peuvent être à noter.,
Loglevel 6 c’est KERN_INFO: c’est le niveau de log utilisé pour les messages d’information sur l’action effectuée par le noyau.
Enfin, nous avons KERN_DEBUG, ou loglevel 7, qui est principalement utilisé pour le débogage.

Comment vérifier le niveau de journal par défaut actuel

Vérifier le niveau de journal par défaut utilisé sur notre système c’est très facile. Tout ce que nous avons à faire est d’examiner le contenu du fichier /proc/sys/kernel/printk., Pour ceux d’entre vous qui ne le savent pas, /proc c’est un virtual filesystem: les fichiers qu’il contient ne sont pas réellement sur le disque,mais sont une représentation visuelle de l’état du système créé par le noyau et maintenu en mémoire. Dans ce cas, par exemple, nous pouvons utiliser le fichier mentionné ci-dessus pour interroger des informations sur le niveau de journal de console par défaut défini dans notre système. Tout ce que nous avons à faire est de lancer:

$ cat /proc/sys/kernel/printk

C’est la sortie standard de la commande:

4 4 1 7

La première valeur de notre sortie est le courant console_loglevel., C’est l’information que nous recherchions: la valeur, 4 dans ce cas, représente le niveau de log utilisé actuellement. Comme indiqué précédemment, cela signifie que seuls les messages adoptant un niveau de gravité supérieur à celui-ci seront affichés sur la console.
la deuxième valeur de la sortie représente le default_message_loglevel. Cette valeur est automatiquement utilisée pour les messages sans avoir un niveau de journal: si un message n’est pas associée à un niveau de journal, celui-ci sera utilisé pour cela.
la troisième valeur de la sortie indique l’état minimum_console_loglevel., Il indique le loglevel minimum qui peut être utilisé pour console_loglevel. Le niveau utilisé ici est 1, le plus élevé.
Enfin, la dernière valeur représente le default_console_loglevel, qui est le loglevel par défaut utilisé pour console_loglevel au démarrage.,
par souci d’exhaustivité, nous devons dire que les mêmes informations peuvent également être récupérées en utilisant la commande sysctl, en cours d’exécution:

$ sysctl kernel.printk

Modification du niveau de journal de la console par défaut

nous venons de voir comment LogLevel utilisé pour la console. Dans certaines situations, nous pouvons vouloir changer cette valeur: voyons comment nous pouvons accomplir cette tâche.
la méthode la plus simple que nous puissions utiliser est d’écrire la nouvelle valeur dans le fichier/proc/sys/kernel/printk., Ceci est cependant une solution temporaire, et le nouveau paramètre ne persistera pas un redémarrage de la machine., Disons que nous voulons changer le niveau de connexion de la console par défaut en3, voici ce que nous exécuterions:

$ echo "3" | sudo tee /proc/sys/kernel/printk

ou si vous utilisez le compterootdirectement:

# echo "3" > /proc/sys/kernel/printk

en regardant le contenu du fichier, Nous pouvons vérifier que le LogLevel est maintenant celui que nous avons spécifié dans notre commande:

$ cat /proc/sys/kernel/printk3 4 1 7

nous pouvons obtenir le même résultat en utilisant lasysctlcommande:

sudo sysctl -w kernel.printk=3

permettez-moi de le répéter: ce sont des solutions temporaires et non persistantes., Pour changer le loglevel par défaut de manière persistante, nous devons modifier le fichier/etc/default/grub, en passant le paramètreloglevelà la ligne de commande du noyau au démarrage: ci-dessus se trouve le contenu du fichier /etc/default/grub, et en surbrillance c’est le paramètre qui instructions de ligne de commande du noyau. Dans ce cas, nous avons utiliséloglevel=3, car nous voulions utiliser ce loglevel spécifique pour la console., Après avoir modifié le fichier et enregistré les modifications, nous devons recharger grub afin que la nouvelle configuration soit appliquée au prochain redémarrage: la commande pour effectuer cette opération dépend de la distribution que nous exécutons. Génériquement, la commande est la suivante:

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

sur la distribution basée sur Debian, un script wrapper est utilisé pour effectuer essentiellement la même opération:

$ sudo update-grub

la configuration grub sera mise à jour, et lors du prochain redémarrage, le niveau de journal spécifié sera adopté par défaut.,

Conclusions

dans ce tutoriel, nous avons appris comment les journaux du noyau linux sont organisés en fonction de leur niveau de gravité. Nous avons également vu comment nous pouvons modifier la configuration par défaut afin que seuls certains messages envoyés par le noyau soient affichés sur la console, en utilisant les mêmes critères. Enfin, nous avons vu comment rendre ces changements persistants.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *