Vor einigen Tagen haben wir eine Anleitung veröffentlicht, die beschreibt, wie man einen zentralisierten Rsyslog-Server einrichtet auf CentOS-System. Heute werden wir in diesem Leitfaden sehen, wie Protokolldateien mit Logrotate verwaltet werden auf Linux. Dieses Dienstprogramm vereinfacht die Verwaltung von Protokolldateien und ist besonders nützlich für Systeme, die täglich große Mengen an Protokolldateien erstellen. Wie der Name schon sagt, rotiert LogRotate die Protokolle in regelmäßigen Abständen vollständig aus Ihrem System. Es ermöglicht auch das automatische Rotieren, Komprimieren, Entfernen und Versenden von Protokolldateien. Jede Protokolldatei kann täglich, wöchentlich, monatlich oder wenn sie zu groß wird, bearbeitet werden.
Protokolldateien mit Logrotate verwalten
Logrotate installieren
Logrotate ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar.
Unter Arch Linux und seinen Derivaten müssen Sie den folgenden Befehl ausführen, um es zu installieren.
$ sudo pacman -S logrotate
Auf RPM-basierten Systemen wie RHEL, CentOS, Scientific Linux können Sie es mit folgendem Befehl installieren:
$ sudo yum install logrotate
Unter Debian, Ubuntu:
$ sudo apt-get install logrotate
Öffnen Sie unter SUSE SUSE:
$ sudo znf install logrotateHerunterladen - Kostenloser eGuide:"22 nützliche Optimierungen, damit sich Ubuntu wie zu Hause anfühlt"
Logrotate konfigurieren
Die Hauptkonfigurationsdatei von LogRotate ist /etc/logrotate.conf .
Hier ist der Standardinhalt dieser Datei in meinem Arch-System. Diese Dateiausgabe kann bei anderen Linux-Distributionen etwas anders aussehen.
$ cat /etc/logrotate.conf
Beispielausgabe:
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # restrict maximum size of log files #size 20M # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # Logs are moved into directory for rotation # olddir /var/log/archive # Ignore pacman saved files tabooext + .pacorig .pacnew .pacsave # Arch packages drop log rotation information into this directory include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 }
Lassen Sie uns sehen, was jede Option in der obigen Konfigurationsdatei bewirkt.
- wöchentlich - Die Protokolle werden jede Woche rotiert.
- um 4 drehen - Standardmäßig bewahrt LogRotate die Protokolldateien für vier Wochen (natürlich einen Monat) auf. Da alle Protokolldateien nach einer bestimmten Zeit rotiert werden, müssen Sie möglicherweise eine Sicherungskopie wichtiger Protokolldateien erstellen, wenn Sie sie nicht verlieren möchten.
- Größe 20M - Rotiert die Protokolldateien, wenn sie die Größe von 20 MB erreicht haben. Standardmäßig ist diese Option deaktiviert. Um es zu aktivieren, kommentieren Sie es einfach aus.
- erstellen - Erstellt neue Protokolldateien, nachdem die alten Protokolldateien rotiert wurden. Diese Option ist standardmäßig aktiviert.
- komprimieren - Komprimiert die Protokolldateien. Außerdem werden Protokolle standardmäßig nicht komprimiert. Wenn Sie die Protokolle komprimieren möchten, kommentieren Sie diese Zeile aus.
- /etc/logrotate.d/ - Dieses Verzeichnis enthält anwendungsspezifische Protokollregeldateien.
- fehlt ok - Wenn die Logdatei fehlt, geht Logrotate ohne Fehlermeldung zur nächsten über.
Logrotate segmentiert die Protokolldateien und komprimiert die Protokolle basierend auf den Regeln, die unter /etc/logrotate.d/ angegeben sind Verzeichnis.
Werfen wir einen Blick auf den Inhalt dieses Verzeichnisses.
$ ls /etc/logrotate.d/
Beispielausgabe wäre:
lirc samba
Wie Sie in der obigen Ausgabe sehen, enthält es verschiedene Regeldateien für alle von LogRotate verwalteten Protokolle. Führen Sie zum Anzeigen einer bestimmten Anwendungsprotokollregel, z. B. Samba, Folgendes aus:
$ cat /etc/logrotate.d/samba
Beispielausgabe:
/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log { notifempty missingok sharedscripts copytruncate postrotate /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true endscript }
Hier,
- Benachrichtigung leer - Gibt an, dass die Protokolldateien nicht rotiert werden, wenn sie leer sind.
- copytruncate - Kürzt die ursprüngliche Protokolldatei an Ort und Stelle, nachdem eine Kopie erstellt wurde.
- postrotate/endscript - Die Zeilen zwischen postrotate und endscript werden ausgeführt, nachdem die Protokolldatei rotiert wurde.
- SharedScript - Die Skripte werden nur einmal ausgeführt, egal wie viele Logs mit dem Wildcard-Muster übereinstimmen.
Sie können auch Ihre eigenen Protokollregeldateien im Verzeichnis /etc/logrotate.d/ erstellen und Ihre eigenen Regeln definieren.
Cron führt das Dienstprogramm logroate täglich auf der Suche nach Protokolldateien zum Rotieren aus. Sie können automatische Protokollrotationsregeln in /etc/cron.daily/logrotate festlegen Datei, um manuelle Benutzereingriffe zu vermeiden. Die Protokollrotation wird jeden Tag zu einer bestimmten Uhrzeit durchgeführt.
Führen Sie Folgendes aus, um zu überprüfen, ob die Protokolldateien rotieren oder nicht:
$ cat /var/lib/logrotate.status
Beispielausgabe:
logrotate state -- version 2 "/var/log/samba/log.smbd" 2016-5-12-11:0:0 "/var/log/lircd" 2016-6-15-10:0:0 "/var/log/httpd/*log" 2016-5-12-11:0:0 "/var/log/wtmp" 2016-5-6-10:0:0 "/var/log/samba/*.log" 2016-5-12-11:0:0 "/var/log/btmp" 2017-4-1-11:36:53 "/var/log/samba/log.nmbd" 2016-5-12-11:0:0
Führen Sie für weitere Details logrotate aus, indem Sie den folgenden Befehl eingeben:
$ logrotate --help
Oder,
$ man logrotate
Das war's erstmal, Leute. Logrotate ist ein einfaches, aber nützliches Tool zur Protokollrotation, das die Protokollverwaltung vereinfacht. Sie müssen sich nicht mit komplexen Konfigurations- und Installationsschritten herumschlagen. Alles ist selbsterklärend. Wenn Sie ein System verwalten, das eine große Anzahl von Protokolldateien erstellt, können Sie diese regelmäßig mit Logrotate rotieren.
Prost!