Як переглядати старі журнали журналів (можливо, після обертання?)


23

Я запускаю докер на ubuntu 16.04 і хотів би переглянути журнали. Однак я не в змозі переглянути журнали після того, як я здогадуюсь, це якесь обертання або журнали виростають до певного розміру.

Я не вносив жодних змін до свого journald.conf, тому я там використовую параметри за замовчуванням.

Приклади того, що я бачу:

systemctl docker statusпідтверджує, що послуга активна since Thu 2016-10-13 18:56:28 UTC.

Однак, коли я запускаю щось на кшталт journalctl -u docker.service --until "2016-10-13 22:00"- єдиний результат, який я отримую, - -- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. --я можу переглянути журнали в такому діапазоні, як очікувалося.

Моє запитання: чому я не можу переглядати старі журнали за допомогою журналу journalctl, і як я можу виправити цю проблему, щоб я міг переглянути журнали?

Відповіді:


15

Це може бути тому, що ви намагаєтесь переглянути журнал з моменту останнього завантаження, що, мабуть, має місце у зображенні докера.

У Ubuntu 16.04 зберігання журналу за замовчуванням зберігається у пам'яті. Ви можете змінити типовий параметр на постійний, відкривши /etc/systemd/journald.confта змінивши Storage=лінію з autoна persistent. Можливо, вам доведеться перезапустити журнал systemctl restart systemd-journaldпісля редагування файлу конфігурації.

Я думаю, що журнал повинен бути стійким за замовчуванням , тому я відкрив помилку з цього приводу.


Я погоджуюся з вами, він повинен бути стійким за замовчуванням (і змінить це налаштування), але я впевнений, що ця машина не була перезавантажена, тому я не впевнений на 100%, що один вирішить мою проблему. І все-таки раді, що ви подали це питання.
jdf

За певних умов журнали можуть розміщуватись у журналі з неповними метаданими, так що їх можна знайти при перегляді повного journalctlвиводу, але не одиничних журналів. Це, як відомо, трапляється з проблемами журналів перед тим, як пристрій вимикається. Журнали надсилаються до journald, а потім journald видає запит на метадані. Іноді цей процес існує. Це також не здається, що це ідеально підходить для вашого випадку.
Марк Стосберг

3

Причина цього відбувається через те, що за замовчуванням розмір файлів журналу зберігається. Більш детально про це в документах . Варто прочитати весь розділ, з яким я пов’язаний, але типові параметри працюють так:

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.

Для перегляду журналів з останнього завантаження, якщо припустити, що Storage=persistentу вашому журналі journald.conf є інші відповіді, ви можете використовувати --boot=-1прапор journalctlкоманд, щоб отримати журнали лише з попереднього завантаження.

У випадку з ОП, коли вони були впевнені, що господар не був перезавантажений, втрата журналів була просто заподіяна SystemMaxUseта / або SystemKeepFreeза замовчуванням.

Зауважте: Я ОП, і це питання все ще має відгуки, тому, оскільки я набув більше досвіду роботи з journald (та rtfm), я публікую це тут, сподіваючись, що це допоможе іншим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.