Как просмотреть старые журналы journalctl (возможно, после ротации?)
Я запускаю Docker на 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, и как я могу исправить эту проблему, чтобы я мог просматривать журналы?
2 ответа
Причина этого заключается в том, что по умолчанию установлен размер сохраняемых файлов журнала. Подробнее об этом можно узнать в документации. Стоит прочитать весь раздел, на который я ссылаюсь, но настройки по умолчанию работают примерно так:
jounald 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
команды для получения логов только с предыдущей загрузки.
В случае OP, где они были уверены, что хост не был перезагружен, потеря журналов была просто вызвана SystemMaxUse
и / или SystemKeepFree
по умолчанию.
Примечание: я являюсь ОП, и в этом вопросе по-прежнему просачиваются голоса, поэтому, поскольку я приобрел больше опыта с journald (и rtfm), я публикую это здесь в надежде, что это поможет другим.
Это может быть связано с тем, что вы пытаетесь просмотреть журнал с момента последней загрузки, что, вероятно, имеет место в образе докера.
В Ubuntu 16.04 хранилище журнала по умолчанию находится в оперативной памяти. Вы можете изменить значение по умолчанию на постоянное, открыв /etc/systemd/journald.conf
и изменение Storage=
линия от auto
в persistent
, Возможно, вам придется перезагрузить journald
сервис после этого.
Я думаю, что журнал должен быть постоянным по умолчанию, поэтому я открыл ошибку об этом.