Protokolldateien sind für die Linux-Systemsicherheit am wichtigsten. Das Tool logrotate wurde speziell entwickelt, um die Verwaltung von Protokolldateien auf einem Linux-System zu vereinfachen, das die automatische Rotation, Komprimierung, Entfernung und den Versand von Protokolldateien ermöglicht. Sie können logrotate ganz einfach so einstellen, dass eine Protokolldatei täglich, wöchentlich oder monatlich verarbeitet wird. Das logrotate-Programm, das verwendet wird, um Protokolldateien zu rotieren, indem die ältesten von Ihrem System entfernt und neue Protokolldateien erstellt werden.
In diesem Tutorial werde ich erklären, wie man logrotate verwendet, um Protokolle auf dem Ubuntu 18.04-Server zu verwalten.
Anforderungen
- Ein Server, auf dem Ubuntu 18.04-Server ausgeführt wird.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
Logrotate installieren
Standardmäßig ist logrotate auf dem Ubuntu 18.04 LTS-Server verfügbar. Wenn nicht, können Sie es installieren, indem Sie den folgenden Befehl ausführen:
sudo apt-get install logrotate -y
Nachdem Logrotate installiert wurde, können Sie die Version von Logrotate mit dem folgenden Befehl überprüfen:
sudo logrotate
Ausgabe:
logrotate 3.11.0 - Copyright (C) 1995-2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command] [-s|--state=statefile] [-v|--verbose] [-l|--log=STRING] [--version] [-?|--help] [--usage] [OPTION...]
Logrotate konfigurieren
Standardmäßig befindet sich die Hauptkonfigurationsdatei logrotate.conf von logrotate unter /etc/logrotate.conf. Andere Konfigurationsdateien sind unter /etc/logrotate.d verfügbar. Sie können sie mit dem folgenden Befehl auflisten:
ls /etc/logrotate.d
Ausgabe:
alternatives apport dpkg mysql-server rsyslog unattended-upgrades apache2 apt lxd openproject ufw
Die Hauptoptionen von logrotate sind unten aufgeführt:
fehltok :Keinen Fehler auslösen, wenn das Protokoll fehlt
wöchentlich :rotiert die Protokolldateien einmal pro Woche
erstellen :Die alte Datei wird unter einem neuen Namen gespeichert und eine neue Datei erstellt
komprimieren :logrotate komprimiert Protokolldateien mit gzip, um Speicherplatz zu sparen
drehen 4 :logrotate rotiert ein bestimmtes Protokoll viermal, bevor es gelöscht wird, sodass die Protokolle vier Wochen lang online bleiben
leer benachrichtigen :Protokolldatei nicht rotieren, wenn sie leer ist
Standardmäßig wird logrotate täglich ausgeführt, indem das Shell-Skript /etc/cron.daily/logrotate ausgeführt wird. Lassen Sie uns die Apache-Logrotation testen, indem Sie den folgenden Befehl ausführen:
sudo logrotate -d /etc/logrotate.d/apache2
Ausgabe:
reading config file /etc/logrotate.d/apache2 Reading state from file: /var/lib/logrotate/status Allocating hash table for state file, size 64 entries Handling 1 logs rotating pattern: /var/log/apache2/*.log after 1 days (14 rotations) empty log files are not rotated, old logs are removed considering log /var/log/apache2/access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/error.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/other_vhosts_access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) not running prerotate script, since no logs will be rotated not running postrotate script, since no logs were rotated
Standardmäßig wird logrotate als täglicher Cron-Job ausgeführt. Weitere Informationen zu Cron-Jobs finden Sie unter /etc/cron.daily/logrotate. Sie können den Cron-Job für logrotate auch so konfigurieren, dass er stündlich, wöchentlich und jährlich ausgeführt wird.