Wie kann ich überwachen, was Logrotate tut?


51

Wie kann ich überwachen, was Logrotate in Ubuntu macht? Kann die Aktivität von Logrotat überwacht werden?


Nun, Sie könnten nachsehen, welche Dateideskriptoren der Prozess geöffnet hat ... Versuchen Sie vielleicht zu erklären, welches genaue Problem Sie haben? Versuchen Sie, Ihre eigenen Skripte zu debuggen? Leistung von Standardskripten / Skripten von Drittanbietern?
Hubert Kario

Antworten:


55
cat /var/lib/logrotate/status 

Überprüfen Sie in der Datei / var / lib / logrotate / status, ob sich ein bestimmtes Protokoll tatsächlich dreht oder nicht, und überprüfen Sie das Datum und die Uhrzeit der letzten Drehung. Dies ist eine ordentlich formatierte Datei, die den Namen der Protokolldatei und das Datum der letzten Rotation enthält.

Genommen von:

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


16
Sie finden diese Datei wie /var/lib/logrotate.statusauf Red Hat-Systemen.
Michael Hampton

1
Hier finden Sie eine vollständige Anleitung zur Fehlerbehebung in Red Hat-Systemen: access.redhat.com/solutions/32831
Gaia

Betrachtet man Ubuntu, wird cat /var/lib/logrotate/status nur die vom Root-Benutzer initiierte Logrotate-Aktivität angezeigt . Die Cronjobs anderer Benutzer können ihre eigene Logrotationsaktivität auslösen, z. B. wenn ihre Crontab einen Eintrag wie enthält 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. Diese logrotate-Aktivität würde in die Datei geschrieben $HOME/logrotate/logrotate-state, wobei $HOMEes sich um das Ausgangsverzeichnis dieses Benutzers handelt.
Abdull

In noch neueren RedHat-Systemen (zumindest in RHEL 7.6) befindet sich die Statusdatei jetzt unter /var/lib/logrotate/logrotate.status.
Richlv

13

Sie können versuchen, logrotate im Debug- oder im ausführlichen Modus auszuführen:

-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.

Hilft das, wenn Logrotate als Cron gestartet wird? Ich meine, gibt es eine Möglichkeit, das Verhalten von logrotate in einer Protokolldatei zu protokollieren?

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: Berechtigung verweigert

1
@dude: Wenn Sie versuchen, dies über die Befehlszeile zu tun und diese Fehlermeldung erhalten, müssen Sie folgendermaßen vorgehen: (Stellen Sie sichersudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null , dass Sie die haben -a).
Dennis Williamson

@ Tennis, wenn ich versuche, dass ich zwar die logrotate.log erstellt, aber es hat 0 KB und der Prozess stoppt nicht am Terminal und wartet mit einem blinkenden Cursor.

9

In Suse Linux-Distributionen sieht das so aus:

cat /var/lib/logrotate.status

AWS AMI Linux hat die gleiche Statusstruktur wie Logrotate
Victor Perov,

5

Verschiedene Protokolle werden abhängig von der Konfigurationsdatei (/etc/logrotate.conf) und / oder dem Verzeichnis (/etc/logrotate.d) auf verschiedenen Frequenzen gedreht. Namen können bei verschiedenen Distributionen variieren. Die Konfiguration kann Aktionen vor und / oder nach der Rotation angeben. Die Namen der gedrehten Dateien und das Datum der letzten Drehung befinden sich in der Statusdatei (/ var / lib / logrotate / state).

Logrotate hat keine Protokollierungsmöglichkeiten. Von ihm eingeleitete Aktionen zum erneuten Laden / Neustarten werden gemäß der Protokollierung für das Programm protokolliert, auf das reagiert wird.

Der einfachste Weg, dies zu tun, ist das Bearbeiten /etc/cron.daily/logrotate, um die -vOption einzuschließen. Details zur Konfiguration und zu den Optionen von logrotate finden Sie mit dem Befehl man logrotate.


3

Alter, du kannst die Einstellungen von logrotatein der Regel überprüfen /etc/logrotate.conf.

Moderne Distributionen haben eine bestimmte logrotateKonfigurationsdatei im /etc/logrotate.dVerzeichnis.

zB für nginx

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

Die Datei wird 52 Wochen (ein Jahr) lang aufbewahrt. Die Rotation erfolgt wöchentlich.


Hinweis: user56548 war früher "Dude"

Bildbeschreibung hier eingeben


Wahrscheinlich meintest du rotate 365oder weekly. Die tägliche Umdrehung mit rotate 52wird offensichtlich 52 Tage lang protokolliert.
Temoto

@temoto danke, es war tatsächlichweekly
Ring Ø
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.