web-dev-qa-db-fra.com

Comment afficher les journaux journalctl plus anciens (après une rotation peut-être?)

J'utilise docker sur ubuntu 16.04 et je souhaite afficher les journaux. Cependant, je ne peux pas afficher les journaux après ce que je suppose être une sorte de rotation ou les journaux atteignent une certaine taille.

Je n'ai apporté aucune modification à mon journald.conf, j'y utilise donc des valeurs par défaut.

Exemples de ce que je vois:

systemctl docker status confirme que le service est actif since Thu 2016-10-13 18:56:28 UTC.

Cependant, lorsque je lance quelque chose comme journalctl -u docker.service --until "2016-10-13 22:00" - la seule sortie que j'obtiens est -- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. -- Je peux afficher les journaux de cette plage comme prévu.

Ma question est la suivante: pourquoi ne puis-je pas afficher les journaux plus anciens avec journalctl et comment puis-je résoudre ce problème afin de pouvoir afficher les journaux?

27
jdf

La raison pour laquelle cela se produit est en raison de valeurs par défaut sur la taille des fichiers journald stockés. Il y a plus de détails à ce sujet dans la documentation . Cela vaut la peine de lire toute la section à laquelle j'ai lié, mais les valeurs par défaut fonctionnent comme suit:

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.

Pour afficher les journaux du dernier démarrage, en supposant que vous avez Storage=persistent dans votre journalald.conf, comme les autres notes de réponse, vous pouvez utiliser le --boot=-1 drapeau sur les commandes journalctl pour obtenir les journaux du démarrage précédent uniquement.

Dans le cas de l'OP où ils étaient sûrs que l'hôte n'avait pas été redémarré, la perte de journaux était simplement causée par les valeurs par défaut SystemMaxUse et/ou SystemKeepFree.

Remarque: je suis l'OP et cette question a encore des votes positifs, donc depuis que j'ai acquis plus d'expérience avec journald (et rtfm), je poste ceci ici dans l'espoir qu'il aide les autres .

5
jdf

Cela peut être dû au fait que vous essayez de revoir le journal depuis le dernier démarrage, ce qui semble être le cas dans une image docker.

Sur Ubuntu 16.04, le stockage du journal est par défaut en mémoire. Vous pouvez modifier la valeur par défaut pour qu'elle soit persistante en ouvrant /etc/systemd/journald.conf et en changeant le Storage= ligne de auto à persistent. Vous devrez peut-être redémarrer journald par systemctl restart systemd-journald après la modification du fichier de configuration.

Je pense le journal devrait être persistant par défaut , j'ai donc ouvert un bug à ce sujet.

18
Mark Stosberg