Introducere în nivelurile Jurnalului nucleului Linux

Introducere în nivelurile Jurnalului nucleului Linux

obiectiv

Obiectivul acestui tutorial este să învățăm despre diferitele niveluri de jurnal ale nucleului linux, cum sunt organizate și cum putem configura ce mesaje ar trebui să fie afișate pe consolă în funcție de gravitatea lor.

cerințe

  • privilegii Root pentru a edita fișierele de configurare

dificultate

ușor

Introducere

gestionarea fișierelor jurnal ale kernel-ului Linux este un aspect crucial al administrării unei mașini: jurnalele ne pot informa pur și simplu despre starea daemonului sau pot afișa mesaje sau avertismente critice., În acest tutorial, vom vedea diferitele tipuri de nivel de jurnal utilizate de kernelul linux, modul în care acestea sunt organizate în funcție de severitate și cum putem filtra mesajele afișate pe consolă în funcție de acesta.

kernel-ul Linux log niveluri

sunt de fapt opt nivele de jurnal care un mesaj trimis de către kernel-ul linux poate adopta, incepand de lalevel 0și scăderea în intensitate până cândlevel 7: cel mai mic nivel jurnal de identificare, cel mai critic context.,
când un nivel de jurnal este setat ca implicit pentru consolă, fie persistent, fie temporar, acesta acționează ca un filtru, astfel încât sunt afișate numai mesaje cu un nivel de jurnal mai mic decât acesta (prin urmare, mesaje cu o severitate mai mare). Să vedem, pe scurt, cum nivele de jurnal sunt organizate: primul jurnal de nivel este0, identificat prinKERN_EMERGstring. Acesta este cel mai înalt nivel în ordinea gravității: este adoptat prin mesaje despre instabilitatea sistemului sau accidente iminente.,
Loglevel1sauKERN_ALERTeste ceea ce vine imediat după. Acest nivel este utilizat în situațiile în care atenția utilizatorului este imediat necesară.
următorul nivel de jurnal în ordinea gravității esteKERN_CRITsau loglevel2. Acest nivel de severitate este utilizat pentru a informa despre erorile critice, atât hardware, cât și software.
Loglevel3, de asemenea, identificate prinKERN_ERRșir, este următoarea în scara., Mesajele care adoptă acest nivel sunt adesea folosite pentru a notifica utilizatorul despre erorile non-critice, cum ar fi, de exemplu, o recunoaștere a dispozitivului eșuată sau problematică sau, în general, probleme legate de șofer.

ABONEAZA-te NEWSLETTER-ul & RSS
Aboneaza-te la RSS și NEWSLETTER-ul și de a primi cele mai recente știri Linux, locuri de muncă, consiliere în carieră și tutoriale.,

KERN_WARNING, sau loglevel4este nivelul jurnal de obicei folosit ca implicit în majoritatea distribuțiilor de linux. Acest nivel este folosit pentru a afișa avertismente sau mesaje despre erori iminente.

Loglevel5esteKERN_NOTICE. Mesajele care utilizează acest nivel de severitate se referă la evenimente care pot fi de remarcat.,
Loglevel6eKERN_INFO: acesta este nivelul de jurnal folosit pentru mesaje informative despre acțiunea efectuată de către kernel.
în cele din Urmă, avemKERN_DEBUG, sau loglevel7, care este folosit în principal pentru depanare.

cum să verificați nivelul implicit al Jurnalului

verificarea loglevel-ului implicit utilizat în sistemul nostru este foarte ușor. Tot ce trebuie să facem este să examinăm conținutul fișierului/proc/sys/kernel/printk., Pentru cei dintre voi care nu știu,/procacesta este unvirtual filesystem: fișierele conținute în acesta nu sunt de fapt de pe disc,dar sunt o reprezentare vizuală a sistemului de stat creat de nucleu andmaintained în memorie. În acest caz, de exemplu, putem folosi fișierul mentionedabove pentru a interoga informații despre default console log nivelul stabilit în oursystem. Tot ce trebuie să faceți este să rulați:

$ cat /proc/sys/kernel/printk

Acest lucru este tipic de ieșire de comandă:

4 4 1 7

prima valoare în producția noastră este la curentconsole_loglevel., Aceasta este informația pe care o căutam: valoarea,4în acest caz, reprezintă nivelul jurnalului utilizat în prezent. Așa cum am spus înainte, acest lucru înseamnă că numai mesajele care adoptă un nivel de severitate mai mare decât acesta vor fi afișate pe consolă.
A doua valoare din ieșire reprezintădefault_message_loglevel. Această valoare este utilizată automat pentru mesaje fără un anumit nivel de jurnal: dacă un mesaj nu este asociat cu un nivel de jurnal, acesta va fi utilizat pentru acesta.
A treia valoare din ieșire raportează stareaminimum_console_loglevel., Acesta indică loglevel minim care poate fi utilizat pentruconsole_loglevel. Nivelul folosit aici este1, cea mai mare.
în cele din Urmă, ultima valoare reprezintădefault_console_loglevel, care este implicit loglevel folosit pentruconsole_loglevella boot.,
Pentru motive de exhaustivitate, trebuie să spunem că aceleași informații pot fi preluate, de asemenea, cu ajutorulsysctlcomandă, care rulează:

$ sysctl kernel.printk

Schimbarea default consola nivelul de jurnal

Am văzut cum a prelua informații despre actualul loglevel în utilizare pentru consola. În unele situații, este posibil să dorim să schimbăm această valoare: să vedem cum putem îndeplini această sarcină.
metoda cea mai simplă pe care o putem folosi este să scriem noua valoare în fișierul/proc/sys/kernel/printk., Aceasta este însă o soluție temporară, iar noua setare nu va persista o repornire a mașinii., Spunem că vrem să schimbăm default consola loglevel să3, aici este ceea ce ne-ar alerga:

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

Sau dacă se utilizeazărootcont direct:

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

uitându-ne la conținutul fișierului, putem verifica loglevel este acum unul am specificat în comanda noastră:

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

putem obține același rezultat folosindsysctlcommand:

sudo sysctl -w kernel.printk=3

permiteți-mi Să repet din nou: acestea sunt temporare, non-persistente soluții., Pentru a schimba implicit loglevel într-o persistentă, trebuie să modificați/etc/default/grubfișier, care treceloglevelparametru în linia de comandă a kernel-ului la pornire: de mai Sus este conținutul din fișierul /etc/default/grub fișier, și a subliniat că este parametrul care ar trebui să fie adăugate laGRUB_CMDLINE_LINUX, care conține nucleul de linie de comandă instrucțiuni. În acest caz am folositloglevel=3, deoarece am vrut să folosim acel loglevel specific pentru consolă., După modificarea fișierului și salvarea modificărilor, trebuie să reîncărcăm grub, astfel încât noua configurație să fie aplicată la următoarea repornire: comanda pentru a efectua această operație depinde de distribuția pe care o rulăm. Generic command este:

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

Pe Debian-based de distribuție, un script înveliș este utilizat practic pentru a efectua aceeași operațiune:

$ sudo update-grub

De configurare grub va fi actualizat, iar la repornire, specificat nivelul de jurnal va fi adoptat ca default.,

concluzii

în acest tutorial am învățat cum sunt organizate jurnalele kernel-ului linux în funcție de nivelul lor de severitate. De asemenea, am văzut cum putem modifica configurarea implicită, astfel încât doar anumite mesaje trimise de kernel să fie afișate pe consolă, folosind aceleași criterii. În cele din urmă am văzut cum să facem aceste schimbări persistente.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *