cel
celem tego samouczka jest poznanie różnych poziomów dziennika jądra Linuksa, jak są one zorganizowane i jak możemy ustawić, jakie komunikaty mają być wyświetlane na konsoli w zależności od ich wagi.
wymagania
- uprawnienia roota do edycji plików konfiguracyjnych
trudność
łatwe
wprowadzenie
Zarządzanie plikami logów jądra Linuksa jest jednym z kluczowych aspektów administracji maszyny: dzienniki mogą po prostu informować nas o stanie demona lub wyświetlać krytyczne wiadomości lub ostrzeżenia., W tym samouczku zobaczymy różne typy poziomów logów używanych przez jądro Linuksa, jak są one zorganizowane według ważności i jak możemy filtrować wiadomości wyświetlane na konsoli w zależności od tego.
poziomy logów jądra Linuksa
istnieje zasadniczo osiem poziomów logów, które może przyjąć wiadomość wysłana przez jądro Linuksa, zaczynając odlevel 0
I zmniejszając wagę 'dolevel 7
: najniższy identyfikator poziomu logów, najbardziej krytyczny kontekst.,
gdy poziom dziennika jest ustawiony jako domyślny dla konsoli, uporczywie lub tymczasowo, działa on jako filtr, tak że wyświetlane są tylko wiadomości o niższym poziomie dziennika (a więc wiadomości o wyższym stopniu ważności). Zobaczmy krótko, jak są zorganizowane poziomy dziennika: pierwszy poziom dziennika to0
, identyfikowany przez łańcuchKERN_EMERG
. Jest to najwyższy poziom w kolejności ważności: jest przyjmowany przez wiadomości o niestabilności systemu lub nieuchronnych awariach.,
Loglevel 1
, lub KERN_ALERT
jest to, co przychodzi natychmiast po. Poziom ten jest używany w sytuacjach, w których natychmiast wymagana jest uwaga użytkownika.
kolejnym poziomem dziennika w kolejności ważności jest KERN_CRIT
, lub loglevel 2
. Ten poziom istotności jest używany do informowania o krytycznych błędach, zarówno związanych ze sprzętem, jak i oprogramowaniem.
Loglevel 3
, również identyfikowany przez ciąg KERN_ERR
, jest kolejnym w skali., Wiadomości przyjmujące ten poziom są często używane do powiadamiania Użytkownika o niekrytycznych błędach, takich jak na przykład nieudane lub problematyczne rozpoznawanie urządzeń lub ogólniej problemy związane ze sterownikiem.
Zapisz się do RSS i Newslettera i otrzymuj najnowsze wiadomości o Linuksie, pracę, porady zawodowe i poradniki.,
KERN_WARNING
lub loglevel 4
jest to poziom dziennika zwykle używany jako domyślny w większości dystrybucji Linuksa. Ten poziom jest używany do wyświetlania ostrzeżeń lub komunikatów o nieodwracalnych błędach.
Loglevel 5
jest to KERN_NOTICE
. Wiadomości, które używają tego poziomu nasilenia są o wydarzeniach, które mogą być warte odnotowania.,
Loglevel6
jest toKERN_INFO
: jest to poziom dziennika używany do komunikatów informacyjnych o akcji wykonywanej przez jądro.
na koniec mamy KERN_DEBUG
, lub loglevel 7
, który jest używany głównie do debugowania.
Jak sprawdzić aktualny Domyślny poziom logowania
sprawdzanie domyślnego poziomu logowania używanego w naszym systemie jest bardzo proste. Wystarczy sprawdzić zawartość pliku /proc/sys/kernel/printk
., Dla tych z Was, którzy nie wiedzą, /proc
jest to virtual filesystem
: pliki w nim zawarte nie są w rzeczywistości na dysku,ale są wizualną reprezentacją stanu systemu utworzonego przez jądro i utrzymywanego w pamięci. W tym przypadku, na przykład, możemy użyć wspomnianego pliku do odpytywania informacji o domyślnym poziomie dziennika konsoli ustawionym w naszym systemie. Wystarczy uruchomić:
$ cat /proc/sys/kernel/printk
jest to typowe wyjście polecenia:
4 4 1 7
pierwszą wartością w naszym wyjściu jest bieżący console_loglevel
., Jest to informacja, której szukaliśmy: wartość 4
w tym przypadku reprezentuje aktualnie używany poziom dziennika. Jak wspomniano wcześniej oznacza to, że na konsoli będą wyświetlane tylko wiadomości o wyższym poziomie ważności.
druga wartość na wyjściu przedstawia default_message_loglevel
. Wartość ta jest automatycznie używana dla wiadomości bez określonego poziomu dziennika: jeśli wiadomość nie jest powiązana z poziomem dziennika, ten będzie dla niej używany.
trzecia wartość w wyjściu informuje o stanieminimum_console_loglevel
., Wskazuje minimalny poziom logowania, który może być użyty dla console_loglevel
. Poziom tutaj używany to 1
, najwyższy.
na koniec ostatnia wartość reprezentuje default_console_loglevel
, który jest domyślnym poziomem logowania używanym dla console_loglevel
podczas rozruchu.,
ze względu na kompletność, musimy powiedzieć, że te same informacje można pobrać również za pomocą polecenia sysctl
, uruchamiając:
$ sysctl kernel.printk
zmieniając Domyślny poziom dziennika konsoli
LogLevel w użyciu dla konsoli. W niektórych sytuacjach możemy chcieć zmienić tę wartość: zobaczmy, jak możemy wykonać to zadanie.
najprostszą metodą, jaką możemy zastosować, jest zapis nowej wartości do pliku /proc/sys/kernel/printk
., Jest to jednak rozwiązanie tymczasowe, a nowe ustawienie nie będzie utrzymywać restartu maszyny., Powiedzmy, że chcemy zmienić domyślny poziom logowania konsoli na 3
, oto co uruchomimy:
$ echo "3" | sudo tee /proc/sys/kernel/printk
lub jeśli korzystamy z root
konto bezpośrednio:
# echo "3" > /proc/sys/kernel/printk
patrząc na zawartość plik, możemy zweryfikować LogLevel jest teraz ten, który podaliśmy w naszym poleceniu:
$ cat /proc/sys/kernel/printk3 4 1 7
możemy uzyskać ten sam wynik używając sysctl
polecenie:
sudo sysctl -w kernel.printk=3
powtórzę to jeszcze raz: są to tymczasowe, nietrwałe rozwiązania., Aby zmienić domyślny poziom logowania w trwały sposób, musimy zmodyfikować plik /etc/default/grub
, przekazując parametr loglevel
do wiersza poleceń jądra podczas rozruchu: powyżej znajduje się Zawartość pliku /etc/default/grub i zaznaczono, że jest to parametr, który powinien zostać dodany do GRUB_CMDLINE_LINUX
, który zawiera instrukcje wiersza poleceń jądra. W tym przypadku użyliśmy loglevel=3
, ponieważ chcieliśmy użyć tego konkretnego loglevel dla konsoli., Po zmodyfikowaniu pliku i zapisaniu zmian, musimy przeładować grub tak, aby nowa konfiguracja została zastosowana przy następnym restarcie: polecenie wykonania tej operacji zależy od dystrybucji, którą uruchamiamy. Ogólnie polecenie to:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
w dystrybucji opartej na Debianie skrypt wrappera jest używany do wykonywania tej samej operacji:
$ sudo update-grub
konfiguracja grub zostanie zaktualizowana, a przy następnym restarcie, określony poziom dziennika zostanie przyjęty jako domyślny.,
wnioski
w tym tutorialu dowiedzieliśmy się, w jaki sposób dzienniki jądra Linuksa są zorganizowane w zależności od poziomu ich ważności. Zobaczyliśmy również, jak możemy zmienić domyślną konfigurację tak, aby tylko niektóre wiadomości wysyłane przez jądro były wyświetlane na konsoli, używając tych samych kryteriów. W końcu zobaczyliśmy, jak sprawić, by te zmiany stały się trwałe.