Introduktion till Linux kernel log levels

Introduktion till Linux kernel log levels

Objective

syftet med denna handledning är att lära sig om de olika linux kernel log levels, hur de är organiserade och hur vi kan ställa in vilka meddelanden som ska visas på konsolen beroende på deras svårighetsgrad.

krav

  • Root-privilegier för att redigera konfigurationsfiler

svårighet

lätt

introduktion

hanteringen av Linux-kärnloggfiler är en viktig aspekt av en maskinadministration: loggar kan helt enkelt informera oss om tillståndet för demonen, eller visa kritiska meddelanden eller varningar., I denna handledning kommer vi att se den olika typen av loggnivå som används av linux-kärnan, hur de organiseras av svårighetsgrad och hur vi kan filtrera meddelanden som visas på konsolen beroende på den.

linuxkärnans loggnivåer

det finns i princip åtta loggnivåer som ett meddelande som skickas av Linuxkärnan kan anta, frånlevel 0och minskar i svårighetsgrad ’tilllevel 7: den lägsta lognivåidentifieraren, det mest kritiska sammanhanget.,
när en loggnivå är inställd som standard för konsolen, antingen envist eller tillfälligt, fungerar den som ett filter, så att endast meddelanden med en loggnivå som är lägre än den visas (därför visas meddelanden med högre svårighetsgrad). Låt oss kortfattat se hur loggnivåer organiseras: den första loggnivån är0, identifierad avKERN_EMERGsträngen. Detta är den högsta nivån i svårighetsgrad: det antas av meddelanden om systemets instabilitet eller överhängande kraschar.,
Loglevel1, ellerKERN_ALERTdet är vad som kommer omedelbart efter. Denna nivå används i situationer där användarens uppmärksamhet omedelbart krävs.
Nästa loggnivå i svårighetsgrad ärKERN_CRIT, eller loglevel2. Denna svårighetsgrad används för att informera om kritiska fel, både hårdvara eller mjukvara relaterade.
Loglevel3, identifieras också avKERN_ERRsträngen, det är nästa i skalan., Meddelanden som antar denna nivå används ofta för att meddela användaren om icke-kritiska fel, som till exempel ett misslyckat eller problematiskt enhetsigenkänning, eller mer allmänt drivrutinsrelaterade problem.

prenumerera nyhetsbrev& RSS
prenumerera på RSS och nyhetsbrev och få senaste Linux nyheter, jobb, karriärråd och handledning.,

KERN_WARNING, eller loglevel4det är loggnivån som vanligtvis används som standard i majoriteten av linux-distributioner. Den här nivån används för att visa varningar eller meddelanden om icke överhängande fel.
Loglevel5det ärKERN_NOTICE. Meddelanden som använder denna svårighetsgrad handlar om händelser som kan vara värt att notera.,
Loglevel

6det ärKERN_INFO: det här är loggnivån som används för informationsmeddelanden om åtgärden som utförs av kärnan.
Slutligen har viKERN_DEBUG, eller loglevel7, som huvudsakligen används för felsökning.

så här kontrollerar du den nuvarande standardloggnivån

kontrollera standardloggnivån som används på vårt system det är väldigt enkelt. Allt vi behöver göra är att undersöka innehållet i filen/proc/sys/kernel/printk., För er som inte vet,/procdet är envirtual filesystem: filerna som finns i den är inte faktiskt på disken,men är en visuell representation av systemtillståndet som skapats av kärnan ochupprätthålls i minnet. I det här fallet kan vi till exempel använda filen mentionedabove för att fråga information om standardkonsolloggnivån i oursystem. Allt vi behöver göra är att köra:

$ cat /proc/sys/kernel/printk

detta är den typiska produktionen av kommandot:

4 4 1 7

det första värdet i vår utgång är den nuvarandeconsole_loglevel., Det här är den information vi letade efter: värdet,4I det här fallet representerar loggnivån som för närvarande används. Som sagt innan detta innebär att endast meddelanden som antar en allvarlighetsgrad högre än den, kommer att visas på konsolen.
det andra värdet i utdata representerardefault_message_loglevel. Detta värde används automatiskt för meddelanden utan en specifik loggnivå: om ett meddelande inte är associerat med en loggnivå, kommer den här att användas för den.
det tredje värdet i utmatningsrapporternaminimum_console_loglevelstatus., Den anger minsta loglevel som kan användas förconsole_loglevel. Nivån här använde den är1, den högsta.
slutligen representerar det sista värdetdefault_console_loglevel, vilket är standardloggnivån som används förconsole_loglevelvid uppstartstiden.,
för fullständighetens skull måste vi säga att samma information också kan hämtas genom att använda kommandotsysctl, som kör:

$ sysctl kernel.printk

ändra standardkonsolloggnivån

vi såg bara hur man hämtar information om den aktuella loglevel som används för konsolen. I vissa situationer kanske vi vill ändra det värdet: låt oss se hur vi kan utföra denna uppgift.
Den enklaste metoden vi kan använda är att skriva det nya värdet till filen/proc/sys/kernel/printk., Detta är dock en tillfällig lösning, och den nya inställningen kommer inte att bestå av en omstart av datorn., Säg att vi vill ändra standard-konsolen loglevel till3här är vad vi skulle köra:

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

Eller om du använderrootkonto direkt:

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

Genom att titta på innehållet i filen, kan vi kontrollera det loglevel nu är det vi som anges i våra kommando:

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

Vi kan få samma resultat genom att användasysctlkommando:

sudo sysctl -w kernel.printk=3

Låt mig upprepa det igen: detta är tillfälliga, icke-beständiga lösningar., För att ändra standardloggnivån på ett ihållande sätt måste vi ändra/etc/default/grub– filen, skickaloglevel– parametern till kärnans kommandorad vid uppstart: ovan är innehållet i/etc / default / grub-filen, och markerade det är parametern som ska läggas tillGRUB_CMDLINE_LINUX, som innehåller instruktionerna för kärnans kommandorad. I det här fallet använde viloglevel=3, eftersom vi ville använda den specifika logleveln för konsolen., Efter att ha ändrat filen och sparat ändringarna måste vi ladda om grub så att den nya konfigurationen kommer att tillämpas vid nästa omstart: kommandot för att utföra denna operation beror på fördelningen vi kör. Generellt är kommandot:

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

på Debianbaserad distribution används ett wrapper-skript för att i princip utföra samma operation:

$ sudo update-grub

grub-konfigurationen kommer att uppdateras, och vid nästa omstart kommer den angivna loggnivån att antas som standard.,

slutsatser

i den här handledningen har vi lärt oss hur linuxkärneloggarna organiseras beroende på deras allvarlighetsgrad. Vi såg också hur vi kan ändra standardinställningen så att endast vissa meddelanden som skickas av kärnan visas på konsolen, med samma kriterier. Slutligen såg vi hur man gjorde dessa förändringar ihållande.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *