So richten und verwalten Sie die Protokolldrehung mithilfe von Logrotate unter Linux

So richten und verwalten Sie die Protokolldrehung mithilfe von Logrotate unter Linux

Eine der interessantesten (und vielleicht auch eines der wichtigsten) Verzeichnisse in einem Linux -System ist /var/log. Gemäß dem Dateisystem -Hierarchiestand.

Solche Dateien sind bekannt als Protokolle und sind der Schlüssel zur Untersuchung, wie das System arbeitet (und wie es sich in der Vergangenheit verhalten hat). Protokolle sind auch die erste Informationsquelle, bei der Administratoren und Ingenieure während der Fehlerbehebung aussehen.

Wenn wir uns den Inhalt ansehen /var/log auf einen Centos/Rhel/Fedora Und Debian/Ubuntu (Für Sorte) werden wir die folgenden Protokolldateien und Unterverzeichnisse sehen.

Bitte beachten Sie, dass das Ergebnis in Ihrem Fall je nach den Diensten, die auf Ihren Systemen ausgeführt werden, und der Zeit, in der sie ausgeführt wurden.

In Rhel/Centos und Fedora

# ls /var /log 
Protokolldateien und Verzeichnisse unter CentOS 7

In Debian und Ubuntu

# ls /var /log 
Protokolldateien und Verzeichnisse in Debian 8 protokollieren

In beiden Fällen können wir feststellen, dass einige der Protokollamen wie erwartet enden "Protokoll", während andere entweder mit einem Datum umbenannt werden (zum Beispiel, Mailog-20160822 An Centos) oder komprimiert (überlegen Auth.Protokoll.2.gz Und Mysql.Protokoll.1.gz An Debian).

Dies ist kein Standardverhalten, das auf der ausgewählten Verteilung basiert, kann jedoch nach Belieben unter Verwendung von Anweisungen in den Konfigurationsdateien geändert werden, wie wir in diesem Artikel sehen werden.

Wenn die Protokolle für immer gehalten würden, würden sie schließlich das Dateisystem dort füllen, wo /var/log wohnt. Um dies zu verhindern, kann der Systemadministrator ein schönes Dienstprogramm genannt werden Lehnrotat Die Protokolle regelmäßig aufzuräumen.

In wenigen Worten, Lehnrotat Wird das Hauptprotokoll umbenannt oder komprimiert, wenn eine Bedingung erfüllt ist (mehr darüber in einer Minute), damit das nächste Ereignis in einer leeren Datei aufgezeichnet wird.

Außerdem wird es entfernt "alt" Protokolldateien und die neuesten behalten. Natürlich können wir entscheiden, was "alt" Mittel und wie oft wollen wir, dass Lehrotat die Protokolle für uns aufräumt.

Logrotate unter Linux installieren

Installieren Lehnrotat, Verwenden Sie einfach Ihren Paketmanager:

---------- Auf Debian und Ubuntu ---------- # APTITIDE UPDATE && Aptitude Install Logrotate ---------- Auf CentOS, Rhel und Fedora ---------- # yum update && yum install Logrotate 

Es ist wert und gut zu beachten, dass die Konfigurationsdatei (/etc/lwerte.Conf) können darauf hinweisen, dass andere, spezifischere Einstellungen für individuelle Einstellungen platziert werden können .Conf Dateien im Inneren /etc/lwerte.D.

Vorgeschlagene lesen: Verwalten

Dies ist der Fall, wenn und nur wenn die folgende Zeile existiert und nicht kommentiert wird:

Inhaftieren /etc /lwerte.D 

Wir werden uns an diesen Ansatz halten, da er uns helfen wird, die Dinge in Ordnung zu halten und die zu verwenden Debian Box für die folgenden Beispiele.

Konfigurieren Sie Logrotate unter Linux

Als sehr vielseitiges Werkzeug bietet Lehnrotate zahlreiche Anweisungen, mit denen wir konfigurieren können, wann und wie die Protokolle gedreht werden und was gleich danach passieren sollte.

Lassen Sie uns den folgenden Inhalt einfügen in /etc/lwerte.D/Apache2.Conf (Beachten Sie, dass Sie diese Datei höchstwahrscheinlich erstellen müssen) und jede Zeile untersuchen, um ihren Zweck anzuzeigen:

Apache2.Conf
/var/log/apache2/* wöchentlich drehen 

Die erste Zeile gibt an, dass die Anweisungen im Block für alle Protokolle in darin gelten /var/log/apache2:

  • wöchentlich bedeutet, dass das Werkzeug versucht, die Protokolle wöchentlich zu drehen. Andere mögliche Werte sind täglich und monatlich.
  • drehen 3 zeigt an, dass nur 3 gedrehte Protokolle aufbewahrt werden sollten. Somit wird die älteste Datei im vierten nachfolgenden Lauf entfernt.
  • Größe = 10 m Legt die Mindestgröße für die Rotation auf 10 m fest. Mit anderen Worten, jedes Protokoll wird nicht gedreht, bis es 10 MB erreicht.
  • Kompresse Und Verzögerungskompremen werden verwendet, um festzustellen, dass alle gedrehten Protokolle mit Ausnahme des neuesten komprimiert werden sollten.

Lassen Sie uns einen Trockenlaufen ausführen, um zu sehen, was Logrotate tun würde, wenn es jetzt tatsächlich ausgeführt würde. Verwenden Sie das -D Option gefolgt von der Konfigurationsdatei (Sie können Logrotate tatsächlich ausführen, indem Sie diese Option weglassen):

# lehrogrotate -d /etc /logrotate.D/Apache2.Conf 

Die Ergebnisse sind unten angezeigt:

Rotieren Sie Apache -Protokolle mit Logrotate

Anstatt die Protokolle zu komprimieren, konnten wir sie nach dem benennen Datum Wenn sie gedreht wurden. Dazu werden wir die verwenden Datumspiegel Richtlinie. Wenn unser Datumsformat anders als der Standard ist yjyymmdd, Wir können es angeben Datumsformat.

Vorgeschlagene lesen: Installieren Sie 'ATOP', um die Protokollierungsaktivität von Linux -Systemprozessen zu überwachen

Beachten Sie, dass wir sogar verhindern können, dass die Rotation stattfindet, wenn das Protokoll mit leer ist NotifeMpty. Lassen Sie uns zusätzlich die Logrotate anweisen, das gedrehte Protokoll an den Systemadministrator zu senden ([E -Mail geschützt] in diesem Fall) für seine Referenz (dies erfordert, dass ein Mailserver eingerichtet wird, der nicht im Rahmen dieses Artikels liegt).

Wenn Sie E -Mails über Logrotate erhalten möchten, können Sie den Postfix -Mailserver wie gezeigt einrichten: Installieren Sie den Postfix -Mail -Server

Diesmal werden wir verwenden /etc/lwerte.D/Squid.Conf nur drehen /var/log/squid/access.Protokoll:

Tintenfisch.Conf
/var/log/squid/access.log monatlich erstellen 0644 Root Root Drehen Sie 5 Größe = 1M Datum des Datumsangabens -%d%M%y NotifeMpty Mail [E -Mail geschützt] 

Wie wir im Bild unten sehen können, musste dieses Protokoll nicht gedreht werden. Wenn jedoch der Größenzustand erfüllt ist (Größe = 1m) Das gedrehte Protokoll wird umbenannt Zugang.Log-25082020 (Wenn das Protokoll eingeschaltet wurde 25. August 2020) und das Hauptprotokoll (Zugang.Protokoll) wird mit Zugriffsberechtigungen neu erstellt auf festgelegt 0644 und mit Wurzel als Eigentümer und Gruppenbesitzer.

Als schließlich die Anzahl der Protokolle endlich erreicht 6, Das älteste Protokoll wird verschickt [E -Mail geschützt].

Drehen Sie Tintenfischprotokolle mit Logrotate

Nehmen wir nun an, Sie möchten einen benutzerdefinierten Befehl ausführen, wenn die Rotation stattfindet. Platzieren Sie dazu die Linie mit einem solchen Befehl zwischen den Anweisungen nach poTrotatat und Enderskription.

Nehmen wir beispielsweise an, wir möchten eine E -Mail an die Stammscheibe senden, wenn eines der Protokolle im Inneren /var/log/myService wird gedreht. Fügen wir die Zeilen in Rot hinzu zu hinzu /etc/lwerte.D/Squid.Conf:

Tintenfisch.Conf
/var/log/myService/* monatlich erstellen 0644 Root Root Drehen Sie 5 Größe = 1M poTrotate echo "Eine Rotation fand gerade statt."| Mail -Rootendskrise  

Zu guter Letzt ist es wichtig zu beachten, dass die vorhandenen Optionen in vorhanden sind /etc/lwerte.D/*.Conf Überschreiben Sie diejenigen in der Hauptkonfigurationsdatei im Falle von Konflikten.

Lehnrotate und Cron

Standardmäßig erstellt die Installation von Logrotate eine Crontab -Datei innerhalb /etc/cron.täglich genannt Lehnrotat. Da es sich bei den anderen Crontab -Dateien in diesem Verzeichnis der Fall handelt, wird es täglich abgehalten, beginnend bei 6:25 Uhr Wenn Anacron nicht installiert ist.

Vorgeschlagene lesen: 11 Beispiele für Cron -Planungsaufgaben unter Linux

Andernfalls beginnt die Ausführung herum 7:35 Uhr. Zu überprüfen, achten Sie auf die Linie, die enthält Cron.täglich In beiden /etc/crontab oder /etc/anacrontab.

Zusammenfassung

In einem System, das mehrere Protokolle generiert, kann die Verabreichung solcher Dateien mit Logrotate stark vereinfacht werden. Wie wir in diesem Artikel erläutert haben, dreht es automatisch regelmäßig oder per Mail -Protokolle oder wenn die Datei eine bestimmte Größe erreicht.

Stellen Sie einfach sicher, dass es als Cron -Job ausgeführt wird, und Lwertzrotate erleichtert Ihnen die Dinge viel einfacher. Weitere Informationen finden Sie auf der Mannseite.

Haben Sie Fragen oder Vorschläge zu diesem Artikel? Fühlen Sie sich frei, uns mit dem Kommentarformular unten zu informieren.