Я запускаю докер на ubuntu 16.04 и хочу просмотреть журналы. Однако я не могу просматривать журналы после того, что, как я предполагаю, представляет собой какую-то ротацию или журналы вырастают до определенного размера.
Я не вносил никаких изменений в свой journald.conf, поэтому использую там значения по умолчанию. Контейнеры работают, поэтому журнал докеров выводит довольно много данных.
Примеры того, что я вижу:
systemctl docker status
подтверждает, что услуга активна:
since Thu 2016-10-13 18:56:28 UTC
Однако когда я запускаю что-то вроде:
journalctl -u docker.service --since "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 и как я могу исправить эту проблему, чтобы я мог просматривать журналы?
Это может быть связано с тем, что вы пытаетесь просмотреть журнал с момента последней загрузки, что, вероятно, имеет место внутри образа докера.
В Ubuntu 16.04 хранилище журнала по умолчанию находится в памяти. Вы можете изменить значение по умолчанию на постоянное, открыв /etc/systemd/journald.conf
и изменение Storage=
линия от auto
к persistent
. Возможно, вам потребуется перезапустить журнал до systemctl restart systemd-journald
после редактирования файла конфигурации.
думаю журнал должен быть постоянным по умолчанию, поэтому я обнаружил ошибку об этом.
Причина этого в том, что по умолчанию размер хранимых файлов журнала. Подробнее об этом в документах. Стоит прочитать весь раздел, на который я ссылался, но значения по умолчанию работают так:
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
команды для получения журналов только от предыдущей загрузки.
В случае OP, где они были уверены, что хост не был перезагружен, потеря журналов была просто вызвана SystemMaxUse
и / или SystemKeepFree
по умолчанию.
Примечание. Я ОП, и этот вопрос все еще получает положительные отзывы, поэтому, поскольку я приобрел больше опыта с journald (и rtfm), я публикую это здесь в надежде, что это поможет другим.