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

mail

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 /