So verwalten Sie Linux-Dateiprotokolle mit Achieve

Linux-Distributionen sind dank ihrer Anpassungsfähigkeit an neue Funktionen und neue Rollen ideal für jede Art von Unternehmensumgebung und vor allem kostenlos dank offenem Code.

Wir verfügen über Tausende von Anwendungen oder Dienstprogrammen, die für die zentrale Kontrolle über alle Aspekte des Systems entwickelt wurden, und wissen auf diese Weise als Administratoren oder IT-Personal mit Sicherheit, wann ein Fehler auftritt und wissen, wie er behoben werden kann.

Innerhalb dieser breiten Palette von Möglichkeiten finden wir Logrotate, das ein Dienstprogramm der Distribution ist und dessen Funktion die Rotation und Komprimierung der Protokolldateien ist.

Diese Aufgabe ist wichtig, da der Speicherplatz auf der Festplatte beeinträchtigt werden kann, wenn an diesen Dateien nichts unternommen wird, was zu anderen Arten von allgemeinen Fehlern führen kann.

In diesem Fall verwenden wir Ubuntu 17.10 und Logrotate ist standardmäßig installiert und bereits konfiguriert, um die Protokollrotationsaufgaben aller installierten Pakete zu verwalten, einschließlich rsyslog, dem standardmäßigen Systemprotokollprozessor.

Als Nächstes werden wir sehen, wie Sie dieses wertvolle Dienstprogramm installieren und verwenden.

1. Identifizieren Sie die Version von Logrotate installiertem Linux


Der erste Schritt besteht darin, im Detail zu wissen, welche Version von Logrotate wir in diesem Fall in Ubuntu 17.10 haben. Dazu führen wir folgenden Befehl aus:
 logrotate -Version
Das Ergebnis wird folgendes sein:

VERGRÖSSERN

Wenn Logrotate nicht installiert ist, erhalten wir eine Fehlermeldung. Wir können das Tool über den Paketmanager der verwendeten Linux-Distribution installieren.

Wenn Logrotate installiert ist, die Versionsnummer jedoch erheblich abweicht, können Probleme mit einigen Einstellungen des Dienstprogramms auftreten. Wir können die Dokumentation der jeweiligen Version von Logrotate direkt auf der Manpage einsehen:

 Mann logrotate
Wir können die Standardkonfigurationsstruktur von Logrotate in der Linux-Distribution sehen:

VERGRÖSSERN

2. Logrotate Linux-Konfiguration


Logrotate-Konfigurationsinformationen sind bei Ubuntu im Allgemeinen an zwei Stellen zu finden:

etc / logrotate.confDiese Datei enthält einige Standardeinstellungen und legt die Rotation für einige Protokolle fest, die keinem Systempaket gehören. Es verwendet auch eine include-Anweisung, um Einstellungen aus einer beliebigen Datei im Verzeichnis /etc/logrotate.d abzurufen.

/etc/logrotate.d/Dieses Verzeichnis ist der Ort, an dem jedes Paket, das wir installieren und bei der Protokollrotation Hilfe benötigen, seine Logrotate-Konfiguration ablegt. In einer Standardinstallation sollten hier bereits Dateien für grundlegende Systemtools wie apt, dpkg, rsyslog usw. vorhanden sein.

Standardmäßig konfiguriert logrotate.conf wöchentliche Protokollrotationen (wöchentlich), wobei die Protokolldateien dem Root-Benutzer und der Syslog-Gruppe (su root syslog) gehören, wobei vier Protokolldateien aufbewahrt werden (Rotation 4) und neue Dateien leer erstellt werden Aufzeichnungen. erstellt, nachdem der Strom gedreht wurde (erstellen).

Wir können mit dem Dienstprogramm cat auf die Logrotate-Konfigurationsdatei eines Pakets in /etc/logrotate.d zugreifen:

 Katze /etc/logrotate.d/apt

VERGRÖSSERN

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 festgelegt ist, erbt die Standardwerte oder die in /etc/logrotate.conf festgelegten Werte. Die für apt-Protokolle konfigurierten Optionen sind:

12 . drehenBehält zwölf alte Protokolldateien bei.

MonatlichEinmal im Monat drehen.

KompresseEs kümmert sich um die Komprimierung der gedrehten Dateien. Dies verwendet standardmäßig gzip und führt zu Dateien mit der Endung .gz. Der Komprimierungsbefehl kann mit der Option compresscmd geändert werden.

fehltokEs schreibt keine Fehlermeldung, wenn die Protokolldatei fehlt.

benachrichtigenDie Protokolldatei wird nicht rotiert, wenn sie leer ist.

Es stehen noch viele weitere Konfigurationsoptionen zur Verfügung.

3. Konfigurieren Sie einen Linux-Logrotate-Dienst und fügen Sie die Konfiguration zu /etc/logrotate.d/ hinzu.


Als Nächstes konfigurieren wir eine Konfigurationsdatei, um die Protokolle eines von uns erstellten Dienstes zu verarbeiten.

Um die Protokolldateien für Anwendungen außerhalb der vorkonfigurierten und vorkonfigurierten Systemdienste zu verwalten, haben wir zwei Möglichkeiten:

  • Erstellen Sie eine neue Logrotate-Konfigurationsdatei und platzieren Sie sie im Pfad /etc/logrotate.d/. Dies wird täglich als Root-Benutzer zusammen mit allen anderen Standard-Logrotate-Jobs ausgeführt.
  • Erstellen Sie eine neue Konfigurationsdatei und führen Sie sie außerhalb der standardmäßigen Logrotate-Konfiguration von Ubuntu aus. Dies ist nur notwendig, wenn wir Logrotate als Nicht-Root-Benutzer ausführen müssen oder wenn Sie Protokolle häufiger als täglich rotieren möchten (eine stündliche Einstellung in /etc/logrotate.d/ wäre nicht effektiv, da die Logrotate-Einstellung des Systems läuft nur einmal am Tag).

In diesem Fall möchten wir die Log-Rotation für einen Webserver konfigurieren, der eine access.log und error.log im Pfad /var/log/solvtic-app/ ablegt. Es wird als www-data-Benutzer und -Gruppe ausgeführt.

Um /etc/logrotate.d/ einige Konfigurationen hinzuzufügen, müssen wir zuerst eine neue Datei wie folgt öffnen:

 sudo nano /etc/logrotate.d/solvetic-app
dort werden wir die folgenden Zeilen hinzufügen:
 /var/log/solvetic-app/*.log {tägliches Missingok Rotieren 14 Komprimieren Notifempty Erstellen 0640 WWW-Daten WWW-Daten SharedScripts Postrotate Systemctl Reloadsolvtic-App Endscript}

VERGRÖSSERN

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:

0640 WWW-Daten WWW-Daten erstellenDieser Parameter erstellt nach der Rotation eine neue leere Protokolldatei mit den angegebenen Berechtigungen (0640), Eigentümer (www-data) und Gruppe (auch www-data).

SharedscriptsDieses Flag gibt an, dass der Konfiguration hinzugefügte Skripts nur einmal pro Ausführung ausgeführt werden und nicht für jede rotierte Datei.

ins Endskript nachdrehenDieser Block enthält ein Skript, das ausgeführt wird, nachdem die Protokolldatei rotiert wurde. In diesem Fall können wir unseresolvtic-App neu laden. Dies ist manchmal notwendig, damit die Anwendung auf die neu erstellte Protokolldatei wechselt.

Wir müssen Postrotate-Ausführungen berücksichtigen, bevor Protokolle überprüft werden. Die Komprimierung kann lange dauern und die Software sollte sofort auf die neue Protokolldatei umschalten. Verwenden Sie für Aufgaben, die nach dem Komprimieren der Datensätze ausgeführt werden müssen, stattdessen den Lastaction-Block.

Nachdem wir die Konfiguration angepasst haben, die unseren Bedürfnissen am besten entspricht und sie in /etc/logrotate.d gespeichert wurden, können wir sie durch Ausführen der folgenden Zeile überprüfen.

 sudo logrotate /etc/logrotate.conf -debug
Dies ruft logrotate auf, verweist auf die Standardkonfigurationsdatei und aktiviert den Debugging-Modus:

VERGRÖSSERN

Informationen darüber, welche Protokolldateien Logrotate verarbeitet und was darauf ausgeführt wird, werden gedruckt. Wenn alles gut aussieht, sind wir fertig. Der Standard-Logrotate-Job wird einmal täglich ausgeführt und enthält Ihre neuen Einstellungen.

4. So erstellen Sie eine eigenständige Protokollierungskonfiguration Lograte Linux


Zuerst 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 fehlendeok rotieren 24 komprimieren erstellen}

VERGRÖSSERN

Wir können die Änderungen speichern und die Datei verlassen.

Diese Einstellung rotiert Dateien stündlich, komprimiert und bewahrt 24 alte Datensätze und erstellt eine neue Protokolldatei, um die rotierte Datei zu ersetzen. Um zu testen, ob es richtig funktioniert, können wir eine Protokolldatei erstellen, indem wir die folgenden Zeilen ausführen:

 cd ~ sudo mkdir logs sudo touch logs / access.log

VERGRÖSSERN

Da wir nun eine leere Protokolldatei an der richtigen Stelle haben, führen wir den Befehl logrotate aus.
Wir werden Folgendes ausführen:

 logrotate /home/solvetic/logrotate.conf --state /home /solvtic/logrotate-state -verbose

VERGRÖSSERN

Der Parameter --verbose gibt detaillierte Informationen darüber aus, was wir mit Logrotate ausführen. In diesem Fall sehen wir, dass nichts gedreht wird. Dies ist das erste Mal, dass Logrotate diese Protokolldatei sieht, und wie wir wissen, ist die Datei null Stunden alt und sollte nicht rotiert werden.

Wenn wir uns die Statusdatei ansehen, sehen wir, dass Logrotate bestimmte Informationen über die von uns durchgeführte Ausführung aufgezeichnet hat:

 Katze / Zuhause / Solvent / Logrotate-State
Wir werden folgendes sehen:

VERGRÖSSERN

Logrotate vermerkte die analysierten Datensätze und wann sie zuletzt für die Rotation in Betracht gezogen wurden. Wenn wir denselben Befehl eine Stunde später ausführen, wird der Datensatz wie beabsichtigt gedreht. Wenn Sie Logrotate zwingen möchten, die Protokolldatei zu rotieren, wenn dies nicht anders sein sollte, können wir das Flag --force verwenden:

 sudo logrotate /home/solvetic/logrotate.conf --state/home/solvtic/logrotate-state --verbose -force

5. Erstellen einer geplanten Aufgabe unter Achieve 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 fügen wir die folgende Zeile hinzu:
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state /home /solvtic /logrotate-state

VERGRÖSSERN

Diese Aufgabe wird jeden Tag zur 14. Minute jeder Stunde ausgeführt. Es funktioniert im Grunde mit dem gleichen logrotate-Befehl, den wir zuvor ausgeführt haben, obwohl wir logrotate auf den vollständigen Pfad von /usr / sbin / logrotate erweitert haben. Wir können die Datei mit der Tastenkombination Strg + O speichern und mit Strg + X verlassen.

So haben wir gesehen, dass Logrotate ein einfaches, aber effektives Dienstprogramm ist, wenn es um die Verwaltung und Kontrolle von Datensätzen in jeder Linux-Distribution geht.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave