13 Punkte von ironlung 2023-09-27 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Beim Betrieb von Services auf Linux-Servern, auf denen Anwendungen mit Docker bereitgestellt werden, kann es vorkommen, dass eine Meldung über zu wenig Speicherplatz auf der Festplatte erscheint
    • Selbst wenn die von der eigentlichen Anwendung erzeugten und gespeicherten Daten sowie die Logs nicht sehr groß sind, kann der gesamte Systemspeicher voll werden
    • Eine der Ursachen für Speicherplatzmangel bei der Verwendung von Docker sind die „Docker-Container-Logs“
  • Docker-Logging-Treiber und Speicherort der Logs
    • Logging-Treiber: Docker enthält einen Logging-Mechanismus, der dabei hilft, Informationen aus laufenden Containern und Services zu erhalten; das ist der Logging-Treiber
    • Befehl docker logs: Zeigt die von einem laufenden Container aufgezeichneten Informationen an
    • Befehl docker service logs: Zeigt die von allen Containern aufgezeichneten Informationen an, die an einem Service beteiligt sind
    • Docker verwendet den Logging-Treiber json-file, der die Standardausgabe (stdout) oder Standardfehlerausgabe (stderr) aller Container-Logs erfasst und in eine Datei im JSON-Format schreibt
    • Wenn ein Docker-Container mit dem Befehl docker run oder docker-compose up gestartet wird, wird die Datei /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log erstellt und das Log darin gespeichert
    • Der Logging-Treiber json-file führt keine Log-Rotation durch
      • Wenn ein Container viele Ausgaben erzeugt, können die mit diesem Logging-Treiber gespeicherten Log-Dateien erheblichen Festplattenspeicher belegen, was schließlich zum Ausgehen des Speicherplatzes führen kann
  • Größe von Docker-Container-Logs verringern
    • Wird der Befehl docker rm oder docker-compose down ausgeführt, wird der Docker-Container gelöscht, ebenso das Verzeichnis für die jeweilige [Container-ID] unter /var/lib/docker/containers
      • Dadurch wird auch die Datei [Container-ID]-json.log, die viel Speicherplatz belegt hat, zusammen gelöscht und es wird wieder Festplattenspeicher auf Systemebene frei
    • Mit dem Befehl truncate -s 0 <json-log-file> kann die Größe der Log-Datei auf 0 gesetzt werden
  • Log-Rotation konfigurieren
    • Durch das Festlegen der maximalen Log-Dateigröße (max-size) und der maximalen Anzahl von Dateien (max-file) kann die Log-Rotation aktiviert werden
    • Wenn die Dateigröße den eingestellten Maximalwert erreicht, wird auf eine neue Datei gewechselt; bestehende Dateien werden als ...-json.log.1, ...-json.log.2 usw. bis zur festgelegten Höchstzahl angelegt
    • Wird diese überschritten, wird die älteste Datei entfernt, sodass die Größe der Docker-Container-Log-Dateien nicht unbegrenzt anwächst

Noch keine Kommentare.

Noch keine Kommentare.