Einführung in die Linux -Kernel -Protokollpegel

Einführung in die Linux -Kernel -Protokollpegel

Zielsetzung

Das Ziel dieses Tutorials ist es, über die verschiedenen Linux -Kernel -Protokollebenen zu erfahren, wie sie organisiert sind und wie wir abhängig von ihrem Schweregrad auf der Konsole einrichten können, welche Nachrichten auf der Konsole angezeigt werden sollten.

Anforderungen

  • Root -Berechtigungen zum Bearbeiten von Konfigurationsdateien

Schwierigkeit

EINFACH

Einführung

Die Verwaltung von Linux -Kernel -Protokolldateien ist ein entscheidender Aspekt einer Maschinenverwaltung: Protokolle können uns einfach über den Zustand des Daemons informieren oder kritische Nachrichten oder Warnungen anzeigen. In diesem Tutorial sehen wir den verschiedenen vom Linux -Kernel verwendeten Protokollentyp, wie sie nach Schweregrad organisiert sind und wie wir je nach Konsole Nachrichten filtern können, die angezeigt werden können.

Die Linux -Kernel -Protokollpegel

Es gibt im Grunde acht Protokollebenen, die eine vom Linux -Kernel gesendete Nachricht annehmen kann, beginnend von der von Stufe 0 und abnimmt die Schwere 'bis Stufe 7: Der Kenner der niedrigsten Log -Ebene, der kritischste Kontext.

Wenn eine Protokollebene als Standard für die Konsole festgelegt wird, entweder persistent oder vorübergehend, wirkt es als Filter, so dass nur Nachrichten mit einer niedrigeren Protokollebene (daher Nachrichten mit höherem Schweregrad angezeigt werden) angezeigt werden. Lassen Sie uns kurz sehen, wie die Protokollebenen organisiert sind:

Die erste Protokollebene ist 0, identifiziert durch die Kern_emerg Saite. Dies ist die höchste Ebene in der Reihenfolge des Schweregrads: Es wird durch Nachrichten über Systeminstabilität oder bevorstehende Abstürze übernommen.

Loglevel 1, oder Kern_alert Es ist das, was sofort danach kommt. Diese Ebene wird in Situationen verwendet, in denen die Aufmerksamkeit der Benutzer sofort erforderlich ist.

Die nächste Protokollebene in der Reihenfolge der Schwere ist Kern_crit, oder loglevel 2. Dieser Schweregrad wird verwendet, um über kritische Fehler, sowohl Hardware als auch Software zu tun, zu informieren.

Loglevel 3, auch identifiziert durch die Kern_err String, es ist der nächste in der Skala. Nachrichten, die diese Ebene übernehmen.



Kern_Warning, oder loglevel 4 Es ist die Protokollebene, die normalerweise als Standard in der Mehrheit der Linux -Verteilungen verwendet wird. Mit dieser Ebene wird es verwendet, um Warnungen oder Nachrichten über nicht bevorstehende Fehler anzuzeigen.

Loglevel 5 es ist Kern_notice. Nachrichten, die diese Schwere nutzen.

Loglevel 6 es ist Kern_info: Dies ist die Protokollebene, die für Informationsnachrichten über die vom Kernel ausgeführte Aktion verwendet wird.

Schließlich haben wir Kern_debug, oder loglevel 7, das wird hauptsächlich zum Debuggen verwendet.

So überprüfen Sie die aktuelle Standardprotokollebene

Überprüfen Sie die Standard -Loglevel, die auf unserem System verwendet wird. Es ist sehr einfach. Alles, was wir tun müssen, ist, den Inhalt des /proc/sys/kernel/printk Datei. Für diejenigen unter Ihnen, die es nicht wissen, /proc es ist ein Virtueller Dateisystem: Die darin enthaltenen Dateien befinden sich nicht tatsächlich auf der Festplatte, sondern sind eine visuelle Darstellung des vom Kernel erstellten Systemzustands. In diesem Fall können wir beispielsweise die oben genannte Datei verwenden, um Informationen über die in unserem System festgelegte Standardkonsolenprotokollebene abzufragen. Alles, was wir tun müssen, ist zu rennen:

$ cat/proc/sys/kernel/printk

Dies ist die typische Ausgabe des Befehls:

4 4 1 7

Der erste Wert in unserer Ausgabe ist der Strom console_loglivel. Dies sind die Informationen, nach denen wir gesucht haben: Der Wert, 4 In diesem Fall repräsentiert die derzeit verwendete Protokollebene. Wie bereits erwähnt, werden nur Nachrichten auf der Konsole angezeigt.

Der zweite Wert im Ausgang repräsentiert die default_message_loglivel. Dieser Wert wird automatisch für Nachrichten ohne bestimmte Protokollebene verwendet: Wenn eine Meldung nicht einer Protokollebene zugeordnet ist, wird dieser dafür verwendet.

Der dritte Wert in der Ausgabe meldet die minimum_console_loglivel Status. Es zeigt das minimale Lobel an, für das verwendet werden kann console_loglivel. Das Level, das hier verwendet wird, ist es 1, das höchste.

Schließlich repräsentiert der letzte Wert die default_console_loglivel, Welches ist der Standard -Loglevel, für das verwendet wird console_loglivel zur Bootzeit.

Aus Vollständigkeit müssen wir sagen, dass dieselben Informationen auch durch die Verwendung der verwendet werden können sysctl Befehl, Lauf:

$ sysctl kernel.printk


Ändern der Standardkonsolenprotokollebene

Wir haben gerade gesehen, wie Sie Informationen über die aktuelle Loglevel für die Konsole abrufen können. In einigen Situationen möchten wir diesen Wert möglicherweise ändern: Lassen Sie uns sehen, wie wir diese Aufgabe erfüllen können.

Die unkomplizierteste Methode, die wir verwenden können, besteht darin, den neuen Wert in die zu schreiben /proc/sys/kernel/printk Datei. Dies ist jedoch eine vorübergehende Lösung, und die neue Einstellung bleibt einen Maschinen -Neustart nicht bestehen. Sagen Sie, wir möchten die Standardkonsole Loglevel ändern 3, Hier ist, was wir laufen würden:

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

Oder wenn Sie die verwenden Wurzel Konto direkt:

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

Durch die Betrachtung des Inhalts der Datei können wir überprüfen, ob das Loglevel jetzt in unserem Befehl angegeben ist:

$ cat/proc/sys/kernel/printk 3 4 1 7 

Wir können das gleiche Ergebnis mit dem erhalten sysctl Befehl:

sudo sysctl -w -Kernel.printk = 3

Lassen Sie es mich noch einmal wiederholen: Dies sind vorübergehende, nicht-persistente Lösungen. Um das Standard -Loglevel auf anhaltende Weise zu ändern, müssen wir die ändern /etc/Standard/grub Datei, übergeben die Loglevel Parameter zur Kernel -Befehlszeile beim BOOT:

Grub_timeout = 5 grub_distributor = "$ (SED, Release .*$ ,, g ' /etc /system-release) "grub_default = gespeichert grub_disable_submenu = true grub_terminal_output =" console "grub_cmdline_linux ="loglevel = 3 Resume = UUID = DF5A0685-43F8-433A-8611-57335A10CA8D "grub_disable_Recovery =" true " 

Oben ist der Inhalt der Datei/etc/Standard-/Grub -Datei und hervorgehoben, dass es sich um den Parameter handelt, der hinzugefügt werden sollte Grub_cmdline_linux, die die Kernel -Befehlszeilenanweisungen enthält. In diesem Fall haben wir verwendet loglevel = 3, Da wir dieses spezielle Loglevel für die Konsole verwenden wollten. Nachdem wir die Datei geändert und die Änderungen gespeichert haben, müssen wir GRUB neu laden, damit die neue Konfiguration beim nächsten Neustart angewendet wird: Der Befehl zur Ausführung dieser Operation hängt von der von uns ausgeführten Verteilung ab. Generell ist der Befehl::

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

Bei der Debian-basierten Distribution wird ein Wrapper-Skript verwendet, um den gleichen Vorgang im Grunde auszuführen:

$ sudo Update-Grub

Die GRUB -Konfiguration wird aktualisiert und beim nächsten Neustart wird die angegebene Protokollebene als Standardeinstellung übernommen.

Schlussfolgerungen

In diesem Tutorial haben wir erfahren, wie die Linux -Kernelprotokolle je nach Schweregrad organisiert sind. Wir haben auch gesehen, wie wir das Standard -Setup so ändern können, dass nur bestimmte Nachrichten, die vom Kernel gesendet werden. Schließlich haben wir gesehen, wie wir diese Veränderungen anhaltend machen können.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Erweiterte Protokollierung und Prüfung unter Linux
  • So verwalten und Fehlerbehebung Kubernetes -Protokolle
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • Linux -Download
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Installieren Sie Arch Linux in VMware Workstation
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…