0Pricing
Linux Server Deployment & SSH Mastery · Lekcja

Rotacja i archiwizacja logów

Wdróż `logrotate`, aby zarządzać rozmiarem plików logów, zapobiegać zapełnieniu dysku i zapewnić skuteczną archiwizację logów.

Rotacja i archiwizacja logów to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Dlaczego rotacja dzienników ma znaczenie

Dzienniki serwera są niezbędne do debugowania i monitorowania, ale z czasem mogą bardzo się rozrosnąć. Jeśli pozostawi się je bez kontroli, mogą szybko zapełnić miejsce na dysku, prowadząc do niestabilności serwera, a nawet jego awarii.

Właśnie tutaj przydaje się rotacja dzienników. Jest to kluczowy proces efektywnego zarządzania rozmiarem plików dziennika.

Wprowadzenie do narzędzia `logrotate`

Systemy Linux używają narzędzia logrotate do automatyzacji zarządzania plikami dziennika. Służy ono do:

  • Rotowania dzienników (zmiany nazw starych plików)
  • Kompresowania starych dzienników w celu zaoszczędzenia miejsca
  • Usuwania bardzo starych plików dziennika
  • Uruchamiania własnych skryptów po rotacji

W większości dystrybucji Linuksa narzędzie logrotate jest zainstalowane i skonfigurowane domyślnie tak, aby uruchamiało się codziennie za pośrednictwem zadania cron.

Jak `logrotate` znajduje instrukcje

Narzędzie logrotate odczytuje konfigurację z określonych plików. Istnieją dwa główne miejsca:

  • /etc/logrotate.conf: Główny plik konfiguracyjny, często zawierający ustawienia globalne i wartości domyślne.
  • /etc/logrotate.d/: Katalog, w którym poszczególne aplikacje i usługi umieszczają własne reguły rotacji dzienników. Każdy plik w tym katalogu jest traktowany jako osobna konfiguracja.

Takie modułowe podejście ułatwia zarządzanie regułami dla różnych usług.

Ustawianie częstotliwości rotacji dzienników

Jedną z pierwszych rzeczy, które należy określić, jest częstotliwość rotacji dzienników. logrotate udostępnia kilka dyrektyw:

  • daily: Rotuj dzienniki codziennie.
  • weekly: Rotuj dzienniki raz w tygodniu.
  • monthly: Rotuj dzienniki raz w miesiącu.
  • yearly: Rotuj dzienniki raz w roku.

Należy wybrać częstotliwość, która zapewni równowagę między zachowaniem szczegółowych danych a zużyciem miejsca na dysku.

Zachowywanie określonej liczby starych dzienników

Dyrektywa rotate informuje narzędzie logrotate, ile starych plików dziennika należy zachować przed usunięciem najstarszych. Na przykład rotate 4 oznacza zachowanie bieżącego pliku dziennika oraz czterech zrotowanych (zarchiwizowanych) wersji.

Po osiągnięciu limitu najstarszy zrotowany dziennik zostanie usunięty podczas kolejnej rotacji.

Kompresowanie starych plików dziennika

Aby zaoszczędzić jeszcze więcej miejsca na dysku, logrotate może kompresować stare pliki dziennika. Dyrektywa compress służy właśnie do tego i zazwyczaj korzysta z gzip.

Po włączeniu tej opcji obrócone pliki dziennika będą miały rozszerzenie .gz (np. myapp.log.1.gz). W przypadku większości dzienników serwera zdecydowanie zaleca się korzystanie z tej opcji.

Rotacja według rozmiaru, nie tylko czasu

Czasami dzienniki mogą szybko osiągać duży rozmiar, dlatego oczekiwanie na codzienną lub cotygodniową rotację nie wystarcza. Dyrektywa size pozwala obracać dzienniki po przekroczeniu określonego rozmiaru pliku, niezależnie od częstotliwości czasowej.

  • size 100k: Obrót, jeśli plik dziennika jest większy niż 100 kilobajtów.
  • size 10M: Obrót, jeśli plik dziennika jest większy niż 10 megabajtów.
  • size 1G: Obrót, jeśli plik dziennika jest większy niż 1 gigabajt.

Jeśli określono zarówno częstotliwość czasową (np. daily), jak i size, rotacja nastąpi po spełnieniu dowolnego z tych warunków.

Przykładowa konfiguracja `logrotate`

Oto prosty przykład pliku konfiguracyjnego, który można znaleźć w katalogu /etc/logrotate.d/ dla pliku dziennika przykładowej aplikacji:

Ta konfiguracja będzie obracać dziennik codziennie, przechowywać 7 starych kopii i kompresować je.

/var/log/my_app/access.log {
    daily
    rotate 7
    compress
    notifempty
    missingok
}

Ręczne uruchamianie `logrotate`

Choć logrotate zwykle uruchamia się automatycznie za pośrednictwem crona, można ręcznie przetestować rotację lub wymusić jej wykonanie. Główne polecenie to logrotate /etc/logrotate.conf.

Aby wymusić rotację (co jest przydatne podczas testowania konfiguracji), należy użyć flagi -f:

  • logrotate -f /etc/logrotate.d/my_app: Wymusza rotację dla określonego pliku konfiguracyjnego.
  • logrotate -f /etc/logrotate.conf: Wymusza rotację wszystkich skonfigurowanych dzienników.

Flaga -d (debugowania) pozwala zobaczyć, co program by zrobił, bez faktycznego obracania żadnych plików.

Szybkie sprawdzenie: przechowywanie dzienników

Rozważmy następującą konfigurację logrotate dla pliku /var/log/webserver/error.log:

/var/log/webserver/error.log { weekly rotate 4 compress notifempty }

Jeśli ta konfiguracja działa od kilku tygodni, ilu skompresowanych historycznych plików dziennika można oczekiwać w dowolnym momencie?

Podsumowanie: sprawne zarządzanie dziennikami

W tej lekcji omówiliśmy skuteczne zarządzanie dziennikami serwera za pomocą logrotate. Dowiedzieliśmy się, że:

  • Rotacja dzienników zapobiega wyczerpaniu miejsca na dysku.
  • logrotate korzysta z plików konfiguracyjnych /etc/logrotate.conf i /etc/logrotate.d/.
  • Najważniejsze dyrektywy to daily/weekly/monthly określające częstotliwość, rotate określająca przechowywanie, compress oszczędzająca miejsce oraz size służąca do warunkowej rotacji.

Właściwe zarządzanie dziennikami jest podstawą stabilnego działania serwera!

Często zadawane pytania

Czy lekcja „Rotacja i archiwizacja logów” jest bezpłatna?

Tak — pełny tekst „Rotacja i archiwizacja logów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.

Co nauczysz się w „Rotacja i archiwizacja logów”?

Wdróż `logrotate`, aby zarządzać rozmiarem plików logów, zapobiegać zapełnieniu dysku i zapewnić skuteczną archiwizację logów. Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?

Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Rotacja i archiwizacja logów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?

Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Narzędzia do monitorowania systemu
  2. Zrozumienie logów systemowych
  3. Rotacja i archiwizacja logów
  4. Scentralizowane monitorowanie i alerty
← Powrót do Linux Server Deployment & SSH Mastery