Baza wiedzy Proste instrukcje dotyczące pracy z usługą Profitserver
Główny Baza wiedzy Jak czytać logi Linuxa i gdzie je znaleźć

Jak czytać logi Linuxa i gdzie je znaleźć


Gdy napotkasz jakiekolwiek problemy z wydajnością serwera, pierwszą rzeczą, którą powinieneś zrobić, jest sprawdź logi Linuxa. W logu systemowym możesz znaleźć pomocne komunikaty diagnostyczne z różnych komponentów systemu operacyjnego, takich jak jądro lub różne usługi, więc najprawdopodobniej znajdziesz tam przyczynę awarii.

Każda wiadomość w dzienniku jest generowana w wyniku pewnych zdarzeń w systemie operacyjnym: od użytkownika, autoryzacji do zamknięcia usługi lub awarii aplikacji. Zdarzenia te mają różne priorytety w zależności od tego, jak krytyczne są. W systemie Linux występują następujące typy zdarzeń:

  1. emerg - awaria, najwyższy priorytet;
  2. alert - pilne ostrzeżenie;
  3. crit - zdarzenie krytyczne;
  4. err - błąd zwykły;
  5. warn - ostrzeżenie zwykłe;
  6. notice - powiadomienie;
  7. info - wiadomość informacyjna;
  8. debug - informacje dotyczące debugowania;

W tej chwili głównymi usługami zbierającymi logi w systemie Linux są: rsyslog oraz dziennik systemowySą kompatybilne z większością nowoczesnych pakietów dystrybucyjnych i działają niezależnie.

rsyslog

Dzienniki tej usługi znajdują się w „/ var / log /” folder w formie zwykłych plików tekstowych. Wiadomości dziennika są umieszczane w różnych plikach w zależności od typu zdarzenia. Na przykład, „/var/log/auth.log„zawiera informacje o uprawnieniach użytkowników w systemie, a także/var/log/kern.log” zawiera komunikaty jądra. Nazwy plików mogą się różnić w różnych pakietach dystrybucyjnych, więc przyjrzyjmy się plikowi konfiguracyjnemu, aby zorientować się, co się tam znajduje./etc/rsyslog.d/50-default.conf".

Сбор логов Linux утилитой rsyslog

Te reguły wyświetlają, który plik zawiera każdy typ komunikatów dziennika. Lewa część wyświetla typ komunikatu w następującej formie „[Źródło].[Priorytet]” a prawa część wyświetla nazwę pliku dziennika. Podczas pisania typu wiadomości „*” znak może być dodany. Oznacza to pustą wartość lub „Żaden” co usuwa ją z listy. Przyjrzyjmy się bliżej pierwszym dwóm zasadom.

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

Pierwsza reguła oznacza, że ​​wszystkie wiadomości otrzymane z mechanizmu autoryzacji zostaną zapisane w „/var/log/auth.log” plik. Wszystkie próby autoryzacji (zarówno udane, jak i nie) zostaną zarejestrowane w tym pliku. Druga reguła wskazuje, że wszystkie wiadomości, z wyjątkiem tych związanych z autoryzacją, zostaną zarejestrowane w pliku „/ var / log / syslog” plik. Te dwa pliki są zazwyczaj najpopularniejsze. Poniższe reguły definiują ścieżkę do przechowywania dzienników jądra „kern.*„i dzienniki usług pocztowych”poczta.*"

Pliki dziennika można otwierać za pomocą dowolnego edytora tekstu, takiego jak mniej, jak, ogon. Otwórzmy „/var/log/auth.log" plik

less /var/log/auth.log
Запись в лог-файле Линукс о неудачной попытке авторизации SSH

Każdy wiersz pliku jest osobną wiadomością otrzymaną z aplikacji lub usługi. Wszystkie wiadomości, niezależnie od ich źródła, mają jeden format i składają się z 5 części. Weźmy jako przykład wyróżnioną wiadomość na zrzucie ekranu.

  1. Znak czasowy wiadomości – „12 lut 06:18:33”
  2. Nazwa komputera, który wysłał wiadomość – „vds”
  3. Nazwa aplikacji lub usługi, która wysłała wiadomość – „sshd”
  4. Identyfikator procesu - [653]
  5. Tekst wiadomości - „Zaakceptowano hasło dla mihail z 188.19.42.165 port 2849 ssh2”

Oto przykład udanego połączenia z SSH.

A tak wygląda nieudana próba logowania:

Czytamy Linux

Ten plik rejestruje również polecenia z zaawansowanymi uprawnieniami

Как правильно прочитать лог Linux

Otwórzmy / var / log / syslog filet

Podświetlony komunikat na zrzucie ekranu to komunikat o wyłączeniu interfejsu sieciowego.

Narzędzie logorotate

Do wyszukiwania informacji w długich plikach tekstowych użyj grep narzędzie. Możesz znaleźć wszystkie wiadomości otrzymane od pptpd usługa w „/ var / log / syslog" plik.

grep 'pptpd' /var/log/syslog
plik „/etc/logrotate.d/rsyslog”

Podczas diagnostyki możesz skorzystać ogon narzędzie, które może wyświetlić kilka ostatnich wierszy plików. Polecenie „tail -f / var / log / syslog”umożliwi Ci oglądanie rejestrowanych logów w czasie rzeczywistym.

Obsługa rsyslog jest bardzo elastyczny i wydajny. Może być używany do zbierania kłód w systemach lokalnych, jak i na poziomie przedsiębiorstwa. Pełną dokumentację można znaleźć na oficjalnej stronie internetowej https://www.rsyslog.com/

Rotacja logów w systemie Linux

Rejestracja logów odbywa się w sposób ciągły, więc rozmiar plików stale rośnie. Mechanizm rotacji zapewnia automatyczną archiwizację starych logów i tworzenie nowych plików. W zależności od zasad może się to odbywać codziennie, co tydzień, co miesiąc lub według limitu rozmiaru. W miarę tworzenia nowych logów stare można po prostu usunąć lub wysłać e-mailem. Rotacja logów odbywa się za pomocą logrotate narzędzie. Główną konfigurację można znaleźć w „/etc/logrotate.conf” plik. Zawartość plików jest również przetwarzana w „/etc/logrotate.d/" teczka

Nowe reguły można rejestrować w głównym pliku konfiguracyjnym. Jednak najlepiej jest utworzyć osobny plik w „/etc/logrotate.d/”. Domyślnie w tym katalogu znajduje się kilka plików

Настраиваем ротацию логов в Линукс

Przyjrzyjmy się plikowi „/etc/logrotate.d/rsyslog„zawiera reguły rotacji dla kłód rsyslog service.

Пример вывода всех ошибок pptpd в лог-файлах

Najpierw reguła powinna zawierać ścieżkę do pliku dziennika, a następnie wszystkie wytyczne w nawiasach klamrowych.

  • obróć 7 - ilość przechowywanych plików - 7
  • codziennie - twórz nowy plik każdego dnia
  • kompresować - kompresuj i archiwizuj stare pliki
Учимся читать логи Линукс

Na zrzucie ekranu widać, że w „/ var / log /„w folderze znajdują się główne logi”syslog” i 7 archiwów, co odpowiada regułom w pliku konfiguracyjnym.

Bardziej szczegółowy opis polecenia logrotate można znaleźć w podręczniku, wykonując polecenie „człowiek logrotate” polecenie

Zbieranie logów Linux - journald

Usługa pozyskiwania drewna dziennik systemowy jest częścią systemu inicjalizacji systemdPliki dziennika systemu Linux są przechowywane w „/var/log/dziennik/„w specjalnym formacie i można je otworzyć za pomocą journalctl użyteczność. Format rekordów jest dokładnie taki sam jak w rsyslog.

Command journalctl bez atrybutów pokazuje wszystkie rekordy, ale nie nadaje się do większych logów. Przyjrzyjmy się niektórym opcjom tego narzędzia.

  • journalctl -b - pokaż wszystkie rekordy od ostatniego startu
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - pokaż rekord w określonym przedziale czasowym
  • journalctl -u pptpd - pokaż zapisy konkretnej usługi
  • journalctl -k - pokaż komunikaty jądra
  • journalctl -p err - pokaż wiadomości o określonym priorytecie, w tym przypadku wiadomości o wyższym priorytecie (krytyczne, alarmowe, ratunkowe)
  • journalctl -f - wyświetlaj wiadomości w czasie rzeczywistym

Aby uzyskać większą elastyczność, możesz połączyć te opcje. Pokażmy wszystkie błędy pptpd usługa

journalctl -u pptpd -p err
ostatnia utilita

Jeśli podasz ścieżkę do pliku wykonywalnego jako atrybut, narzędzie pokaże wszystkie wiadomości wysłane przez ten plik. Pokażmy wszystkie wiadomości wysłane przez plik „/usr/bin/sudo” od 04:15 18 lutego 2020. W rzeczywistości pokaże wszystkie polecenia wykonane z wyższymi uprawnieniami.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
komandytowy lastb

Aby dowiedzieć się, ile miejsca na dysku zajmują pliki dziennika, wykonaj następujące polecenie

journalctl --disk-usage

Aby ograniczyć rozmiar pliku dziennika do 1 GB wykonaj następujące polecenie

journalctl --vacuum-size=1G

Otwieranie plików binarnych

Przyjrzyjmy się teraz niektórym specjalnym plikom w „/ var / log /” folder, w którym przechowywane są wszystkie próby logowania. Te pliki są binarne i można je otwierać tylko za pomocą specjalnych programów.

/ var / log / wtmp zawiera informacje o udanych próbach logowania. Użyj ostatniego narzędzia, aby je otworzyć.

serwis lastlog

/var/log/btmp - zawiera wszystkie nieudane próby logowania. Można go otworzyć za pomocą lastb z zaawansowanymi uprawnieniami. Atrybut -n określa liczbę wierszy wyświetlanych od końca pliku.

/var/log/loadlog - zawiera czas ostatniej akcji logowania dla każdego rekordu konta. Można go otworzyć za pomocą ostatni log

❮ Poprzedni artykuł Jak skonfigurować interfejsy sieciowe w CentOS
Następny artykuł ❯ Edytory tekstu Linux

Zapytaj nas o VPS

Jesteśmy zawsze gotowi odpowiedzieć na Państwa pytania o każdej porze dnia i nocy.