Jak mogę monitorować działanie logrotatu?

51

Jak mogę monitorować, co robi Logrotate w Ubuntu? Czy można monitorować aktywność logrotatu?

w5m
źródło
możesz przejść i zobaczyć, które deskryptory plików otworzył proces ... Może spróbuj wyjaśnić, jaki dokładnie masz problem? Czy próbujesz debugować własne skrypty? Wydajność domyślnych / zewnętrznych skryptów?
Hubert Kario

Odpowiedzi:

55
cat /var/lib/logrotate/status 

Aby sprawdzić, czy konkretny dziennik rzeczywiście się obraca, czy nie, i sprawdzić ostatnią datę i godzinę jego obrotu, sprawdź plik / var / lib / logrotate / status. Jest to starannie sformatowany plik zawierający nazwę pliku dziennika i datę jego ostatniej rotacji.

Pochodzą z:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10

Camilo Sanchez
źródło
16
Znajdziesz ten plik jak /var/lib/logrotate.statusw systemach Red Hat.
Michael Hampton
1
Oto kompletny przewodnik do rozwiązywania problemów z Logrotate w systemach Red Hat: access.redhat.com/solutions/32831
Gaia
Biorąc pod uwagę Ubuntu, cat /var/lib/logrotate/status pokazuje tylko aktywność logrotate zainicjowaną przez użytkownika root . Cronjobs innych użytkowników mogą wyzwalać własną aktywność logrotate, np. Gdy ich crontab zawiera wpis taki jak 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. Ta aktywność logrotate zostałaby zapisana do pliku $HOME/logrotate/logrotate-state, $HOMEbędąc katalogiem domowym tego użytkownika.
Abdull
W jeszcze nowszych systemach RedHat (przynajmniej w RHEL 7.6) plik statusu znajduje się teraz w /var/lib/logrotate/logrotate.status.
Richlv
13

Możesz spróbować uruchomić program logrotate w trybie debugowania lub pełnego:

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.
kernelpanic
źródło
Czy to pomaga, gdy logrotate jest uruchamiany jako cron? Mam na myśli, czy istnieje możliwość zarejestrowania zachowania logrotate w pliku dziennika?
2
/ usr / sbin / logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log
kernelpanic
sudo logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log bash: /var/log/logrotate.log: Odmowa
1
@dude: Jeśli próbujesz to zrobić z wiersza poleceń i otrzymujesz ten błąd, musisz to zrobić w następujący sposób: sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null(upewnij się , że masz -a).
Dennis Williamson,
@Dennis, gdy próbuję tego, mimo że tworzy plik logrotate.log, ale ma on 0 KB, a proces nie zatrzymuje się na terminalu i czeka z migającym kursorem.
9

W Suse Linux dystrybucje wyglądają tak:

cat /var/lib/logrotate.status
gugol
źródło
AWS AMI Linux ma taką samą strukturę statusu logrotate
Victor Perov
5

Różne dzienniki są obracane na różnych częstotliwościach w oparciu o plik konfiguracyjny (/etc/logrotate.conf) i / lub katalog (/etc/logrotate.d). Nazwy mogą się różnić w zależności od dystrybucji. Konfiguracja może określać działania przed i / lub po rotacji. Nazwy obróconych plików i data ostatniego obrotu znajdują się w pliku stanu (/ var / lib / logrotate / state).

Logrotate nie ma możliwości logowania. Inicjowane przez niego operacje ponownego ładowania / restartowania będą rejestrowane zgodnie z rejestracją dla programu, na którym działa.

Najłatwiejszym sposobem na dokonanie tego jest edycja /etc/cron.daily/logrotatezawierająca -vopcję. Szczegółowe informacje na temat konfiguracji i opcji logrotate można znaleźć w poleceniu man logrotate.

BillThor
źródło
3

Koleś, możesz sprawdzić ustawienia logrotate, zwykle w /etc/logrotate.conf.

Nowoczesne dystrybucje mają logrotatew /etc/logrotate.dkatalogu określony plik konfiguracyjny .

np. dla nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

Przechowuje plik przez 52 tygodnie (rok). Rotacja odbywa się co tydzień.


Uwaga: user56548 był kiedyś „Koleś”

wprowadź opis zdjęcia tutaj

Pierścień Ø
źródło
Prawdopodobnie miałeś na myśli rotate 365lub weekly. rotate 52Oczywiście codzienna rotacja z zachowa 52 dni dzienników.
temoto
@temoto dzięki, to było tak naprawdęweekly
Pierścień Ø