it-swarm.com.de

Wie werden ältere Journalprotokolle angezeigt (möglicherweise nach einer Rotation?)

Ich verwende Docker unter Ubuntu 16.04 und möchte die Protokolle anzeigen. Ich kann jedoch keine Protokolle anzeigen, nachdem ich eine Rotation vermutet habe oder die Protokolle eine bestimmte Größe erreicht haben.

Ich habe keine Änderungen an meiner journald.conf vorgenommen, daher verwende ich dort die Standardeinstellungen.

Beispiele für das, was ich sehe:

systemctl docker status bestätigt, dass der Dienst aktiv war since Thu 2016-10-13 18:56:28 UTC.

Wenn ich jedoch so etwas wie journalctl -u docker.service --until "2016-10-13 22:00" - die einzige Ausgabe, die ich bekomme, ist -- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. -- Ich kann die Protokolle in diesem Bereich wie erwartet anzeigen.

Meine Frage ist, warum ich ältere Protokolle nicht mit journalctl anzeigen kann und wie ich dieses Problem beheben kann, damit ich die Protokolle anzeigen kann.

27
jdf

Der Grund dafür ist, dass die Größe der gespeicherten Journald-Dateien standardmäßig festgelegt ist. Es gibt mehr Details dazu in den Dokumenten . Es lohnt sich, den gesamten Abschnitt zu lesen, auf den ich verlinkt habe, aber die Standardeinstellungen funktionieren folgendermaßen:

journald will use 10% of the disk or 4G, whichever is smaller.

journald will leave free 15% of the disk or 4G, whichever is larger.

Zum Anzeigen von Protokollen vom letzten Start, vorausgesetzt, Sie haben Storage=persistent in Ihrer journald.conf können Sie, wie in den anderen Antwortnotizen angegeben, die --boot=-1 Flag auf journalctl Befehlen, um Protokolle nur vom vorherigen Start abzurufen.

Im Fall des OP, in dem sichergestellt war, dass der Host nicht neu gestartet wurde, wurde der Verlust von Protokollen einfach durch die Standardeinstellungen SystemMaxUse und/oder SystemKeepFree verursacht.

Hinweis: Ich bin der OP und diese Frage hat immer noch positive Stimmen. Da ich mehr Erfahrung mit Journald (und RTFM) gesammelt habe, poste ich dies hier in der Hoffnung, dass es anderen hilft .

5
jdf

Dies kann daran liegen, dass Sie versuchen, das Journal seit dem letzten Start zu überprüfen, was in einem Docker-Image wahrscheinlich der Fall ist.

Unter Ubuntu 16.04 befindet sich der Journalspeicher standardmäßig im Arbeitsspeicher. Sie können die Standardeinstellung so ändern, dass sie dauerhaft ist, indem Sie /etc/systemd/journald.conf Öffnen und die Zeile Storage= Von auto in persistent ändern. Möglicherweise müssen Sie journald mit systemctl restart systemd-journald Nach der Bearbeitung der Konfigurationsdatei neu starten.

Ich denke das Journal sollte standardmäßig persistent sein , also habe ich einen Fehler darüber geöffnet.

18
Mark Stosberg