Inleiding tot de Linux kernel log levels

Inleiding tot de Linux kernel log levels


Objective

het doel van deze tutorial is om meer te leren over de verschillende linux kernel log levels, hoe ze zijn georganiseerd, en hoe we kunnen instellen welke berichten op de console moeten worden weergegeven, afhankelijk van hun ernst.

vereisten

  • Root privileges om configuratiebestanden te bewerken

moeilijkheidsgraad

eenvoudig

Inleiding

het beheer van Linux kernel logbestanden is een cruciaal aspect van een machinebeheer: logbestanden kunnen ons eenvoudig informeren over de status van de daemon, of kritieke berichten of waarschuwingen tonen., In deze tutorial zullen we het verschillende type logniveau zien dat door de linux kernel wordt gebruikt, hoe ze zijn georganiseerd op basis van ernst en hoe we de berichten kunnen filteren die op de console worden weergegeven afhankelijk van deze.

de Linux kernel log levels

er zijn in principe acht log levels die een bericht van de linux kernel kan aannemen, beginnend van level 0 en afnemend in ernst ‘tot level 7: De laagste log level identifier, de meest kritische context.,
Wanneer een logniveau is ingesteld als de standaard voor de console, hetzij permanent of Tijdelijk, fungeert het als een filter, zodat alleen berichten met een logniveau lager dan het, (dus berichten met een hogere ernst) worden weergegeven. Laten we eens kijken, kort, hoe log niveaus worden georganiseerd: het eerste log niveau is 0, geïdentificeerd door de KERN_EMERG string. Dit is het hoogste niveau in volgorde van ernst: het wordt overgenomen door berichten over instabiliteit van het systeem of dreigende crashes.,
Loglevel 1, of KERN_ALERT Het is wat onmiddellijk erna komt. Dit niveau wordt gebruikt in situaties waar de aandacht van de gebruiker onmiddellijk vereist is.
het volgende logniveau in volgorde van ernst is KERN_CRIT, of loglevel 2. Dit niveau van ernst wordt gebruikt om te informeren over kritieke fouten, zowel hardware of software gerelateerde.
Loglevel 3, ook geïdentificeerd door de KERN_ERR tekenreeks, het is de volgende in de schaal., Berichten die dit niveau aannemen, worden vaak gebruikt om de gebruiker te informeren over niet-kritieke fouten, zoals bijvoorbeeld een mislukte of problematische apparaatherkenning, of meer in het algemeen driver-gerelateerde problemen.

abonneer nieuwsbrief & RSS
abonneer u op RSS en nieuwsbrief en ontvang Het Laatste Linux Nieuws, jobs, loopbaanadvies en tutorials.,

KERN_WARNING, of loglevel4Het is het logniveau dat gewoonlijk wordt gebruikt als standaard in de meeste linux-distributies. Dit niveau wordt gebruikt om waarschuwingen of berichten over niet-dreigende fouten weer te geven.
Loglevel 5 het is KERN_NOTICE. Berichten die dit niveau van ernst gebruiken gaan over gebeurtenissen die het vermelden waard kunnen zijn.,
Loglevel 6 het is KERN_INFO: dit is het logniveau dat wordt gebruikt voor informatieve berichten over de actie die door de kernel wordt uitgevoerd.
ten slotte hebben we KERN_DEBUG, of loglevel 7, die voornamelijk wordt gebruikt voor debuggen.

het huidige standaard logniveau controleren

het standaard logniveau controleren dat op ons systeem wordt gebruikt is heel eenvoudig. Het enige wat we hoeven te doen is de inhoud van het /proc/sys/kernel/printk bestand te onderzoeken., Voor degenen onder u die het niet weten, /proc het is een virtual filesystem: de bestanden die erin staan staan niet echt op de schijf,maar zijn een visuele weergave van de systeemstatus die door de kernel is aangemaakt en in het geheugen wordt bewaard. In dit geval kunnen we bijvoorbeeld het hierboven genoemde bestand gebruiken om informatie te vragen over het standaard consolelogniveau dat in ons systeem is ingesteld. Het enige wat we moeten doen is:

$ cat /proc/sys/kernel/printk

dit is de typische uitvoer van het commando:

4 4 1 7

de eerste waarde in onze uitvoer is de huidige console_loglevel., Dit is de informatie die we zochten: de waarde, 4 staat in dit geval voor het logniveau dat momenteel wordt gebruikt. Zoals eerder gezegd betekent dit dat alleen berichten met een hogere ernst op de console worden weergegeven.
De tweede waarde in de uitvoer vertegenwoordigt de default_message_loglevel. Deze waarde wordt automatisch gebruikt voor berichten zonder een specifiek logniveau: als een bericht niet is gekoppeld aan een logniveau, zal dit worden gebruikt.
De derde waarde in de output rapporteert deminimum_console_loglevel status., Het geeft het minimale loglevel aan dat gebruikt kan worden voor console_loglevel. Het niveau dat hier wordt gebruikt is 1, het hoogste.
ten slotte vertegenwoordigt de laatste waarde default_console_loglevel, wat het standaard loglevel is dat gebruikt wordt voor console_loglevel tijdens het opstarten.,
voor de volledigheid moeten we zeggen dat dezelfde informatie ook kan worden opgehaald met behulp van het sysctl commando, uitgevoerd:

$ sysctl kernel.printk

het standaard console logniveau wijzigen

we zagen net hoe u informatie kunt ophalen over het huidige loglevel dat gebruikt wordt voor de console. In sommige situaties willen we misschien die waarde veranderen: laten we eens kijken hoe we deze taak kunnen volbrengen.
De meest eenvoudige methode die we kunnen gebruiken, is om de nieuwe waarde naar het /proc/sys/kernel/printk bestand te schrijven., Dit is echter een tijdelijke oplossing, en de nieuwe instelling zal geen machine opnieuw opstarten., We zeggen dat we het willen veranderen van de standaard console log-niveau te 3, hier is wat we zouden lopen:

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

Of als met behulp van de root account:

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

Door te kijken naar de inhoud van het bestand, kunnen we controleren of de log-niveau is nu geven we in onze opdracht:

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

We kunnen het verkrijgen van hetzelfde resultaat met behulp van de sysctl commando:

sudo sysctl -w kernel.printk=3

ik herhaal het nogmaals: dit zijn tijdelijke, niet-permanente oplossingen., Om het standaard loglevel op een permanente manier te veranderen, moeten we de /etc/default/grub bestand wijzigen, waarbij we de loglevel parameter doorgeven aan de kernel commandoregel tijdens het opstarten: hierboven is de inhoud van het /etc/default/grub bestand, en gemarkeerd is de parameter die moet worden toegevoegd aan GRUB_CMDLINE_LINUX, die de kernel commandoregel instructies bevat. In dit geval gebruikten we loglevel=3, omdat we dat specifieke loglevel voor de console wilden gebruiken., Na het wijzigen van het bestand en het opslaan van de wijzigingen, moeten we grub herladen zodat de nieuwe configuratie zal worden toegepast bij de volgende herstart: het commando om deze operatie uit te voeren hangt af van de distributie die we draaien. In het algemeen is het commando:

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

op Debian-gebaseerde distributie wordt een wrapper script gebruikt om in principe dezelfde operatie uit te voeren:

$ sudo update-grub

de grub configuratie zal worden bijgewerkt, en bij de volgende herstart zal het opgegeven logniveau als standaard worden aangenomen.,

conclusies

In deze tutorial hebben we geleerd hoe de Linux kernel logs zijn georganiseerd afhankelijk van hun ernstniveau. We zagen ook hoe we de standaard instellingen kunnen wijzigen zodat alleen bepaalde berichten die door de kernel worden verzonden op de console worden weergegeven, met dezelfde criteria. Uiteindelijk zagen we hoe we die veranderingen blijvend konden maken.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *