Skip to content

Logdaten Dateigrößen beschränken

Josef Spitzlberger edited this page Sep 30, 2020 · 3 revisions

Speicherüberläufe vermeiden

Bei über längere Zeit durchlaufenden Systemen sind einige Punkte zu beachten, damit die Systeme wirklich stabil bleiben. Ein wichtiger Punkt, gerader bei Raspberry Pis, ist dabei die Überwachung der Log-Daten. Diese haben mitunter die Tendenz, den möglicherweise geringen Speicherplatz auf der SD Karte vollständig auszufüllen. In Linux gibt es hierzu das sehr elegante Verfahren logrotate, das wir auch im Caravan Pi nutzen wollen.

Logrotate

Das Verfahren logrotate wird über die Crontab des Users root gestartet. Die zentrale Konfiguration befindet sich in der Datei /etc/logrotate.conf. Die Konfigurationen von einzelnen Projekten befinden sich meist im Verzeichnis /etc/logrotate.d. Die Konfigurationen in diesem Verzeichnis werden automatisch ausgewertet und ausgeführt.

Für den CaravanPi empfehle ich jedoch ein anderes Vorgehen. Die Konfigurationsdatei für logrotate für die Logdaten des CaravanPi lege ich in das Verzeichnis ~/CaravanPi. So kann die Konfiguration über git aktualisiert und weiterentwickelt werden.

Konfiguration für CaravanPi

Starten von logrotate

Das Verfahren logrotate wird über die crontab des Users root gestartet. Dazu ändern wir die Crontab wie folgt:

sudo crontab -e

Wir nehmen folgende Zeilen auf, falls nicht schon enthalten

# Logrotate starten
@reboot sleep 300 && logrotate /etc/logrotate.conf
00 05 * * * logrotate /etc/logrotate.conf

Konfiguration für allgemeine Logdaten

Nun kontrollieren wir die vorhandene /etc/logrotate.conf bzw. legen diese an:

sudo nano /etc/logrotate.conf

Die Datei sollte in etwa so aussehen:

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
#dateext

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may be also be configured here.

# CaravanPi
include /home/pi/CaravanPi/logrotate/logrotate-CaravanPi.conf

Nun kontrollieren Sie die Konfigurationsdateien unter /etc/logrotate.d. Kontrollieren Sie auch das Verzeichnis /var/log indem Sie aufrufen

sudo ls -al /var/log

In der Regel sollten alle Dateien dort mehrfach mit den Erweiterungen .1 oder auch .2.gz vorhanden sein. Gibt es (große) Dateien, die noch nicht versioniert werden, so legen Sie unter /etc/logrotate.d eine entsprechende Konfigurationsdatei an. Als Muster kann z.B. /etc/logrotate.d/alternatives dienen.

Konfiguration für CaravanPi

Nehmen Sie, falls noch nicht geschehen, in die Datei /etc/logrotate.conf die nachfolgenden Zeilen am Ende der Datei auf:

# system-specific logs may be also be configured here.

# CaravanPi
include /home/pi/CaravanPi/logrotate/logrotate-CaravanPi.conf

In der Datei /home/pi/CaravanPi/logrotate/logrotate-CaravanPi.confwird festgelegt, dass

  • alle Logdateien wöchentlich "rotiert" werden
  • vier Versionen aufbewahrt werden
  • die rotierten Logdateien eine Datumsextension bekommen
  • die rotierten Logdateien ab der zweiten Generation komprimiert werden

Welche Logdateien logrotate einbezieht ist, dann wiederum im jeweiligen Directory in der Datei .logrotate.conf geregelt.

Diese Verzeichnisse sind im Standard von CaravanPi vorgesehen:

  • ~/CaravanPi/.log
  • ~/CaravanPi/values
  • ~/.pm2 (für den MagicMirror)

Alle Konfigurationsdateien für logrotate müssen root gehören. Dies erledigen wir so

sudo chown root.root /home/pi/CaravanPi/logrotate/logrotate-CaravanPi.conf /home/pi/CaravanPi/*/.logrotate.conf /home/pi/CaravanPi/.*/.logrotate.conf

Funktionstest

Starten Sie logrotate einmal manuell mit dem Befehl

sudo logrotate --force /etc/logrotate.conf

CaravanPi Wiki

1 Installationsanleitung

2 Bauanleitung

Grundaufbau

Sensoren, etc. installieren

Anzeigen installieren

Raspberry stabilisieren

Platine entwerfen

3 ursprüngliche Entwicklung

4 Dokumentation

5 Updates

ab hier altes WIKI, muss noch umgezogen werden

XX = in Bearbeitung NEU = neue Funktion in letzter Version

Einbau im Caravan

Inbetriebnehmen und Kalibrieren

CaravanPi Updates

Erweiterungen

Grafische Auswertungen

Statuswebsite

weitere Sensoren

Clone this wiki locally