Jak zarządzać dziennikami plików systemu Linux za pomocą Achieve

Dystrybucje Linuksa są idealne dla każdego rodzaju środowiska korporacyjnego dzięki możliwości dostosowania się do nowych funkcji i nowych ról, a co najważniejsze, za darmo dzięki otwartemu kodowi.

Mamy tysiące aplikacji lub narzędzi przeznaczonych do scentralizowanej kontroli nad wszystkimi aspektami systemu, dzięki czemu, jako administratorzy lub personel IT, wiedzą z pewnością, kiedy wystąpi awaria i wiedzą, jak ją rozwiązać.

W tym szerokim zakresie możliwości znajduje się Logrotate, który jest narzędziem dystrybucji, a jego funkcją jest rotacja i kompresja plików dziennika.

To zadanie jest ważne, ponieważ niepodejmowanie żadnych działań na tych plikach może mieć wpływ na miejsce na dysku twardym, co prowadzi do innych rodzajów ogólnych błędów.

W tym przypadku użyjemy Ubuntu 17.10, a Logrotate jest instalowany domyślnie i jest już skonfigurowany do zarządzania zadaniami rotacji dzienników wszystkich zainstalowanych pakietów, w tym rsyslog, domyślnym procesorem dziennika systemowego.

Następnie zobaczymy, jak zainstalować i używać tego cennego narzędzia.

1. Zidentyfikuj wersję systemu Linux zainstalowanego w Logrotate


Pierwszym krokiem, jaki należy wykonać, jest szczegółowe poznanie wersji Logrotate, w tym przypadku Ubuntu 17.10. W tym celu wykonujemy następujące polecenie:
 logrotate -wersja
Wynik będzie następujący:

POWIĘKSZAĆ

Jeśli Logrotate nie jest zainstalowany, otrzymamy błąd. Narzędzie możemy zainstalować za pomocą menedżera pakietów używanej dystrybucji Linuksa.

Jeśli Logrotate jest zainstalowany, ale numer wersji znacznie się różni, możemy mieć problemy z niektórymi ustawieniami narzędzia. Możemy zapoznać się z dokumentacją konkretnej wersji Logrotate bezpośrednio na jej stronie podręcznika:

 człowiek logrotate
Widzimy domyślną strukturę konfiguracji Logrotate w dystrybucji Linuksa:

POWIĘKSZAĆ

2. Logrotate konfiguracja Linuksa


Informacje o konfiguracji Logrotate można znaleźć w dwóch miejscach w przypadku Ubuntu:

etc / logrotate.confTen plik zawiera ustawienia domyślne i ustawia rotację niektórych dzienników, które nie są własnością żadnego pakietu systemowego. Wykorzystuje również instrukcję include, aby pobrać ustawienia z dowolnego pliku w katalogu /etc/logrotate.d.

/etc/logrotate.d/W tym katalogu każdy pakiet, który instalujemy i potrzebujemy pomocy z rotacją logów, umieści swoją konfigurację Logrotate. W standardowej instalacji powinny już istnieć tutaj pliki podstawowych narzędzi systemowych, takich jak apt, dpkg, rsyslog itp.

Domyślnie logrotate.conf skonfiguruje cotygodniowe rotacje dzienników (co tydzień), z plikami dziennika należącymi do użytkownika root i grupy syslog (su root syslog), z czterema plikami dziennika, które są przechowywane (obrót 4), a nowe pliki są tworzone puste dokumentacja. utworzone po obróceniu prądu (utwórz).

Możemy uzyskać dostęp do pliku konfiguracyjnego Logrotate pakietu w /etc/logrotate.d za pomocą narzędzia cat:

 kot /etc/logrotate.d/apt

POWIĘKSZAĆ

Ten plik zawiera bloki konfiguracyjne dla dwóch różnych plików dziennika w katalogu /var/log/apt/: term.log i history.log. Obaj mają te same opcje.

Każda opcja nie ustawiona w tych blokach konfiguracyjnych odziedziczy wartości domyślne lub te ustawione w /etc/logrotate.conf. Opcje skonfigurowane dla apt logs to:

obróć 12Zachowuje dwanaście starych plików dziennika.

MiesięcznyObracaj raz w miesiącu.

KompresjaZajmuje się kompresją obróconych plików. Używa domyślnie gzip i powoduje, że pliki mają rozszerzenie .gz. Polecenie kompresji można zmienić za pomocą opcji compresscmd.

missokNie zapisuje komunikatu o błędzie, jeśli brakuje pliku dziennika.

powiadamianieNie obraca pliku dziennika, jeśli jest pusty.

Dostępnych jest znacznie więcej opcji konfiguracyjnych.

3. Skonfiguruj usługę Linux Logrotate i dodaj konfigurację do /etc/logrotate.d/


Następnie skonfigurujemy plik konfiguracyjny do obsługi dzienników usługi, którą utworzymy.

Aby zarządzać plikami dziennika dla aplikacji spoza wstępnie spakowanych i wstępnie skonfigurowanych usług systemowych, mamy dwie możliwości:

  • Utwórz nowy plik konfiguracyjny Logrotate i umieść go w ścieżce /etc/logrotate.d/. Będzie to uruchamiane codziennie jako użytkownik root wraz ze wszystkimi innymi standardowymi zadaniami Logrotate.
  • Utwórz nowy plik konfiguracyjny i uruchom go poza domyślną konfiguracją Logrotate Ubuntu. Jest to konieczne tylko wtedy, gdy musimy uruchomić Logrotate jako użytkownik inny niż root lub jeśli chcesz obracać logi częściej niż codziennie (ustawienie godzinowe w /etc/logrotate.d/ nie byłoby skuteczne, ponieważ systemowe ustawienie Logrotate jest uruchamiany tylko raz dziennie).

W tym przypadku chcemy skonfigurować rotację logów dla serwera WWW, który umieszcza access.log i error.log w ścieżce / var / log / solvetic-app /. Będzie działał jako użytkownik i grupa www-data.

Aby dodać trochę konfiguracji do /etc/logrotate.d/, musimy najpierw otworzyć nowy plik w następujący sposób:

 sudo nano /etc/logrotate.d/solvetic-app
tam dodamy następujące wiersze:
 /var/log/solvetic-app/*.log {codziennie brakująceok obróć 14 kompresuj notifempty utwórz 0640 www-data www-data sharedscripts postrotuj systemctl przeładuj solvetic-app endscript}

POWIĘKSZAĆ

Możemy zapisać zmiany za pomocą kombinacji klawiszy Ctrl + O i wyjść z edytora za pomocą Ctrl + X.

Niektóre z nowych dyrektyw konfiguracyjnych w tym pliku to:

stwórz 0640 www-dane www-daneTen parametr tworzy nowy pusty plik dziennika po rotacji, z określonymi uprawnieniami (0640), właścicielem (www-data) i grupą (także www-data).

współdzielone skryptyTa flaga wskazuje, że skrypty dodane do konfiguracji są uruchamiane tylko raz na uruchomienie, a nie dla każdego obróconego pliku.

postrotuj do skryptu końcowegoTen blok zawiera skrypt do uruchomienia po obróceniu pliku dziennika. W takim przypadku możemy ponownie załadować naszą aplikację solvetic. Czasami jest to konieczne, aby aplikacja przełączyła się na nowo utworzony plik dziennika.

Musimy uwzględnić wykonanie po rotacji przed sprawdzeniem logów. Kompresja może zająć dużo czasu i oprogramowanie powinno natychmiast przełączyć się na nowy plik dziennika. W przypadku zadań, które muszą zostać uruchomione po skompresowaniu rekordów, użyj zamiast tego bloku lastaction.

Po dostosowaniu konfiguracji najlepiej odpowiadającej naszym potrzebom i zapisaniu ich w /etc/logrotate.d, możemy to sprawdzić wykonując poniższą linię.

 sudo logrotate /etc/logrotate.conf -debug
Wywołuje to logrotate, wskazuje na standardowy plik konfiguracyjny i aktywuje tryb debugowania:

POWIĘKSZAĆ

Informacje o tym, które pliki dziennika obsługuje Logrotate i co na nich wykonuje, zostaną wydrukowane. Jeśli wszystko wygląda dobrze, to koniec. Standardowe zadanie Logrotate będzie uruchamiane raz dziennie i będzie zawierać nowe ustawienia.

4. Jak utworzyć samodzielną konfigurację rejestrowania Logowanie systemu Linux


Najpierw utworzymy plik konfiguracyjny w naszym katalogu domowym. Możemy go otworzyć za pomocą edytora tekstu:
 sudo nano /home/solvetic/logrotate.conf
W nowym pliku wklejamy:
 /home/solvetic/logs/*.log {brak godzinowyok obróć 24 kompres utwórz}

POWIĘKSZAĆ

Możemy zapisać zmiany i wyjść z pliku.

To ustawienie spowoduje rotację plików co godzinę, kompresując i zachowując dwadzieścia cztery stare rekordy i tworząc nowy plik dziennika w celu zastąpienia pliku poddanego rotacji. Aby sprawdzić, czy działa poprawnie, możemy utworzyć plik dziennika, wykonując następujące wiersze:

 cd ~ sudo mkdir logi logi sudo touch / access.log

POWIĘKSZAĆ

Teraz, gdy mamy pusty plik dziennika we właściwym miejscu, uruchomimy polecenie logrotate.
Wykonamy następujące czynności:

 logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state -verbose

POWIĘKSZAĆ

Parametr --verbose wyświetli szczegółowe informacje o tym, co uruchamiamy z Logrotate. W tym przypadku zobaczymy, że nic się nie obracało. Jest to pierwszy raz, kiedy Logrotate widział ten plik dziennika, a jak wiemy, plik ma zero godzin i nie powinien być obracany.

Jeśli spojrzymy na plik statusu, zobaczymy, że Logrotate zarejestrował pewne informacje o wykonaniu, które przeprowadziliśmy:

 kot / dom / rozpuszczalnik / logrotate-state
Zobaczymy:

POWIĘKSZAĆ

Logrotate odnotował rekordy, które przeanalizował i kiedy ostatnio rozważał je do rotacji. Jeśli uruchomimy to samo polecenie godzinę później, rekord zostanie obrócony zgodnie z zamierzeniami. Jeśli chcesz zmusić Logrotate do obracania pliku dziennika, gdy nie powinno być inaczej, możemy użyć flagi --force:

 sudo logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state --verbose -force

5. Tworzenie zaplanowanego zadania w Achieve Linux


Na koniec musimy skonfigurować zadanie cron, aby uruchamiało Logrotate co godzinę. Aby to zrobić, otwieramy crontab naszego użytkownika, wykonując następujące czynności:
 crontab -e
W otwartym pliku dodamy następujący wiersz:
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state

POWIĘKSZAĆ

To zadanie będzie uruchamiane codziennie o 14. minucie o każdej godzinie. Zasadniczo działa z tym samym poleceniem logrotate, które uruchomiliśmy wcześniej, chociaż rozszerzyliśmy logrotate do pełnej ścieżki / usr / sbin / logrotate. Możemy zapisać plik za pomocą kombinacji klawiszy Ctrl + O i wyjść z niego za pomocą Ctrl + X.

W ten sposób widzieliśmy, jak Logrotate jest prostym, ale skutecznym narzędziem, jeśli chodzi o zarządzanie i kontrolowanie rekordów w dowolnej dystrybucji Linuksa.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave