Logrotate einrichten

Wie richte ich Logrotate ein?

Große Logdateien verbrauchen viel Speicherplatz und haben somit eine Auswirkung auf Ihren SSD-Speicher und den damit verbundenen Kosten. Daher richten wir für Sie bereits bei der Einrichtung des Clusters standardmäßig Logrotates ein. Hiermit werden die Log-Dateien rotiert, komprimiert und alte Dateien in einem bestimmten Rhythmus entfernt. 

Für viele Dienste richten wir bereits im Vorfeld Logrotate für Sie ein. Dazu gehören zum Beispiel:
  • Apache2
  • Mail
  • MySQL
  • Nginx

                  Logrotate einrichten


                  Um eine Logrotation für Ihre eigenen Programme oder Dienste einzurichten, die Sie zusätzlich nutzen, gehen Sie bitte wie folgt vor:

                  1. Öffnen Sie eine SSH-Verbindung zu Ihrem Cluster mit einem SSH-Client Ihrer Wahl.

                  Hinweis: Bestätigen Sie alle Befehle, die Sie anhand dieser Anleitung eingeben, mit Enter.

                  2. Navigieren Sie zum Pfad /var/www/share/ mit dem folgenden Befehl:

                  cd /var/www/share/


                  3. Legen Sie hier den Ordner etc und den Unterordner logrotate an:

                  mkdir -p etc/logrotate


                  4. Navigieren Sie zum neu angelegten Ordner logrotate:

                  cd etc/logrotate


                  5. Erstellen Sie eine Status-Datei, damit Logrotate selbst Status-Updates über die Rotationen darin eintragen kann.

                  touch logrotate.status

                  Hinweis: Den Dateinamen können Sie frei wählen. Ersetzen Sie bitte logrotate mit dem Dateinamen, den Sie gewählt haben.


                  6. Erstellen Sie eine Conf-Datei unter demselben Pfad:

                  touch logrotate.conf

                  Tipp: Verwenden Sie der Einfachheit halber denselben Dateinamen wie bei der Status-Datei.


                  7. Verwenden Sie einen Texteditor Ihrer Wahl, zum Beispiel Nano, um den Inhalt der Conf-Datei zu schreiben. Geben Sie dazu folgenden Befehl ein:

                  nano logrotate.conf


                  8. In dem Texteditor geben Sie den Inhalt der Conf-Datei ein, der wie folgt aussehen könnte:


                  In der Conf-Datei legen Sie fest, welche Log-Datei, wann, wie und wie oft rotiert werden soll. Die einzelnen Elemente in diesem Beispiel haben die folgende Bedeutung:

                  /var/www/share/cronjob.log { → Die erste Zeile gibt den gesamten Pfad an, in dem die Log-Datei liegt, die rotiert werden soll. 

                      daily Hiermit wird das Intervall bestimmt, in dem die Rotation ausgeführt werden soll. Hierfür gibt es vier Optionen: 

                        1. hourly = stündlich, 
                        2. daily = täglich 
                        3. weekly = wöchentlich, 
                        4. monthly = monatlich

                  dateext → Fügt dem Dateinamen der rotierten Logdatei ein Datum hinzu.


                  dateformat -%Y_%m_%d Das Datum im Dateinamen wird im Format Jahr/Monat/Tag angegeben. 


                  missingok Es wird keine Fehlermeldung erzeugt und mit dem Rotieren fortgefahren, auch wenn keine Logdatei vorhanden ist. 


                  rotate 7 Die Logdatei wird siebenmal rotiert. Diese sieben Dateien werden aufgehoben. Bei einer weiteren Rotation wird die älteste Logdatei gelöscht.


                  noolddir   Die Logdateien werden in dem gleichen Verzeichnis rotiert, indem sich die Logdatei befindet. Es wird kein separates Verzeichnis für die alten Logdateien angelegt.


                  compress   Die rotierten Logdateien werden mit gzip komprimiert.


                  ifempty   Die Logdatei wird auch dann rotiert, wenn sie leer ist.


                  copytruncate    Normalerweise wird das alte Logfile umbenannt und ein neues erstellt. Da es aber Applikationen gibt, die nicht dazu gezwungen werden können, ihr Logfile zu schließen, wurde diese alternative Möglichkeit geschaffen.


                  create 664 web-user web-user   Diese Funktion definiert die Zugriffsberechtigungen und den Besitzer der Logdateien. Der Besitzer “Web-User” und die Gruppe “Web-User” sind zum Lesen und Schreiben berechtigt, alle anderen Nutzer haben nur den Lesezugriff.


                  } Die geschweiften Klammern in der ersten und letzten Zeile umschließen alle Einstellungen der Logrotation für die Datei, die rotiert werden soll. Durch diese Abgrenzung haben Sie die Möglichkeit, mehrere Logrotate-Einstellungen für unterschiedliche Pfade in derselben Config-Datei anzulegen. Dies ist nützlich, falls diese mit einem einzigen Cronjob zu einer bestimmten Zeit ausgeführt werden können. Dazu strukturieren Sie den Inhalt der Config-Datei, wie in dem unten stehenden Beispiel.

                  Hinweis: Es gibt aber auch zahlreiche andere Möglichkeiten, die Logrotation zu definieren und zu konfigurieren. In der Manpage finden Sie alle Funktionen von logrotate und können diese wie gewünscht anpassen.

                   

                  Nachfolgend ein Beispiel für eine Config-Datei mit mehreren Logrotate-Einstellungen:

                  /var/www/share/cronjob.log {

                      daily

                      dateext

                      dateformat -%Y_%m_%d

                      missingok

                      rotate 10

                      noolddir

                      compress

                      ifempty

                      copytruncate

                      create 664 web-user web-user

                  }


                  /var/www/share/beispiel.log {

                      daily

                      dateext

                      dateformat -%Y_%m_%d

                      missingok

                      rotate 10

                      noolddir

                      compress

                      ifempty

                      copytruncate

                      create 664 web-user web-user

                  }

                   

                  9. Speichern Sie Ihre Eingaben mit STRG + O.

                  10. Bestätigen Sie den Dateinamen mit Enter.

                  11. Verlassen Sie den Texteditor Nano mit STRG + X.

                  Logrotate per Cronjob ausführen

                  Legen Sie im Managed Center einen Cronjob an, der die Logrotation ausführt, und fügen Sie dazu folgenden Befehl ein:

                  /usr/sbin/logrotate -s /var/www/share/etc/logrotate/logrotate.status /var/www/share/etc/logrotate/logrotate.conf


                  Wenn Sie für mehrere Ihrer Dienste oder Anwendungen eine Logrotation einrichten möchten, haben Sie zwei Möglichkeiten:

                  1. Sie gehen die gesamte Anleitung erneut durch und legen für jede Logrotation, die Sie einrichten möchten, eine neue Datei an.
                  2. Sie definieren die Einstellung aller Logrotationen in einer einzigen Conf-Datei (Schritt 7 und 8).

                   

                  Bei Fragen steht Ihnen unser Support telefonisch unter 05251/414130 oder per E-Mail an support@maxcluster.de zur Verfügung.

                  Überarbeitet am 21.11.2024