61 votes

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

Je fais tourner docker sur ubuntu 16.04 et j'aimerais voir les logs. Cependant, je ne parviens pas à afficher les journaux après ce que je suppose être une sorte de rotation ou que les journaux atteignent une certaine taille.

Je n'ai pas modifié mon journald.conf, j'utilise donc les valeurs par défaut. Il y a des conteneurs en cours d'exécution, de sorte que le journal docker produit un grand nombre de données.

Exemples de ce que je vois :

systemctl docker status confirme que le service a été actif :

since Thu 2016-10-13 18:56:28 UTC

Cependant, lorsque j'exécute quelque chose comme :

journalctl -u docker.service --since "2016-10-13 22:00"

Le seul résultat que j'obtiens est le suivant :

-- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. --

Je peux consulter les journaux dans cette plage comme prévu.

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

32voto

jdf Points 781

La raison en est la taille par défaut des fichiers journald stockés. Il y a plus de détails à ce sujet dans la documentation . Il vaut la peine de lire toute la section que j'ai mise en lien, mais les valeurs par défaut fonctionnent de la manière suivante :

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 consulter les journaux depuis le dernier démarrage, en supposant que vous ayez Storage=persistent dans votre journald.conf, comme l'indique l'autre réponse, vous pouvez utiliser l'option --boot=-1 drapeau sur journalctl pour obtenir les journaux du démarrage précédent.

Dans le cas du PO, qui était sûr que l'hôte n'avait pas été redémarré, la perte des journaux a simplement été causée par la fonction SystemMaxUse et/ou SystemKeepFree par défaut.

Note : Je suis l'OP et cette question a toujours des upvotes, donc depuis que j'ai acquis plus d'expérience avec journald (et rtfm) je poste ceci ici dans l'espoir que cela aide d'autres personnes.

12 votes

J'aimerais insister sur le fait qu'avec le stockage des journaux en mémoire, "10 % du disque" correspond à 10 % de tmpfs sur /run qui elle-même est généralement fixée par défaut à 10 % de la mémoire vive. Vous pouvez donc atteindre cette limite de 1 % de la RAM assez rapidement

31voto

Mark Stosberg Points 3665

Cela pourrait être dû au fait que vous essayez de consulter le journal depuis le dernier démarrage, ce qui semble être le cas à l'intérieur d'une image Docker.

Sous Ubuntu 16.04, le journal est stocké par défaut en mémoire. Vous pouvez modifier la valeur par défaut pour qu'elle soit persistante en ouvrant la fenêtre suivante /etc/systemd/journald.conf et la modification de la Storage= ligne de auto a persistent . Il se peut que vous deviez redémarrer journald en systemctl restart systemd-journald après l'édition du fichier de configuration.

Je pense que le journal doit être persistant par défaut J'ai donc ouvert un bogue à ce sujet.

0 votes

Je suis d'accord avec vous qu'il devrait être persistant par défaut (et je vais modifier ce paramètre), mais je suis certain que cette machine n'a pas été redémarrée, et je ne suis donc pas convaincu à 100 % que cela suffira à résoudre mon problème. Je suis tout de même heureux que vous ayez signalé ce problème.

0 votes

Sous certaines conditions, les journaux peuvent arriver dans la revue avec des métadonnées incomplètes, de sorte qu'ils peuvent être trouvés lors de l'examen de la version complète du journal. journalctl mais pas les journaux d'unité. Il est connu que cela se produit pour des problèmes de journaux juste avant qu'une unité ne s'arrête. Les journaux sont envoyés à journald, puis journald émet une requête pour les métadonnées. Parfois, entre-temps, le processus existe. Cela ne semble pas non plus correspondre parfaitement à votre cas.

0 votes

Mais en tout état de cause : Comment voir ces vieux journaux ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X