Unix / Linux - rejestrowanie systemu
W tym rozdziale omówimy szczegółowo logowanie systemowe w Uniksie.
Systemy uniksowe mają bardzo elastyczny i potężny system rejestrowania, który umożliwia rejestrowanie prawie wszystkiego, co można sobie wyobrazić, a następnie manipulowanie dziennikami w celu uzyskania potrzebnych informacji.
Wiele wersji systemu Unix udostępnia narzędzie do logowania ogólnego przeznaczenia o nazwie syslog. Poszczególne programy, które wymagają logowania informacji, przesyłają je do syslog.
Unix syslog jest konfigurowalnym przez hosta, jednolitym narzędziem do rejestrowania systemu. System wykorzystuje scentralizowany proces rejestrowania systemu, który uruchamia program/etc/syslogd lub /etc/syslog.
Obsługa rejestratora systemowego jest dość prosta. Programy wysyłają swoje wpisy dziennika do syslogd , który sprawdza plik konfiguracyjny/etc/syslogd.conf lub /etc/syslog a po znalezieniu dopasowania zapisuje komunikat dziennika do żądanego pliku dziennika.
Istnieją cztery podstawowe terminy syslog, które należy zrozumieć -
Sr.No. | Termin i opis |
---|---|
1 | Facility Identyfikator używany do opisu aplikacji lub procesu, który przesłał komunikat dziennika. Na przykład poczta, jądro i ftp. |
2 | Priority Wskaźnik ważności wiadomości. Poziomy są definiowane w syslog jako wytyczne, od informacji debugowania po krytyczne zdarzenia. |
3 | Selector Połączenie jednego lub więcej obiektów i poziomów. Gdy nadchodzące zdarzenie pasuje do selektora, wykonywana jest akcja. |
4 | Action Co dzieje się z wiadomością przychodzącą, która pasuje do selektora - akcje mogą zapisać wiadomość w pliku dziennika, przesłać jej echo do konsoli lub innego urządzenia, napisać wiadomość do zalogowanego użytkownika lub wysłać wiadomość do innego serwera syslog. |
Funkcje Syslog
Teraz zrozumiemy funkcje syslog. Oto dostępne udogodnienia dla selektora. Nie wszystkie udogodnienia są dostępne we wszystkich wersjach Uniksa.
Obiekt | Opis |
---|---|
1 | auth Aktywność związana z żądaniem nazwy i hasła (getty, su, login) |
2 | authpriv To samo co auth, ale jest logowane do pliku, który może odczytać tylko wybrani użytkownicy |
3 | console Służy do przechwytywania wiadomości, które są zazwyczaj kierowane do konsoli systemowej |
4 | cron Wiadomości z programu planującego cron |
5 | daemon Demon systemowy catch-all |
6 | ftp Komunikaty dotyczące demona ftp |
7 | kern Wiadomości jądra |
8 | local0.local7 Lokalne obiekty zdefiniowane dla każdej lokalizacji |
9 | lpr Wiadomości z systemu druku liniowego |
10 | Wiadomości dotyczące systemu pocztowego |
11 | mark Pseudo-zdarzenie używane do generowania sygnatur czasowych w plikach dziennika |
12 | news Wiadomości związane z protokołem sieciowym (nntp) |
13 | ntp Komunikaty dotyczące sieciowego protokołu czasu |
14 | user Regularne procesy użytkownika |
15 | uucp Podsystem UUCP |
Priorytety Syslog
Priorytety syslog podsumowano w poniższej tabeli -
Sr.No. | Priorytet i opis |
---|---|
1 | emerg Stan awaryjny, taki jak nieuchronna awaria systemu, jest zwykle transmitowany do wszystkich użytkowników |
2 | alert Stan, który powinien zostać natychmiast naprawiony, np. Uszkodzona systemowa baza danych |
3 | crit Stan krytyczny, na przykład błąd sprzętu |
4 | err Zwykły błąd |
5 | Warning Ostrzeżenie |
6 | notice Stan, który nie jest błędem, ale powinien być traktowany w specjalny sposób |
7 | info Wiadomość informacyjna |
8 | debug Komunikaty używane podczas debugowania programów |
9 | none Pseudo poziom używany do określenia, aby nie rejestrować komunikatów |
Połączenie udogodnień i poziomów umożliwia rozeznanie, co jest rejestrowane i dokąd trafiają te informacje.
Ponieważ każdy program sumiennie wysyła swoje komunikaty do rejestratora systemowego, rejestrator podejmuje decyzje o tym, co śledzić, a co odrzucić, na podstawie poziomów zdefiniowanych w selektorze.
Po określeniu poziomu system będzie śledził wszystko na tym poziomie i wyższym.
Plik /etc/syslog.conf
Plik /etc/syslog.confkontrolki plików, w których rejestrowane są komunikaty. Typowysyslog.conf plik może wyglądać następująco -
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @prep.ai.mit.edu
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
Każdy wiersz pliku zawiera dwie części -
ZA message selectorktóry określa, jakiego rodzaju komunikaty mają być rejestrowane. Na przykład wszystkie komunikaty o błędach lub wszystkie komunikaty o debugowaniu z jądra.
Na action fieldto mówi, co należy zrobić z przesłaniem. Na przykład umieść go w pliku lub wyślij wiadomość do terminala użytkownika.
Poniżej przedstawiono godne uwagi punkty dotyczące powyższej konfiguracji -
Selektory wiadomości składają się z dwóch części: a facility i a priority. Na przykład kern.debug wybiera wszystkie komunikaty debugowania (priorytet) generowane przez jądro (narzędzie).
Selektor wiadomości kern.debug wybiera wszystkie priorytety, które są większe niż debug.
Gwiazdka zamiast obiektu lub priorytetu oznacza „wszystkie”. Na przykład,*.debug oznacza wszystkie komunikaty debugowania, podczas gdy kern.* oznacza wszystkie wiadomości generowane przez jądro.
Możesz również użyć przecinków, aby określić wiele obiektów. Dwa lub więcej selektorów można zgrupować razem za pomocą średnika.
Rejestrowanie działań
Pole akcji określa jedno z pięciu działań -
Zapisz komunikat do pliku lub urządzenia. Na przykład,/var/log/lpr.log lub /dev/console.
Wyślij wiadomość do użytkownika. Możesz określić wiele nazw użytkowników, oddzielając je przecinkami; na przykład korzeń, amrood.
Wyślij wiadomość do wszystkich użytkowników. W tym przypadku pole akcji składa się z gwiazdki; na przykład, *.
Prześlij wiadomość do programu. W tym przypadku program jest określany po symbolu potoku uniksowego (|).
Wyślij wiadomość do syslog na innym hoście. W tym przypadku pole akcji składa się z nazwy hosta poprzedzonej znakiem „małpa”; na przykład @ tutorialspoint.com.
Polecenie rejestratora
Unix zapewnia loggerpolecenie, które jest niezwykle użytecznym poleceniem do obsługi logowania w systemie. Pliklogger polecenie wysyła komunikaty logowania do demona syslogd iw konsekwencji prowokuje logowanie systemu.
Oznacza to, że możemy w dowolnym momencie sprawdzić z wiersza poleceń plik syslogddemon i jego konfiguracja. Polecenie logger zapewnia metodę dodawania jednowierszowych wpisów do pliku dziennika systemowego z wiersza poleceń.
Format polecenia to -
logger [-i] [-f file] [-p priority] [-t tag] [message]...
Oto szczegóły parametrów -
Sr.No. | Opcja i opis |
---|---|
1 | -f filename Używa zawartości pliku nazwa_pliku jako komunikatu do logowania. |
2 | -i Rejestruje identyfikator procesu procesu rejestrującego w każdym wierszu. |
3 | -p priority Wprowadza wiadomość z określonym priorytetem (określony wpis selektora); priorytet wiadomości można określić numerycznie lub jako parę ułatwień. priorytet. Domyślnym priorytetem jest user.notice. |
4 | -t tag Oznacza każdy wiersz dodany do dziennika określonym znacznikiem. |
5 | message Argumenty w postaci ciągów, których zawartość jest łączona razem w określonej kolejności, oddzielone spacją. |
Możesz skorzystać z pomocy Manpage, aby sprawdzić pełną składnię tego polecenia.
Obrót dziennika
Pliki dziennika mają tendencję do bardzo szybkiego wzrostu i zajmują duże ilości miejsca na dysku. Aby włączyć rotację dzienników, większość dystrybucji używa narzędzi, takich jaknewsyslog lub logrotate.
Narzędzia te należy wywoływać w częstych odstępach czasu przy użyciu rozszerzenia cron daemon. Sprawdź strony podręcznika man dla newsyslog lub logrotate, aby uzyskać więcej informacji.
Ważne lokalizacje dziennika
Wszystkie aplikacje systemowe tworzą swoje pliki dziennika w formacie /var/logi jego podkatalogi. Oto kilka ważnych aplikacji i odpowiadających im katalogów dziennika -
Podanie | Informator |
---|---|
httpd | / var / log / httpd |
samba | / var / log / samba |
cron | / var / log / |
Poczta | / var / log / |
mysql | / var / log / |