Przejdź do głównej zawartości

2 posty z tagiem "logs"

Wyświetl wszystkie tagi

Jak skonfigurować logrotate, aby automatycznie archiwizować logi i oszczędzać miejsce na serwerze

· 2 min aby przeczytać
Customer Care Engineer

Zarządzanie logami jest kluczowym aspektem administracji serwerem. Logi, które nie są regularnie rotowane, mogą szybko zapełnić dysk, spowalniając działanie serwera i powodując nieprzewidywalne błędy. W tym artykule wyjaśnimy, jak skonfigurować i używać logrotate do automatycznego czyszczenia i rotacji logów na serwerze.


Czym jest logrotate i dlaczego warto go używać?

Logrotate to narzędzie przeznaczone do automatycznego zarządzania logami. Pomaga w:

  • Czyszczeniu starych logów — automatycznie usuwa lub archiwizuje przestarzałe logi.
  • Oszczędzaniu miejsca na dysku — kompresuje i usuwa niepotrzebne logi.

Rotacja logów pozwala uniknąć sytuacji, w której logi gromadzą się, prowadząc do przepełnienia dysku, co może spowodować awarie systemu i utratę danych. Logrotate automatycznie archiwizuje stare logi i zwalnia miejsce na nowe dane.


Jak działa logrotate?

Kiedy logrotate jest aktywowany, automatycznie wykonuje następujące kroki:

  1. Rotacja logów — jest to proces, w którym stare logi są przemianowywane i zapisywane, a w ich miejsce tworzone są nowe pliki.
  2. Kompresja — stare logi mogą zostać skompresowane do formatu .gz, aby zaoszczędzić miejsce.
  3. Usuwanie — przestarzałe logi mogą zostać usunięte, jeśli nie są już potrzebne.

Przykład: plik dziennika o nazwie access.log może zostać przemianowany na access.log.1, następnie skompresowany do access.log.1.gz, a po upływie określonego czasu przechowywania, usunięty.


Jak skonfigurować logrotate?

1. Instalacja logrotate

Logrotate jest zwykle domyślnie instalowany na większości systemów Linux. Aby sprawdzić czy faktycznie już go masz, wpisz:

sudo logrotate --version

Jeśli logrotate nie jest zainstalowany, użyj menedżera pakietów.

  • Dla Debiana/Ubuntu użyj:
sudo apt update && sudo apt install logrotate
  • Dla CentOS/RockyLinux/AlmaLinux:
sudo yum install logrotate

2. Konfiguracja logrotate

Konfiguracja logrotate jest zwykle przechowywana w /etc/logrotate.conf. Plik ten określa ogólne parametry dla wszystkich logów na serwerze. Aby skonfigurować rotację poszczególnych logów, można utworzyć oddzielne pliki konfiguracyjne dla różnych serwisów w folderze /etc/logrotate.d/.

Przykład standardowej konfiguracji dla Nginx:

/var/log/nginx/*.log {
daily          # Logs are rotated daily
missingok      # Do not display an error if the log is missing
rotate 7       # Keep 7 archived files
compress       # Compress old logs
delaycompress  # Delay compression until the next rotation
notifempty     # Do not rotate empty files
create 0640 www-data adm  # Create new logs with specific permissions
}

3. Ważne parametry konfiguracyjne

  • daily/weekly/monthly — jak często log będzie rotowany (codziennie, co tydzień lub co miesiąc).
  • rotate [N] — liczba archiwów logów, które mają być przechowywane.
  • compress — kompresja archiwów logów (zwykle w formacie .gz).
  • missingok — brak logów nie powoduje pokazania błędu.
  • notifempty — nie rotuj pustych plików.
  • create — stwórz nowe logi z uprawnieniami.

4. Uruchamianie logrotate

Logrotate jest zwykle uruchamiany automatycznie za pomocą cron. Można jednak uruchomić go ręcznie, jeśli trzeba sprawdzić konfigurację lub wykonać rotację teraz:

sudo logrotate -f /etc/logrotate.conf

5. Sprawdzanie, czy logrotate działa

Aby upewnić się, że logrotate działa poprawnie, sprawdź ostatnie wpisy w logu:

sudo journalctl -u logrotate -n 10

Logi zajmują dużo miejsca na serwerze. Jak to naprawić?

· 2 min aby przeczytać
Customer Care Engineer
informacja

Większość logów jest przechowywana w katalogu /var/log, ale mogą również występować w innych miejscach. Zasady opisane poniżej dotyczą wszystkich plików *.log bez względu na ich lokalizację. 

Logi to pliki, które przechowują informacje o zdarzeniach na serwerze: aktywności aplikacji i systemu operacyjnego, różnych błędach, żądaniach użytkowników do stron itp. W miarę upływu czasu logi mogą zajmować dużo miejsca, szczególnie przy dużym ruchu na stronie lub błędach oprogramowania. 

Ważną cechą logów jest to, że w zdecydowanej większości przypadków ich usunięcie może prowadzić do nieprawidłowego działania programu, który je zapisuje, czy to serwera WWW, czy samego systemu operacyjnego. 

Dodatkowo, pliki te często zawierają istotne informacje diagnostyczne, które mogą pomóc w wykrywaniu awarii oprogramowania serwera i zapobiec poważniejszym problemom. Dlatego należy obchodzić się z nimi ostrożnie i świadomie.


Jak znaleźć logi, które można wyczyścić

Użyj ncdu do znalezienia największych logów na serwerze. Jeśli jakiś log wydaje się niepokojąco duży, sprawdź jego ostatnie wpisy:

sudo tail /path/to/log

Jeśli nie ma żadnych anomalii, sprawdź jego początek, aby upewnić się, że log stał się tak duży po prostu z upływem czasu (zwróć uwagę na datę utworzenia pierwszych wpisów):

sudo head /path/to/log

Następnie można przejść do czyszczenia.

informacja

Jeśli nie masz pewności, dlaczego plik dziennika jest tak duży, zapisz jego kopię i skontaktuj się z działem wsparcia technicznego dostawcy hostingu w celu uzyskania wyjaśnień.


Jak bezpiecznie wyczyścić logi

Użyj polecenia truncate, aby wyczyścić zawartość pliku bez jego usuwania:

sudo truncate -s 0 /var/log/nginx/error.log

Osobno należy zwrócić uwagę na pliki, które są logami pomimo braku rozszerzenia *.log:

  • /var/log/btmp
  • /var/log/syslog
  • /var/log/messeges
  • /var/log/secure
  • /var/log/maillog

Wszystkie te pliki można również bezpiecznie wyczyścić za pomocą polecenia truncate.

Wyjątkiem jest specjalny log, który znajduje się w katalogu /var/log/journal. O pracy z nim dowiesz się więcej z tego artykułu.   


Jak zapobiec zwiększaniu się rozmiaru logów

Analizując logi, mogłeś zauważyć, że niektóre z nich mają nazwy w formacie:

  • syslog.1
  • yoursite.access.log.1

Pojawiają się one, gdy stosowany jest proces rotacji logów, na przykład za pomocą programu logrotate. Podczas rotacji stare pliki mogą zostać usunięte lub skompresowane, co pozwala zaoszczędzić miejsce na dysku.

Więcej informacji na temat konfiguracji tego mechanizmu znajdziesz tutaj.