So richten Sie die Protokollrotation für einen Docker-Container ein

Wir alle brauchen Protokolle!

Manchmal habe ich bei der Arbeit mit Docker das Gefühl, mit einer Black Box zu arbeiten. Besonders wenn ich mit Docker-Bildern aus der Community spiele und es nicht so läuft, wie ich es erwartet hatte. In vielen Fällen nimmt das Lesen von Protokollen beim Debuggen viel Zeit in Anspruch.

In diesem Artikel wird das Einrichten der Protokollrotation für Docker-Container beschrieben.

Der Standardprotokollierungstreiber

Wir können verschiedene Protokollierungstreiber für Container konfigurieren. Standardmäßig werden stdout und stderr des Containers in eine JSON-Datei geschrieben, die sich in /var/lib/docker/containers/[container-id‹/[container-id‹-json.log befindet . Wenn Sie es unbeaufsichtigt lassen, kann es viel Speicherplatz beanspruchen, wie unten gezeigt.

Löschen Sie das Protokoll manuell

Wenn diese JSON-Protokolldatei einen erheblichen Teil der Festplatte belegt, können Sie sie mit dem folgenden Befehl löschen.

Wir könnten einen Cronjob einrichten, um diese JSON-Protokolldateien regelmäßig zu löschen. Langfristig ist es jedoch besser, die Protokollrotation einzurichten.

Richten Sie die Protokollrotation ein

Konfigurieren Sie den Standardprotokollierungstreiber

Dies kann durch Hinzufügen der folgenden Werte in /etc/docker/daemon.json erfolgen . Erstellen Sie diese Datei, wenn sie nicht vorhanden ist.

Der json-file- Protokollierungstreiber bietet einige weitere Optionen, und wir können sogar zu anderen Protokollierungstreibern wie syslog wechseln . Weitere Informationen finden Sie in den Docker-Dokumenten - Protokollierungstreiber konfigurieren.

Führen Sie die folgenden Befehle aus, um die aktualisierte Datei daemon.json neu zu laden . Die neue Konfiguration gilt nach dem Neustart für alle neu erstellten Container.

Konfigurieren Sie den Protokollierungstreiber für einen Container

Die Konfiguration kann auch auf Containerebene vorgenommen werden, wenn Sie sie nicht global anwenden möchten.

Der Docker-Ausführungsbefehl

Wir können den Protokollierungstreiber und die Optionen im Docker-Ausführungsbefehl angeben . Zum Beispiel:

Docker-Compose verwenden

Der Protokollierungstreiber und die Optionen können auch mit Docker-Compose konfiguriert werden. Zum Beispiel:

Überprüfen Sie, ob das Setup funktioniert.

Zusammenfassung

Obwohl die Standardeinstellungen einwandfrei funktionieren, wissen Sie nie, wann die Containerprotokolle den gesamten Speicherplatz belegen. Dies kann durch die wenigen oben diskutierten Schritte vermieden werden. Ansonsten sind Protokolle ein wichtiges Kapital. Sie sind nicht nur nützlich, wenn etwas schief geht, sondern enthalten auch viele versteckte Werte. Lassen Sie die Protokolle also niemals los.

Wenn Sie nach einer SAAS-Lösung für die Protokollverwaltung suchen , sollten Sie Boatswain verwenden. Wir helfen Ihnen bei der Verwaltung aller Protokolle und der Überwachung Ihrer Docker-Server. ?

- Ursprünglich auf Boatswain Blog veröffentlicht.