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

Verwalten von Protokollen mit Logrotate auf Ubuntu

Die Leistung einer Computer- oder Serverumgebung hängt stark von der Systemspeicher- und Festplattennutzung ab. Wenn etwas mehr Speicherplatz verbraucht, führt dies zu einem Systemfehler. Ebenso muss die Erhöhung der Protokolldateigröße kontrolliert werden, um dieses Risiko zu verringern.

Logrotate wurde als Systemdienstprogramm eingeführt, das die Protokolldateien rotiert, komprimiert und Systemprotokolle verschickt. Eine solche Verwaltung von Protokolldateien reduziert die Speicherplatznutzung und verhindert Systemfehler.

In diesem Artikel werden wir den Installationsprozess und die Konfiguration von logrotate auf dem Ubuntu 20.04 LTS-Server besprechen.

Installation von Logrotate auf Ubuntu 20.04-Server

Auf Ubuntu ist logrotate standardmäßig installiert, aber falls es nicht installiert ist, können Sie es mit dem unten gezeigten Befehl installieren.

$ sudo apt update 
$ sudo apt install logrotate

Sie können die Installation mit dem unten gezeigten Befehl bestätigen.

$ logrotate --version

Die Logrotate-Konfigurationsdateien

Die Konfigurationsdatei für logrotate wird vom logrotate-Daemon erstellt. Es gibt zwei Pfade für eine solche Konfiguration, wie unten gezeigt.

/etc/logrotate.conf

Es ist die Konfigurationsdatei, die im Allgemeinen für das Dienstprogramm logrotate erstellt wird

/etc/logrotate.d/

Es ist das Verzeichnis, das aus der spezifischen Rotation der Anwendungen besteht. Standardmäßig wird /etc/logrotate.conf verwendet, aber damit jede Anwendung eine andere Konfiguration hat, kann sie auf /etc/logrotate.d/ gesetzt werden.

Die Standard-Logrotate-Konfigurationsdatei

Wie Sie wissen, ist /etc/logrotate.conf ist die Standardkonfigurationsdatei. Lassen Sie uns die Konfigurationsdatei überprüfen, wie im Screenshot unten gezeigt.

Überprüfen Sie die Konfigurationsdatei mit dem unten gezeigten Befehl.

$ cat /etc/logrotate.conf

Ausgabe:

Konfiguration für eine bestimmte Anwendung

Auf dem obigen Screenshot gibt es eine Konfiguration wie include /etc/logrotate.d Das bedeutet, dass die Konfiguration für bestimmte Anwendungen in diesem Verzeichnis festgelegt werden kann. Hier zeigen wir die Konfiguration für dpkg wie unten gezeigt.

$ cd /etc/logrotate.d/
$ cat dpkg

Um Details zu jeder Konfigurationslinie zu erhalten, überprüfen Sie die unten besprochenen Punkte. Diese Konfigurationen ersetzen die Standardkonfiguration von /etc/logrotate.conf für bestimmte Anwendungen wie dpkg.

  • monatlich:Rotieren Sie einmal im Monat. Sie können es je nach Bedarf durch täglich oder wöchentlich ersetzen.
  • rotate 12:Zwölf alte Protokolldateien werden beibehalten. Es ersetzt die Standardeinstellung 4 in /etc/logrotate.conf
  • komprimieren:Protokolldateien für diese Anwendung werden mit gzip komprimiert
  • delaycompress:Die Komprimierung der vorherigen Protokolldatei auf den nächsten Rotationszyklus wird verschoben, da sie noch von irgendeinem Programm verwendet wird.
  • missingok:Keine Fehlermeldung schreiben, wenn die Logdatei fehlt
  • notifempty:Protokolldatei nicht rotieren, wenn sie leer ist
  • create 644 root root:Protokolldatei wird mit Berechtigung 644 erstellt, mit Benutzer und Gruppe als root

Logrotate-Konfigurationsdatei erstellen

Angenommen, Sie haben eine Anwendung wie nginx installiert und ihre Protokolldatei wird unter /var/log/nginx/ erstellt dann können Sie mit dem unten gezeigten Befehl eine Logrotate-Konfigurationsdatei für diese spezielle App einrichten.

Navigieren Sie zum logrotate-Verzeichnis

$ cd /etc/logorate.d/

Erstellen Sie eine Logrotate-Datei mit dem Editor

$ vim nginx

/var/log/nginx/*.log {
   daily
   missingok
   rotate 14
   compress
   delaycompress
   notifempty
   create 0640 www-data adm
   sharedscripts
   prerotate
   if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
      run-parts /etc/logrotate.d/httpd-prerotate; \
   fi \
   endscript
   postrotate
   invoke-rc.d nginx rotate >/dev/null 2>&1
   endscript
}

In der obigen Konfiguration haben wir die Rotation auf 14 eingestellt, sodass 14 alte Protokolldateien aufbewahrt werden und die Protokolldatei mit gzip komprimiert wird. Eine weitere Konfiguration, die in der obigen Datei verwendet wird, wird fast im Abschnitt über die Logrotate-Konfigurationsdatei erklärt. Sie können die neu erstellte Konfiguration mit dem sudo-privilegierten Benutzer wie unten gezeigt ausführen.

$ sudo logrotate -d /etc/logrotate.d/nginx

Dabei werden Logfiles wie im Screenshot unten gezeigt ausgeführt.

Logrotate mit Cron

Während der Installation des logrotate-Pakets wird auch eine crontab-Datei im Prozess in /etc/cron.daily erstellt mit dem Namen logrotate. Überprüfen Sie den Screenshot wie unten gezeigt für weitere Details.

$ cat /etc/cron.daily/logrotate

Schlussfolgerung

In diesem Artikel haben Sie gelernt, wie Sie das Paket logrotate installieren und die standardmäßige und spezifische Anwendungskonfigurationsdatei für logrotate mit der Implementierung von crontab überprüfen. Vielen Dank!


Linux
  1. Rotieren und archivieren Sie Protokolle mit dem Linux-Befehl logrotate

  2. Verwalten einer Headless VirtualBox-Installation mit phpvirtualbox (Ubuntu 16.04 LTS)

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

  4. So verwenden Sie Logrotate zum Verwalten von Protokollen auf Ubuntu

  5. Beispiel für eine logrotate-Konfiguration und Fehlerbehebung

Umgang mit Dateien mit Scilab unter Ubuntu 15.04

So installieren Sie die Deb-Datei in Ubuntu (mit Beispielen)

So konfigurieren Sie das Netzwerk mit Netplan unter Ubuntu

HowTo:Das ultimative Logrotate-Befehls-Tutorial mit 10 Beispielen

logrotate kann Protokolle nicht rotieren und erhält No such file error

Ubuntu - Image-Datei mit R/W-Berechtigung mounten