Linux-Distributionen eignen sich aufgrund ihrer Fähigkeit, sich an neue Funktionen und Rollen anzupassen, ideal für jede Art von Unternehmensumgebung und sind dank des kostenlosen Codes vor allem kostenlos.
Wir verfügen über Tausende von Anwendungen oder Dienstprogrammen, die für die zentrale Steuerung aller Aspekte des Systems entwickelt wurden, und als Administratoren oder IT-Mitarbeiter wissen wir mit Sicherheit, wann ein Fehler auftritt und wie er behoben werden kann.
In diesem weiten Bereich von Möglichkeiten können wir Logrotate finden, das ein Dienstprogramm der Distribution ist und dessen Funktion die Drehung und Komprimierung der Registrierungsdateien ist .
Diese Aufgabe ist wichtig, da der Speicherplatz auf der Festplatte beeinträchtigt werden kann, wenn für diese Dateien keine Maßnahmen ergriffen werden. Dies kann zu anderen Arten von allgemeinen Fehlern führen.
In diesem Fall verwenden wir Ubuntu 17.10, und Logrotate wird standardmäßig installiert und ist bereits für die Verwaltung der Aufgaben zur Datensatzrotation aller installierten Pakete konfiguriert, einschließlich rsyslog, dem Standard-Systemregistrierungsprozessor.
Als Nächstes erfahren Sie, wie Sie dieses nützliche Dienstprogramm installieren und verwenden.
1. Ermitteln Sie die Version von Logrotate, auf der Linux installiert ist
Der erste Schritt besteht darin, genau zu wissen, welche Version von Logrotate in diesem Fall Ubuntu 17.10 ist. Dazu führen wir folgenden Befehl aus:
Logrotate-Version
Das Ergebnis wird folgendes sein:
Wenn Logrotate nicht installiert ist, erhalten wir eine Fehlermeldung. Wir können das Tool mit dem Paketmanager der verwendeten Linux-Distribution installieren.
Wenn Logrotate installiert ist, die Versionsnummer sich jedoch erheblich unterscheidet, können Probleme mit einigen Dienstprogrammeinstellungen auftreten. Wir können die Dokumentation der spezifischen Version von Logrotate direkt auf der Manpage einsehen:
Mann logrotieren
Wir können die Standardkonfigurationsstruktur von Logrotate in der Linux-Distribution sehen:
2. Konfigurieren von Logrotate Linux
Logrotate-Konfigurationsinformationen finden Sie im Falle von Ubuntu normalerweise an zwei Stellen:
Standardmäßig konfiguriert logrotate.conf wöchentliche Datensatzrotationen (wöchentlich) mit Protokolldateien, die dem Root-Benutzer und der Syslog-Gruppe (ihrem Root-Syslog) gehören, wobei vier Protokolldateien beibehalten werden (Rotation 4) und neue Dateien erstellt werden von leeren Datensätzen. erstellt, nachdem der aktuelle gedreht wurde (create).
Mit dem Dienstprogramm cat können wir auf die Logrotate-Konfigurationsdatei eines Pakets in /etc/logrotate.d zugreifen:
cat /etc/logrotate.d/apt
Diese Datei enthält Konfigurationsblöcke für zwei verschiedene Protokolldateien im Verzeichnis / var / log / apt /: term.log und history.log. Beide haben die gleichen Möglichkeiten.
Jede Option, die in diesen Konfigurationsblöcken nicht konfiguriert ist, übernimmt die Standardwerte oder die in /etc/logrotate.conf festgelegten Werte. Die für die Apt-Register konfigurierten Optionen sind:
Es stehen viele weitere Konfigurationsoptionen zur Verfügung.
3. Konfigurieren eines Logrotate Linux-Dienstes und Hinzufügen einer Konfiguration zu /etc/logrotate.d/
Als Nächstes konfigurieren wir eine Konfigurationsdatei, um die Datensätze eines Dienstes zu verarbeiten, den wir erstellen werden.
Um die Protokolldateien für Anwendungen außerhalb vorkonfigurierter und vorkonfigurierter Systemdienste zu verwalten, haben wir zwei Möglichkeiten:
- Erstellen Sie eine neue Logrotate-Konfigurationsdatei und platzieren Sie diese im Pfad /etc/logrotate.d/. Dies wird zusammen mit allen anderen Standard-Logrotate-Jobs täglich als Root-Benutzer ausgeführt.
- Erstellen Sie eine neue Konfigurationsdatei und führen Sie sie außerhalb der Ubuntu Logrotate-Standardkonfiguration aus. Dies ist nur erforderlich, wenn wir Logrotate als Nicht-Root-Benutzer ausführen müssen oder Datensätze häufiger als täglich wechseln möchten (eine Konfiguration pro Stunde in /etc/logrotate.d/ wäre nicht effektiv, da nur die Logrotate-Konfiguration des Systems zutrifft einmal am Tag laufen).
In diesem Fall möchten wir die Rotation von Datensätzen für einen Webserver konfigurieren, der ein access.log und ein error.log im Pfad / var / log / solvetic-app / ablegt. Es wird als Benutzer und Gruppe von WWW-Daten ausgeführt.
Um /etc/logrotate.d/ etwas zu konfigurieren, müssen wir zuerst eine neue Datei auf folgende Weise öffnen:
sudo nano /etc/logrotate.d/solvetic-app
dort werden wir die folgenden Zeilen hinzufügen:
/var/log/solvetic-app/*.log}
Wir können die Änderungen mit der Tastenkombination Strg + O speichern und den Editor mit Strg + X verlassen.
Einige der neuen Konfigurationsanweisungen in dieser Datei sind:
Wir müssen die posttrotativen Ausführungen berücksichtigen, bevor die Datensätze überprüft werden. Die Komprimierung kann lange dauern und die Software sollte sofort auf die neue Protokolldatei umstellen. Verwenden Sie für die Aufgaben, die nach dem Komprimieren der Datensätze ausgeführt werden müssen, stattdessen den Lastaction-Block.
Nachdem Sie die Konfiguration angepasst haben, die unseren Anforderungen am besten entspricht und in /etc/logrotate.d gespeichert wurde, können Sie sie überprüfen, indem Sie die folgende Zeile ausführen.
sudo logrotate /etc/logrotate.conf -debug
Dies ruft logrotate auf, zeigt auf die Standardkonfigurationsdatei und aktiviert den Debug-Modus:
Es werden Informationen darüber ausgegeben, welche Protokolldateien Logrotate ausführt und was auf diesen ausgeführt wird. Wenn alles gut aussieht, sind wir fertig. Das Standardwerk von Logrotate wird einmal täglich ausgeführt und enthält die neue Konfiguration.
4. Erstellen einer separaten Registrierungskonfiguration Holen Sie sich Linux
Zunächst erstellen wir eine Konfigurationsdatei in unserem Home-Verzeichnis. Wir können es mit einem Texteditor öffnen:
sudo nano /home/solvetic/logrotate.conf
In die neue Datei fügen wir Folgendes ein:
/home/solvetic/logs/*.log {stündlich fehltok drehen 24 komprimieren erstellen}
Wir können die Änderungen speichern und die Datei verlassen.
Diese Konfiguration dreht die Dateien stündlich, komprimiert und speichert vierundzwanzig alte Datensätze und erstellt eine neue Protokolldatei, um die gedrehte Datei zu ersetzen. Um zu beweisen, dass es richtig funktioniert, können wir eine Protokolldatei erstellen, indem wir die folgenden Zeilen ausführen:
cd ~ sudo mkdir logssudo touch logs / access.log
Nachdem wir an der richtigen Stelle eine leere Protokolldatei haben, führen wir den Befehl logrotate aus.
Wir werden folgendes ausführen:
logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state -verbose
Der Parameter –verbose gibt detaillierte Informationen darüber aus, was wir mit Logrotate ausführen. In diesem Fall sehen wir, dass nichts gedreht wurde. Dies ist das erste Mal, dass Logrotate diese Protokolldatei sieht, und wie wir wissen, hat die Datei null Stunden und sollte nicht gedreht werden.
Wenn wir die Statusdatei sehen, werden wir sehen, dass Logrotate bestimmte Informationen über die von uns durchgeführte Ausführung aufgezeichnet hat:
cat / home / solvetic / logrotate-zustand
Wir werden folgendes sehen:
Logrotate zeichnete die von ihm analysierten Aufzeichnungen auf und berücksichtigte sie zuletzt für die Rotation. Wenn wir diesen Befehl eine Stunde später ausführen, wird der Datensatz wie das Ziel gedreht. Wenn Sie Logrotate zwingen möchten, die Protokolldatei zu drehen, wenn Sie dies nicht tun sollten, können Sie das Flag –force verwenden:
sudo logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state --verbose -force
5. Erstellen einer geplanten Aufgabe Holen Sie sich Linux
Schließlich müssen wir einen Cron-Job konfigurieren, um Logrotate stündlich auszuführen. Dazu öffnen wir die crontab unseres Benutzers, indem wir folgendes ausführen:
crontab -e
In der geöffneten Datei werden wir die folgende Zeile hinzufügen:
14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state
Diese Aufgabe wird täglich zur 14. Minute jeder vollen Stunde ausgeführt. Es funktioniert im Wesentlichen mit demselben Befehl logrotate, den wir zuvor ausgeführt haben, obwohl wir logrotate auf den vollständigen Pfad / usr / sbin / logrotate erweitert haben. Wir können die Datei mit der Tastenkombination Strg + O speichern und mit Strg + X beenden.
So haben wir gesehen, wie einfach, aber effektiv Logrotate ist, wenn es um die Verwaltung und Kontrolle von Datensätzen in jeder Linux-Distribution geht.