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

Logrotate unter Linux einrichten

Stellen Sie sich vor, wie das Leben wäre, wenn ein kritischer Service vor wenigen Minuten zusammenbrach und Sie gerufen würden, um den Tag zu retten. Sie versuchen, den Dienst neu zu starten, und es wird einfach nicht funktionieren. Es gibt keine Fehlermeldungen, aber was noch wichtiger ist, keine Spuren dessen, was es getan hat, bevor es sich entschied zu sterben. Einhundertundeine Ursache geht dir durch den Kopf, und du erkennst, dass es keine Möglichkeit gibt, zu wissen, in welche Richtung du gehen sollst. Vielleicht könntest du den Server komplett neu starten. Nur vielleicht.

Dieses Szenario ist eines von vielen, in denen Ihnen die Protokollierung zu Hilfe kommen kann. Normalerweise zeichnet eine laufende Software wichtige Aktivitäten im Zusammenhang mit ihrer Ausführung für die Nachwelt in einer Datei auf. Alles kann in einer Protokolldatei gespeichert werden, da es Entwicklern und Systemadministratoren gleichermaßen hilft zu wissen, was mit einer bestimmten Software im Nachhinein passiert ist. Protokolldateien werden auch von sicherheitsorientierten Personen verwendet, um den Zugriff auf bestimmte Ressourcen zu überprüfen. Bei Netzwerken oder Messaging zeichnen Protokolldateien die Zeit auf, zu der Nachrichten gesendet oder empfangen wurden, um später darauf zurückgreifen zu können.

Protokolldateien werden per Definition immer größer, abhängig von der Häufigkeit und Ausführlichkeit, mit der sie aktualisiert werden. Um ihren Zweck zu erfüllen, werden sie normalerweise im Append-Modus geöffnet und enthalten Zeitstempel, um bei der Fehlerbehebung und Forensik zu helfen. Dies stellt jedoch ein Problem dar, da große Dateigrößen das Arbeiten mit Protokolldateien sowohl für das System als auch für den menschlichen Prüfer zu einem umständlichen Prozess machen. Protokolle werden rotiert, um die Protokolldateien haltbar zu halten. Einfach ausgedrückt wird eine neue Datei geöffnet, während die ältere geschlossen und je nach Designpräferenz entweder beibehalten oder gelöscht wird. Dadurch wird verhindert, dass Protokolle ganze Partitionen füllen und dabei Systeme in die Knie zwingen. Möglicherweise haben Sie die Protokollrotation bei der Arbeit auf einem System in der Nähe bemerkt. Sehen Sie sich die Daten im boot.log an Dateien.

Wenn in diesem Fall eine bestimmte Bedingung erfüllt ist, wird die aktuelle Datei umbenannt, indem ein Datum angehängt wird, um sie zu identifizieren und zu verfolgen, und eine neue Datei mit dem ursprünglichen Namen wird geöffnet, bereit, eingehende Protokollnachrichten zu empfangen.

Linux anmelden (rsyslogd)

Wie Sie vielleicht erwarten, ist die Protokollierung in Linux-Systemen, wie z. B. dem CentOS 7-Server, den ich zur Veranschaulichung verwende, auf einen Daemon angewiesen, um die Protokollierung zu erleichtern. Rsyslogd ist der Name des zuverlässigen alten Dienstes und es ist Open Source. Eigentlich ist es gar nicht so alt. Es ist eine verbesserte Version des ursprünglichen syslog Daemon und besitzt die Fähigkeit, Protokolle schnell zu verarbeiten und an jeden Ort in einem IP-Netzwerk weiterzuleiten. Abgesehen von syslog und rsyslog , gibt es syslog-ng , ein weiterer Daemon für die Verarbeitung von Protokollen. Der standardmäßige Log-Handler hängt von der gewählten Distribution ab. Rsyslog ist standardmäßig in vielen Red Hat-basierten Distributionen enthalten. Führen Sie den folgenden Befehl aus, um das Vorhandensein und die Version auf Ihrem System zu überprüfen:

rsyslogd -v

Da es sich um einen Daemon handelt, können Sie überprüfen, ob er aktiv ist, indem Sie systemd verwenden wie folgt:

systemctl status rsyslog

Wenn es aus irgendeinem Grund nicht läuft, können Sie es über systemd starten .

[ Anmerkung des Herausgebers:Viele neuere Systeme haben rsyslogd durch journald für die Protokollierung ersetzt. Sie können eine der Optionen oder sogar beide auswählen, um Ihre Protokollierungsanforderungen zu erfüllen. Weitere Informationen finden Sie in der Dokumentation zu Ihrer Distribution. Dieser Artikel geht davon aus, dass Sie rsyslogd verwenden.]

Logrotieren

Logrotate ist ein Linux-Dienstprogramm, dessen Kernfunktion darin besteht, Protokolle zu rotieren. Wenn es nicht als Teil der Standardinstallation des Betriebssystems installiert wird, kann es einfach durch Ausführen von:

installiert werden
 yum install logrotate

Die Binärdatei befindet sich unter /bin/logrotate .

Durch die Installation von logrotate , wird eine neue Konfigurationsdatei in /etc/ abgelegt Verzeichnis, um das allgemeine Verhalten des Dienstprogramms zu steuern, wenn es ausgeführt wird. Außerdem wird ein Ordner für dienstspezifische Snap-In-Konfigurationsdateien für maßgeschneiderte Protokollrotationsanforderungen erstellt. Dazu später mehr.

Täglicher Cronjob

Ein cron Job wird täglich ausgeführt, der das Dienstprogramm startet. Dies wird durch einen Aufruf des Dienstprogramms im standardmäßigen cron erreicht Ordner für tägliche Jobs. Während die Einzelheiten des Aufrufs den Rahmen dieses Artikels sprengen, genügt es zu sagen, dass der Aufruf nur ein Bash-Skript ist, das logrotate ausführt Binärdatei, die dem System mitteilt, was im Fehlerfall zu tun ist.

Standardspeicherort der Protokolldatei

Protokolle auf einem Linux-System können überall platziert werden, wo es die Berechtigungen zulassen. Da sie sich jedoch ständig in Größe und Inhalt ändern, schreibt die Dateisystemhierarchie per Definition vor, dass sie in /var/log/ aufbewahrt werden Verzeichnis.

Der Screenshot unten ist ein Blick auf den Inhalt meines /var/log Verzeichnis.

Konfigurationsdateien und Beispiele

/etc/logrotate.conf

Die erste zu beachtende Datei bezüglich der Funktion von logrotate ist logrotate.conf . Diese Konfigurationsdatei enthält die Anweisungen, wie Protokolldateien standardmäßig rotiert werden sollen. Wenn es keine spezifischen Anweisungen gibt, handelt das Dienstprogramm gemäß den Anweisungen in dieser Datei.

Nachfolgend finden Sie ein Beispiel für den Inhalt der Konfigurationsdatei.

Lassen Sie uns einige der Direktiven durchgehen, um ein Gefühl für die Flexibilität von logrotate zu bekommen. Freundlicherweise hat der Autor des Dienstprogramms genügend Kommentare eingegeben, um einen Neuling zum Laufen zu bringen. Sie könnten auch den man sehen Seite für einen tieferen Tauchgang. Die Direktiven weekly , dateext , compress , create , und rotate 4 angeben, dass Protokolldateien wöchentlich rotiert werden sollen , dass das Rotationsdatum als kennzeichnender Zusatz verwendet wird der rotierten Dateien, dass die rotierten Dateien komprimiert werden sollen , dass eine neue Datei erstellt werden soll um eingehende Protokolle zu erhalten, und das nicht mehr als vier Protokolle sollten aufbewahrt werden. Mit anderen Worten, das fünftneueste Protokoll sollte gelöscht werden. Beachten Sie auch, dass auf meinem System aufgrund des Vorhandenseins von # vor dem compress Direktive ist die Komprimierung standardmäßig deaktiviert.

Außerdem gibt es eine Anweisung, einen bestimmten Ordner einzuschließen:/etc/logrotate.d . Dieser Ordner wird für paketspezifische Protokollrotationsanforderungen verwendet. Pakete, die entwickelt wurden, um logrotate zu nutzen Konfigurationsdateien in diesem Verzeichnis ablegen. Diese Modularität entspricht dem Geist von Linux und verbessert die Erweiterbarkeit des Dienstprogramms. Die Konfigurationsdateien enthalten gegebenenfalls ähnliche Anweisungen und benutzerdefinierte Protokolldateien. Sie können auch Ihre eigene Konfigurationsdatei erstellen, um jede Protokolldatei Ihrer Wahl zu handhaben. Geben Sie der Datei einfach einen Namen, fügen Sie die zu verarbeitende Protokolldatei hinzu und legen Sie sie in diesem Verzeichnis ab. Schließlich gibt es Anweisungen für Protokolldateien ohne Besitzerpakete, wie zum Beispiel wtmp und andere Systemprotokolldateien. Der man Die Seite ist mit mehr Anweisungen gefüllt, und für Benutzer, die spezifischere Rotationsanforderungen haben, empfehle ich Ihnen dringend, einen Blick darauf zu werfen.

/etc/logrotate.d

Glücklicherweise habe ich viel über /etc/logrotate.d gesprochen Lassen Sie mich Ihnen also ohne viel Aufhebens den Inhalt dieses Verzeichnisses zeigen, um die früher geteilten Ideen nach Hause zu bringen.

Und nur zur Sicherheit werfen wir einen Blick auf die Samba-Konfigurationsdatei.

Können Sie erkennen, wie ähnlich es zu logrotate.conf ist ? Bevor ich den Vorhang auf dieses Stück ziehe, lassen Sie uns einfach einige der Anweisungen in dieser Datei durchgehen:

/var/log/samba/* - Die zu rotierende Protokolldatei. In diesem Fall ist es jede Protokolldatei im Samba-Protokollverzeichnis.

notifempty - Anweisung, dass die Datei nicht gedreht werden soll, wenn sie leer ist.

olddir /var/log/samba/old - Ort zum Speichern alter rotierter Protokolle.

missingok - Stoppt logrotate einen Fehler auszugeben, wenn die Protokolldatei fehlt.

copytruncate - Schließen Sie die Protokolldatei nicht. Erstellen Sie eine Kopie, bei der es sich um die rotierte, umbenannte Datei handelt, und kürzen Sie dann die Protokolldatei auf die Größe Null

Können Sie erraten, was die sharedscripts Richtlinie tut? Kein Grund zu raten - wenden Sie sich an den man Seite.

Abschluss

Hoffentlich reicht dies aus, um Sie mit der Verwaltung von Protokollen zum Laufen zu bringen. Logrotate ist ein einfaches, aber leistungsstarkes Open-Source-Rotationsprogramm. Bis zum nächsten Beitrag, viel Spaß beim Rotieren!

[ Kostenloser Online-Kurs:Technische Übersicht zu Red Hat Enterprise Linux. ]


Linux
  1. Verwenden von Logrotate unter Linux zum Verwalten von Protokolldateien (mit Beispielen)

  2. Linux – Alles ist eine Datei?

  3. So leeren Sie eine Protokolldatei unter Linux

  4. Centos/Linux-Einstellung logrotate auf maximale Dateigröße für alle Protokolle

  5. Wie drucke ich die Linux-Befehlsausgabe in eine Datei?

Linux-Dateibefehl

So erstellen Sie eine Datei unter Linux

Weniger Befehl unter Linux

Gzip-Befehl unter Linux

Gunzip-Befehl unter Linux

So ändern Sie die Standard-Sudo-Protokolldatei in Linux