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?

w5m
quelle
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

Camilo Sanchez
quelle
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.
kernelpanic
quelle
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
Gugol
quelle
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.

BillThor
quelle
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

Ring-Ø
quelle
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 Ø