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
- 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:
-
-
-
- hourly = stündlich,
- daily = täglich
- weekly = wöchentlich,
- 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
/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:
- Sie gehen die gesamte Anleitung erneut durch und legen für jede Logrotation, die Sie einrichten möchten, eine neue Datei an.
- 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