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

Konfigurieren Sie logrotate unter Redhat Linux

Logrotieren ist ein Dienstprogramm, das für Administratoren entwickelt wurde, die Server verwalten, die eine große Menge an Protokolldateien erzeugen. Es hilft ihnen, Speicherplatz zu sparen und das potenzielle Risiko zu vermeiden, dass ein System aufgrund von Speicherplatzmangel nicht mehr reagiert.

Normalerweise besteht eine Lösung zur Vermeidung dieser Art von Problem in der Einrichtung eine separate Partition oder ein logisches Volume für /var Einhängepunkt. Logrotate kann jedoch auch eine praktikable Lösung für dieses Problem sein, insbesondere wenn es zu spät ist, alle Protokolle auf eine andere Partition zu verschieben.

In diesem Tutorial zeigen wir, wie Sie den logrotate-Dienst auf Red Hat Enterprise Linux konfigurieren, damit Sie Protokolldateien wieder unter Ihre Kontrolle bringen können.

In diesem Tutorial lernen Sie:

  • Verwendung des Dienstprogramms logrotate auf RHEL
  • Wo die Logrotate-Konfigurationsdateien gespeichert sind
  • So richten Sie eine benutzerdefinierte Logrotate-Konfiguration ein
  • So testen Sie eine Logrotate-Implementierung
Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System Red Hat Enterprise Linux
Software logrotate
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl.
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Was ist logrotate?


Logrotate bietet Systemadministratoren die Möglichkeit, alle vom System erstellten Protokolldateien systematisch zu rotieren und zu archivieren und so den Speicherplatzbedarf eines Betriebssystems zu reduzieren. Standardmäßig wird logrotate einmal am Tag mit einem Cron-Scheduler vom Speicherort /etc/cron.daily/ aufgerufen .

# ls /etc/cron.daily/
cups  logrotate  makewhatis.cron  mlocate.cron  prelink  readahead.cron  rhsmd  tmpwatch

Logrotate konfigurieren

Die Konfiguration von Logrotate erfolgt durch Bearbeiten von zwei separaten Konfigurationsdateien:

  • /etc/logrotate.conf
  • dienstspezifische Konfigurationsdateien gespeichert in /etc/logrotate.d/

Die Hauptdatei logrotate.conf Datei enthält eine generische Konfiguration. Hier ist eine Standard-Logrotate-Konfigurationsdatei logrotate.conf :

  weekly
  rotate 4
  create
  dateext
  include /etc/logrotate.d
  /var/log/wtmp {
      monthly
      create 0664 root utmp
          minsize 1M
      rotate 1
  }
  • Zeile 1 – wöchentlich Konfigurationsoption stellt eine wöchentliche Rotation aller Protokolldateien sicher, die in der Hauptkonfigurationsdatei und im Verzeichnis /etc/logrotate.d/ definiert sind.
  • Linie 2 – um 4 drehen stellt sicher, dass logrotate ein 4-wöchiges Backup aller Logdateien vorhält
  • Zeile 3 – erstellen Die Option weist logrotate an, nach jeder Rotation neue leere Protokolldateien zu erstellen
  • Zeile 4 – datetext fügt allen rotierten Protokolldateien eine Erweiterung in Form des Datums hinzu, wann jede einzelne Protokolldatei von logrotate verarbeitet wurde
  • Zeile 5 – einschließen alle anderen Konfigurationen aus dem Verzeichnis /etc/logrotate.d
  • Zeile 6 – 11 enthält eine spezifische Dienstprotokoll-Rotationskonfiguration

Im Gegensatz zu logrotate.conf , ein Verzeichnis /etc/logrotate.d/ enthält spezifische Dienstkonfigurationsdateien, die von logrotate verwendet werden. Im nächsten Abschnitt erstellen wir ein Beispiel für eine logrotate-Skelettkonfiguration.

Einschließlich neuer Dienstprotokolle zum Logrotate

In diesem Abschnitt fügen wir eine neue Protokolldatei zu einer Logrotate-Konfiguration hinzu. Nehmen wir an, wir haben eine Protokolldatei namens /var/log/linuxserver.log , die sich in unserem /var/log befindet Verzeichnis, das täglich rotiert werden muss.

Zuerst müssen wir eine neue logrotate-Konfigurationsdatei erstellen, um Platz für unsere neue Protokolldatei zu schaffen:

# vi /etc/logrotate.d/linuxserver

Fügen Sie den folgenden Text in /etc/logrotate.d/linuxserver ein:

/var/log/linuxserver.log {
        rotate 7
        daily
        compress
        delaycompress
        missingok
        notifempty
        create 660 linuxuser linuxuser }

Diese Konfigurationsdatei wird täglich ausgeführt, erstellt maximal 7 Archive im Besitz von linuxuser und der linuxuser-Gruppe mit 660-Berechtigungen, komprimiert alle Protokolle und schließt nur gestrige und leere Protokolldateien aus. Hier sind einige ausgewählte Logrotate-Konfigurationsschlüsselwörter. Ein vollständiges Tutorial finden Sie auf der man-Seite von logrotate.

täglich Protokolldateien werden täglich rotiert.
wöchentlich Protokolldateien werden rotiert, wenn der aktuelle Wochentag kleiner als der Wochentag der letzten Rotation ist oder wenn seit der letzten Rotation mehr als eine Woche vergangen ist. Dies ist normalerweise dasselbe wie das Rotieren von Protokollen am ersten Tag der Woche, aber wenn logrotate nicht jede Nacht ausgeführt wird, findet eine Protokollrotation bei der ersten gültigen Gelegenheit statt.
monatlich Protokolldateien werden rotiert, wenn logrotate zum ersten Mal in einem Monat ausgeführt wird (normalerweise am ersten Tag des Monats).
Benachrichtigung leer Rotieren Sie das Protokoll nicht, wenn es leer ist (dies überschreibt die ifempty-Option).
nocompress Alte Versionen von Protokolldateien sind nicht komprimiert.
delaycompress Komprimierung der vorherigen Protokolldatei auf den nächsten Rotationszyklus verschieben. Dies wirkt sich nur in Kombination mit der Kompresse aus. Es kann verwendet werden, wenn einem Programm nicht gesagt werden kann, dass es seine Protokolldatei schließen soll, und daher möglicherweise noch einige Zeit in die vorherige Protokolldatei schreibt.
komprimieren Alte Versionen von Protokolldateien werden standardmäßig mit gzip komprimiert.
E-Mail-Adresse Wenn ein Protokoll nicht mehr existiert, wird es an die Adresse geschickt. Wenn von einem bestimmten Protokoll keine Mail generiert werden soll, kann die Direktive nomail verwendet werden.
missingok Wenn die Protokolldatei fehlt, fahren Sie mit der nächsten fort, ohne eine Fehlermeldung auszugeben.

Sobald Ihre Konfigurationsdatei fertig ist, kopieren Sie sie einfach in das logrotate-Verzeichnis und ändern Sie den Besitzer und die Berechtigungen:

# cp linuxserver /etc/logrotate.d/
# chmod 644 /etc/logrotate.d/linuxserver
# chown root.root /etc/logrotate.d/linuxserver

Testen einer neuen Logrotate-Konfiguration

Nachdem die Logrotate-Konfiguration implementiert wurde, führen Sie die folgenden Schritte aus, um sie zu testen.

  1. Erstellen Sie eine Beispielprotokolldatei, falls sie noch nicht existiert:
    # echo "rotate my log file" > /var/log/linuxserver.log
    
  2. Sobald Ihre Protokolldatei vorhanden ist, zwingen Sie logrotate, alle Protokolle mit -f zu rotieren Option.
    # logrotate -f /etc/logrotate.conf
    

    Warnung:Der obige Befehl rotiert alle Ihre in /etc/logrotate.d definierten Protokolle Verzeichnis.

  3. Besuchen Sie jetzt erneut Ihr Verzeichnis /var/log/ und bestätigen Sie, dass Ihre Protokolldatei rotiert und eine neue Protokolldatei erstellt wurde.

Abschlussgedanken

Wie bereits zuvor erwähnt, ist der beste Weg, um zu vermeiden, dass Ihr System durch Protokolldateien verstopft wird, eine separate Partition/ein logisches Volume für Ihr /var/ zu erstellen oder noch besser /var/log Verzeichnis. Aber selbst dann kann logrotate Ihnen helfen, Speicherplatz zu sparen, indem es Ihre Protokolldateien komprimiert. Logrotate kann Ihnen auch dabei helfen, Ihre Protokolldateien für eine zukünftige Referenz zu archivieren, indem es eine zusätzliche Kopie erstellt oder Ihnen alle neu rotierten Protokolldateien per E-Mail zusendet.


Linux
  1. Konfigurieren Sie den standardmäßigen virtuellen KVM-Speicher auf Redhat Linux

  2. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  3. So konfigurieren Sie LVM unter Linux / CentOS / Redhat

  4. So konfigurieren Sie das YUM-Repository in Linux/Centos/Redhat | YUM unter Linux/Centos/Redhat

  5. logrotate-Befehlsbeispiele in Linux

So ändern Sie einen Hostnamen unter Redhat 7 Linux

Installieren und konfigurieren Sie Ansible unter Linux

So konfigurieren Sie ein VLAN unter Linux

3 Möglichkeiten, eine Netzwerkschnittstelle in Linux zu konfigurieren

Logrotate unter Linux einrichten

So konfigurieren Sie einen Linux-Cluster mit 2 Knoten auf RedHat und CentOS