Wprowadzenie do poziomów dziennika jądra Linux

Wprowadzenie do poziomów dziennika jądra Linux

Cel

Celem tego samouczka jest poznanie różnych poziomów dziennika jądra Linux, sposobu ich zorganizowania i sposobu skonfigurowania, jakie wiadomości powinny być wyświetlane na konsoli, w zależności od ich nasilenia.

Wymagania

  • Przywileje roota do edytowania plików konfiguracyjnych

Trudność

ŁATWY

Wstęp

Zarządzanie plikami dziennika jądra Linux jest jednym kluczowym aspektem administracji maszynowej: dzienniki mogą po prostu poinformować nas o stanie demona lub pokazać krytyczne wiadomości lub ostrzeżenia. W tym samouczku zobaczymy różnego rodzaju poziomu dziennika używanego przez jądro Linux, jak są one zorganizowane przez nasilenie i jak możemy filtrować wiadomości wyświetlane na konsoli w zależności od tego.

Poziomy dziennika jądra Linux

Istnieje w zasadzie osiem poziomów dziennika, które komunikat wysłany przez jądro Linux może przyjąć, zaczynając od Poziom 0 i zmniejszenie nasilenia Poziom 7: najniższy identyfikator poziomu dziennika, najważniejszy kontekst.

Gdy poziom dziennika jest ustawiony jako domyślnie konsoli, wyświetlane są trwałe lub tymczasowo, działa jako filtr, tak że wyświetlane są tylko komunikaty o poziomie dziennika, (dlatego wiadomości o większym nasileniu). Zobaczmy krótko, jak zorganizowane są poziomy dziennika:

Pierwszy poziom dziennika to 0, zidentyfikowane przez Kern_emerg strunowy. Jest to najwyższy poziom w kolejności nasilenia: jest przyjmowany przez wiadomości o niestabilności systemu lub nieuchronnych awariach.

Loglevel 1, Lub Kern_alert To jest to, co pojawia się natychmiast po. Ten poziom jest używany w sytuacjach, w których uwaga użytkownika jest natychmiastowa.

Następny poziom dziennika w kolejności nasilenia jest Kern_crit, lub LOTLEVEL 2. Ten poziom nasilenia służy do informowania o błędach krytycznych, zarówno związanych ze sprzętem, jak i oprogramowaniem.

Loglevel 3, zidentyfikowane również przez Kern_err ciąg, to następny w skali. Wiadomości przyjmujące ten poziom są często używane do powiadomienia użytkownika o błędach niekrytycznych, jak na przykład nieudane lub problematyczne rozpoznawanie urządzeń lub bardziej ogólnie problemy związane z sterownikiem.



Kern_Warning, lub LOTLEVEL 4 Jest to poziom dziennika zwykle używany jako domyślny w większości rozkładów Linux. Ten poziom, którego używany jest do wyświetlania ostrzeżeń lub wiadomości o nieuchwytnych błędach.

Loglevel 5 jego Kern_notice. Wiadomości, które wykorzystują ten poziom ciężkości, dotyczą wydarzeń, które warto zwrócić uwagę.

Loglevel 6 jego Kern_info: Jest to poziom dziennika używany do wiadomości informacyjnych o akcji wykonanej przez jądro.

Wreszcie mamy Kern_debug, lub LOTLEVEL 7, który służy głównie do debugowania.

Jak sprawdzić bieżący domyślny poziom dziennika

Sprawdzanie domyślnego logowania używanego w naszym systemie jest bardzo łatwe. Wszystko, co musimy zrobić, to zbadać treść /proc/sys/jądro/printk plik. Dla tych z was, którzy nie wiedzą, /Proc to jest Wirtualny system plików: Pliki zawarte w nim nie są w rzeczywistości na dysku, ale są wizualną reprezentacją stanu systemowego stworzonego przez jądro i utrzymywane w pamięci. W takim przypadku na przykład możemy użyć powyższego pliku, aby zapytać o informacje na temat domyślnego poziomu dziennika konsoli w naszym systemie. Wszystko, co musimy zrobić, to uruchomić:

$ cat/proc/sys/jądro/printk

Jest to typowe dane wyjściowe polecenia:

4 4 1 7

Pierwszą wartością w naszym wyjściu jest bieżący console_loglevel. To są informacje, których szukaliśmy: wartość, 4 W takim przypadku reprezentuje obecnie używany poziom dziennika. Jak powiedziano wcześniej, oznacza to, że tylko wiadomości przyjmujące poziom nasilenia wyższy niż on, zostaną wyświetlone na konsoli.

Druga wartość w wyjściu reprezentuje default_message_loglevel. Ta wartość jest automatycznie używana do komunikatów bez określonego poziomu dziennika: jeśli komunikat nie jest powiązany z poziomem dziennika, ten zostanie do niej używany.

Trzecia wartość w wyjściach informuje minimum_console_loglevel status. Wskazuje minimalny poziom logowania, do którego można użyć console_loglevel. Poziom tutaj jest używany 1, najwyższy.

Wreszcie ostatnia wartość reprezentuje default_console_loglevel, który jest domyślnym logiem używanym console_loglevel w czasie rozruchu.

Ze względu na kompletność musimy powiedzieć, że te same informacje można również pobrać, używając Sysctl polecenie, uruchamianie:

$ sysctl jądro.Prink


Zmiana domyślnego poziomu dziennika konsoli

Właśnie widzieliśmy, jak pobrać informacje o bieżącym poziomie logowania 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 użyć, jest napisanie nowej wartości do /proc/sys/jądro/printk plik. Jest to jednak rozwiązanie tymczasowe, a nowe ustawienie nie utrzyma ponownego uruchomienia maszyny. Powiedzmy, że chcemy zmienić domyślny logowanie konsoli na 3, Oto, co byśmy uruchomili:

$ echo „3” | sudo tee/proc/sys/jądro/printk

Lub jeśli używasz źródło Konto bezpośrednio:

# echo "3">/proc/sys/jądro/printk

Patrząc na zawartość pliku, możemy sprawdzić, czy logowanie jest teraz tym, które określono w naszym poleceniu:

$ cat/proc/sys/jądro/printk 3 4 1 7 

Możemy uzyskać ten sam wynik za pomocą Sysctl Komenda:

jądro sudo sysctl -w.PrintK = 3

Powtórzę to ponownie: są to tymczasowe, nieprzyżarowe rozwiązania. Aby zmienić domyślną logowanie w trwałym sposób, musimy zmodyfikować /etc/default/grub plik, przekazanie Loglevel parametr do wiersza polecenia jądra w rozruchu:

Grub_timeout = 5 Grub_distributor = "$ (sed 's, wydanie .*$ ,, g ' /etc /system-release) „Grub_default = Saved Grub_Disable_Submenu = True Grub_Minal_output =" Console "Grub_Cmdline_linux ="loglevel = 3 Resume = uuid = df5a0685-43f8-433a-8611-57335a10ca8d „Grub_disable_reCovery =„ True ” 

Powyżej znajduje się zawartość pliku/etc/default/grub i podświetlony jest to parametr, do którego należy dodać 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 poziomu dziennika dla konsoli. Po zmodyfikowaniu pliku i zapisaniu zmian musimy ponownie załadować GRUB, aby nowa konfiguracja została zastosowana przy następnym ponownym uruchomieniu: Polecenie do wykonania tej operacji zależy od działanego rozkładu. Ogólnie polecenie to:

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

W dystrybucji opartej na debian skrypt opakowania służy zasadniczo do wykonywania tej samej operacji:

$ sudo aktualizacja Grub

Konfiguracja GRUB zostanie zaktualizowana, a przy następnym ponownym uruchomieniu określony poziom dziennika zostanie przyjęty jako domyślny.

Wnioski

W tym samouczku dowiedzieliśmy się, w jaki sposób dzienniki jądra Linux są zorganizowane w zależności od poziomu nasilenia. Widzieliśmy również, w jaki sposób możemy zmienić domyślną konfigurację, aby na konsoli były wyświetlane tylko niektóre wiadomości wysyłane przez jądro. Wreszcie widzieliśmy, jak uruchomić te zmiany.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Zaawansowane rejestrowanie i audyt w systemie Linux
  • Jak zarządzać i rozwiązywać problemy z dziennikami Kubernetes
  • Linux Pliki konfiguracyjne: Top 30 Najważniejsze
  • Pobierz Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Czy Linux może uzyskać wirusy? Badanie podatności Linuksa…