Rejestrowanie zdarzeń za pomocą Syslogd i Klogd w systemie Linux

Zadania administracyjne w Linuksie są złożone w wielu sytuacjach ze względu na ilość procesów, usług i ról, które są wykonywane co sekundę, a do tego musimy dodać loginy, instalację aplikacji i nie zapominając o wszystkich zdarzeniach, które każda aplikacja rejestruje w zarządzanej dystrybucji . Na szczęście dla administratorów i personelu kontrolnego lub audytującego, mamy różne polecenia opracowane w celu ułatwienia zarządzania i kontroli zdarzeń systemowych, dlatego Solvetic skoncentruje się w tym celu na dwóch najważniejszych poleceniach. Syslog i Klogd.

Dziennik jest jak dziennik, w którym zapisywane są zdarzenia, błędy, zmiany i procesy generowane przez aplikacje lub system operacyjny, aby później móc odczytać ten zapis i określić, jakie zdarzenia miały miejsce, szczególnie w przypadku błędów lub luk. Pliki logów w systemie Linux znajdują się w katalogu / var / log System logów Linux jest zarządzany przez dwa demony:

SYSLOGDGeneruje dzienniki systemowe. Syslogd uruchamia się automatycznie po uruchomieniu systemu Linux i odpowiada za przechowywanie raportów z pracy komputera. Odbiera komunikaty z różnych części systemu, jądra i aplikacji, przechowuje je w różnych lokalizacjach, zarówno lokalnych, jak i zdalnych, zgodnie z kryteriami zdefiniowanymi w pliku konfiguracyjnym /etc/syslog.conf.

KLOGDWygeneruj dzienniki jądra. klogd kieruje komunikaty dziennika jądra do dziennika systemowego. Użytkownik może kontrolować obsługę komunikatów jądra, edytując plik konfiguracyjny syslogd. Te aplikacje klogd są szczególnie przydatne dla programistów jądra.

1. Co to jest i jak używać Syslogd w logach systemu Linux


Zobaczmy, co to jest i jak korzystać z Syslogd

Co to jest SyslogdSyslogd (Linux system logging tools), to polecenie, które daje nam rodzaj dziennika, z którego korzysta wiele nowoczesnych programów, dzięki Syslogd każda zarejestrowana wiadomość zawiera co najmniej jeden raz i jedno pole nazwy hosta, co znacznie upraszcza zadania monitorowania i łatwiej analizować.

Polecenie Syslogd ma standardowe zachowanie BSD, a nowe wersje Syslogd współdziałają w przejrzysty sposób z wersją syslog dostępną w standardowych bibliotekach, więc jeśli plik binarny połączony ze standardowymi bibliotekami współdzielonymi nie działa poprawnie, Syslogd wyświetli to zachowanie dwójkowy.

Krok 1
Główny plik konfiguracyjny to /etc/syslog.conf, a dziennik jest zwykle określony wpisami reguł. Selektor (facility.priority) i akcja są określone w każdym wierszu. Należy pamiętać, że w nowoczesnych dystrybucjach Linuksa polecenie Syslogd zostało zastąpione nowymi implementacjami Syslog, takimi jak rsyslog lub syslog-ng, więc jeśli chcemy korzystać z Syslogd, możemy je zainstalować za pomocą następującego polecenia:

 trafna instalacja inetutils-syslogd 

POWIĘKSZAĆ

Krok 2
Tam musimy wpisać literę S, aby potwierdzić pobranie i instalację Syslogd. Po zainstalowaniu możemy przejść do jego pliku konfiguracyjnego, który znajduje się w następującej ścieżce /etc/syslog.conf:

 nano /etc/syslog.conf 

POWIĘKSZAĆ

Krok 3
Znajdziemy tam wszystkie trasy, których Syslogd użyje do przechwycenia informacji. Składnia ogólnego przeznaczenia dla Syslogd jest następująca:

 syslogd [-a gniazdo] [-d] [-f plik konfiguracyjny] [-h] [-l lista hostów] [-m interwał] [-n] [-p gniazdo] [-r] [-s lista domen] [-S] [-v] [-x] 
Krok 4
Wśród dostępnych opcji mamy:

Określ dodatkowe gniazdaTen argument pozwala nam określić dodatkowe gniazda, których Syslogd powinien nasłuchiwać, jest używany w przypadku, gdy jakiś demon jest wykonywany w środowisku chroot(). Możliwe będzie wykorzystanie do 19 dodatkowych gniazd.

 - gniazdo 

Włącz tryb debugowaniaten argument aktywuje tryb debugowania, który utrzymuje Syslog na pierwszym planie, a tym samym zapisuje wiele informacji debugowania do bieżącego terminala tty.

 -D

Plik konfiguracyjnyTen argument określa alternatywny plik konfiguracyjny zamiast domyślnego pliku /etc/syslog.conf.

 -f plik konfiguracyjny 

Zablokuj zdalne przekazywanie wiadomościTen parametr uniemożliwia Syslogd przekazywanie wiadomości otrzymanych od hostów zdalnych.

 -h

Określ nazwę sieciDzięki temu parametrowi można wskazać nazwę hosta, która musi być zarejestrowana tylko za pomocą prostej nazwy hosta, a nie za pomocą FQDN.

 -l lista hostów (lista hostów) 

Zdefiniuj przedział czasuUżywając tego parametru możemy określić przedział czasu do użycia, domyślnie wartość to 20 minut.

 -m interwał 

Unikaj uruchamiania SyslodgTen parametr uniemożliwia działanie Syslogd w tle.

 -n

Ustaw gniazdo domenyPozwala nam określić alternatywne gniazdo domeny uniksowej zamiast / dev / log

 -p gniazdo

Zezwalaj na wiadomości siecioweTa opcja umożliwi instalacji odbieranie wiadomości z sieci za pomocą gniazda domeny internetowej z usługą Syslog.

 -r

Zdefiniuj nazwę domenyTen parametr określa nazwę domeny, którą należy usunąć przed zalogowaniem.

 -s lista domen 

Włącz rejestracjęWłącz pełne rejestrowanie,

 -S

Włącz aktualną wersjęWyświetl aktualną wersję Syslogd.

 -v 

POWIĘKSZAĆ

Krok 5
Podczas wykonywania dowolnej z dostępnych opcji możemy zobaczyć wszystkie zadania, które są wykonywane wewnętrznie:

POWIĘKSZAĆ

2. Sygnały w dziennikach Syslogd Linux

Krok 1
Syslogd jest w stanie zareagować na zestaw sygnałów, opcją wysłania sygnału do Syslogd jest wykonanie:

 kill -SIGNAL 'kot /var/run/syslogd.pid' 
Krok 2
Kiedy ten sygnał jest wykonywany, różne komponenty, takie jak. Syslogd jest więc praktycznym rozwiązaniem do analizy zdarzeń linuksowych.

ZGŁOSZENIETa opcja umożliwia Syslogd przeprowadzenie procesu ponownego uruchomienia, w którym wszystkie otwarte pliki zostaną zamknięte, plik konfiguracyjny zostanie ponownie odczytany, a instalacja Syslog rozpocznie się od nowa.

SIGTERMUsługa wygaśnie.

PODPISZ, ZAKOŃCZJeśli debugowanie jest włączone, są one ignorowane, w przeciwnym razie Syslogd wygaśnie.

SIGUSR1Włącz lub wyłącz debugowanie.

SIGCHLDPoczekaj na nowe wiadomości.

3. Skonfiguruj plik syslogd systemu Linux


Syslogd używa nieco innej składni w swoim pliku konfiguracyjnym niż tradycyjny oryginalny plik źródłowy BSD. Konfiguracja syslogd odbywa się poprzez plik /etc/syslogd.conf. Za pomocą tego pliku określa się, dokąd należy kierować różne wiadomości. Możesz zostawić puste linie lub skomentować całe linie za pomocą znaku "#"

Aby syslog akceptował połączenia zdalne, musimy dodać parametr -r

 SYSLOGD_OPTIONS = "- r -m 0" 
Normalnie syslogd zajmuje port 514 musimy sprawdzić czy firewall go nie blokuje aby przetestować na jakim porcie jest uruchomiony, z terminala piszemy następujący kod
 syslog grep / etc / services 
W logach usługi w tej linii widzimy, że logi "mail, cron, info" trafiają do katalogu wiadomości
 * .info; mail.none; authpriv.none; cron.none / var / log / wiadomości 
Spróbujemy wysłać wiadomość do wszystkich dzienników za pomocą następującego polecenia
 grep "Komunikat testowy" / var / log / * 
W tym przypadku widzimy, że kilka dzienników ma odmowę uprawnień, dlatego nie można ich zapisać.

Należałoby ustalić, czy konieczna jest zmiana zezwoleń, czy nie zgodnie z naszymi potrzebami. Dzienniki mają kilka poziomów priorytetów wiadomości (od najniższego do najwyższego priorytetu:

Dzienniki awarii, błędów i ostrzeżeń

 debugowanie, informacje, powiadomienie, ostrzeżenie, ostrzeżenie, błąd, błąd, krytyka, alert, alarm i panika 

Dzienniki typu wiadomościDzienniki różnych typów wiadomości

 auth, authpriv, cron, demon, kern, lpr, poczta, znak, aktualności, zabezpieczenia, syslog, użytkownik, uucp 
Najważniejsze to
  • var / log / messages: tutaj znajdziemy dzienniki, które przychodzą z priorytetowymi informacjami (informacjami), powiadomieniem (powiadomieniem) lub ostrzeżeniem (ostrzeżeniem).
  • /var/log/kern.log: tutaj przechowywane są logi jądra, wygenerowane przez klogd.
  • /var/log/auth.log: ten dziennik rejestruje loginy w systemie, czasy, kiedy robimy su, itp. Nieudane próby są odnotowywane w wierszach z informacją o nieprawidłowym typie klucza lub nieprawidłowym logowaniu.
  • / var / log / dmesg: informacje generowane przez jądro podczas uruchamiania systemu są przechowywane w tym pliku.

Te pliki dziennika gromadzą informacje przez cały czas, więc w pewnym momencie mogą zająć dużo miejsca, aby rozwiązać ten problem, możemy je skompresować lub wykonać kopię zapasową, jeśli jest to naprawdę konieczne. Niektóre zmiany, o których należy pamiętać, to:

Użycie symbolu wieloznacznegoJest używany jako symbol wieloznaczny dla wszystkich powyższych priorytetów i usług, w zależności od jego użycia (przed lub po znaku separatora `. ').

 „*” (gwiazdka) = 

Nie zaznaczaj priorytetuWskazuje, że nie ma zdefiniowanego priorytetu dla usługi wybranej linii.

 "": (Puste, spacja, null) 

Wybierz różne usługiUmożliwia określenie wielu usług o tym samym poziomie priorytetu na tej samej linii.

 "," (jeść) 

Kontroluj różne wiadomościUmożliwia kierowanie wiadomości z różnych usług i priorytetów do tego samego odbiorcy.

 ";" (średnik) 

Wybierz priorytet wiadomościDaje nam możliwość przechowywania tylko wiadomości o dokładnie określonym priorytecie.

 „=” (równe) 

4. Co to jest i jak używać Klogd w logach Linuksa

Co to jest KlogdKlogd (Kernel Log Daemon), to demon systemowy, który został opracowany do przechwytywania i rejestrowania komunikatów z jądra Linux. Funkcja polecenia Klogd koncentruje się na przechwytywaniu wielu instancji jądra, takich jak źródło, ustalanie priorytetów i rozwiązywanie adresów jądra.

W środowiskach Linux mamy dwa główne źródła informacji rejestru jądra, takie jak:

  • System plików / proc
  • Interfejs syscall (sys_syslog)
Komenda Klogd została zaprojektowana w celu wyboru najwygodniejszego źródła informacji do wyświetlania informacji, aby to osiągnąć, przede wszystkim weryfikuje obecność systemu plików / proc, który jest zamontowany, jeśli istnieje, / proc plik / kmsg jest używany jako źródło informacji o logach jądra, w przypadku gdy system plików proc nie jest zamontowany, Klogd użyje wywołania systemowego w celu uzyskania komunikatów jądra. W przypadku, gdy komunikaty jądra są przekierowywane przez demona syslogd, demon Klogd, od wersji 1.1, jest w stanie nadawać priorytety wiadomościom jądra, priorytet ten mieści się w zakresie, w którym priorytet wiadomości z jądra jest zakodowany jako pojedyncza cyfra w.

Gdy wiadomość zostanie odebrana z jądra, demon Klogd odczyta przypisany poziom priorytetu i nada mu poziom priorytetu na podstawie wiadomości syslog. Podczas korzystania z Klogd będzie również możliwa zmiana wyświetlania komunikatów jądra w konsoli systemowej, we wspólnym jądrze domyślny poziom logów konsoli jest ustawiony na 7, a więc wszystkie komunikaty o niższym priorytecie na 7 (najwyższy priorytet ) pojawi się na konsoli. Komunikaty o priorytecie 7 są uważane za komunikaty "debugowania" i dlatego nie będą wyświetlane na konsoli, aby nie przytłaczać innymi zdarzeniami jądra informacjami.

Klogd ma funkcję o nazwie Kernel Address Resolution, dzięki której, jeśli jądro wykryje stan błędu wewnętrznego, automatycznie aktywowany jest ogólny protokół błędu ochrony. Jest to część procedury obsługi GPF, w której jądro drukuje raport stanu, który wskazuje stan procesora w momencie wygenerowania błędu, w ramach tego wyniku zobaczymy szczegóły, takie jak zawartość rejestrów mikroprocesora, zawartość stos jądra i monitorowanie funkcji, które działały przed wystąpieniem błędu.

Proces rozwiązywania adresów liczbowych z wyników błędu ochrony można wykonać ręcznie lub za pomocą programu ksymoops, który jest zawarty w źródłach jądra. Polecenie Klogd obsługuje problem diagnozowania awarii ochrony w bieżących modułach ładowalnych jądra.

Krok 1
Podobnie jak Syslogd, Klog został zastąpiony w obecnych dystrybucjach bardziej dynamicznymi poleceniami, więc do jego instalacji wykonamy następujące czynności. Tam wpisujemy literę S, aby potwierdzić pobranie i instalację.

 trafna instalacja busybox-syslogd 

POWIĘKSZAĆ

Krok 2
Składnia Klogd jest następująca:

 klogd [-cn] [-d] [-f nazwa-f] [-iI] [-n] [-o] [-p] [-s] [-k nazwa-f] [-v] [-x] [-2 ] 
Krok 3
Te opcje to:

Zdefiniuj poziom dziennikaTen parametr określa domyślny poziom rejestrowania komunikatów konsoli do n.

 -c n 

Tryb debugowaniata opcja włącza tryb debugowania.

 -D 

Zapisuj wiadomościplik loguje komunikaty do określonej nazwy pliku zamiast instalacji syslog.

 -F 

Zidentyfikuj działające demonyidentyfikuje aktualnie działającego demona klogd. Oba przełączniki sterują ładowaniem / ponownym ładowaniem informacji o symbolach.

 -ja -ja 

Zatrzymaj klogd w tleZapobiegaj uruchamianiu Klogd w tle.

 -n 

Pełny odczyt z buforów wiadomościTa opcja pozwala Klogdowi odczytywać i zapisywać wszystkie wiadomości znalezione w buforach wiadomości jądra.

 -lub 

Wymuś wywołanie systemoweWymusza na komendzie Klogd użycie interfejsu wywołań systemowych do buforów komunikatów jądra.

 -s 

Zobacz wersję KlogdWydrukuj wersję Klogd.

 -v 

POWIĘKSZAĆ

Krok 4
Jeśli chcemy odczytać wszystkie zdarzenia po zalogowaniu, wykonamy następujące czynności:

 klogd -o -f ./krnl.msg 
Krok 5
Po tym będzie można uzyskać dostęp do zawartości tego pliku:

POWIĘKSZAĆ

5. Sygnały Klogd w systemie Linux


Polecenie Klogd może odpowiedzieć na osiem (8) sygnałów, którymi są: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 i SIGCONT. Sygnały SIGINT, SIGKILL, SIGTERM i SIGHUP umożliwiają demonowi zamknięcie źródeł dziennika jądra i poprawne zakończenie procesu, podczas gdy sygnały SIGTSTP i SIGCONT są używane do uruchamiania i zatrzymywania dziennika jądra.

Krok 1
Na przykład, jeśli chcemy odmontować system plików / proc, musimy wykonać następujące polecenia:

 # kill -TSTP pid # umount / proc # kill -CONT pid
Krok 2
Niektóre pliki do użycia z Klogd to:

  • / proc / kmsg: jest plikiem źródłowym komunikatów jądra klogd
  • /var/run/klogd.pid: to plik zawierający identyfikator procesu klogd
  • /boot/System.map, /System.map, /usr/src/linux/System.map - są to domyślne lokalizacje map systemu jądra.

Jak widać, mamy te dwa przydatne i niezbędne polecenia do prawidłowego i pełnego zarządzania zdarzeniami jądra w systemie Linux.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave