GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwalten Sie Protokolldateien mit Logrotate unter Linux

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 logrotate
Herunterladen - 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!


Linux
  1. So führen Sie einen zeilenweisen Vergleich von Dateien in Linux mit dem Befehl diff durch

  2. So schreiben Sie Protokolldateien im RAM mit Log2ram unter Linux

  3. Linux-Logdateien

  4. So verwenden Sie Logrotate zum Verwalten von Protokolldateien

  5. So sortieren Sie Dateien in Linux mit dem Sortierbefehl

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So synchronisieren Sie Dateien in zwei Richtungen mit Osync-Skript in Linux

So zeigen Sie Nginx-Protokolldateien unter Linux an

So zeigen Sie Apache-Protokolldateien unter Linux an

So kopieren Sie Dateien unter Linux mit dem CP-Befehl

So richten Sie die Protokollrotation mit Logrotate unter Linux ein und verwalten sie