В системе инициализации systemd в Linux для работы с логгированием разных служб (юнитов), а также управления логами, может использоваться утилита journalctl. Здесь собраны некоторые базовые приёмы использования этой утилиты для решения типовых задач по работе с логами.
Вывод логов с фильтрацией по службам (юнитам systemd):
# journalctl -u ssh.service # journalctl --unit ssh.service # journalctl -u nginx.service -u php-fpm.service
Вывод событий из ядра Linux с момента последней загрузки возможен через опции -k
или −−dmesg
:
# journalctl -k
Для получения информации о предыдущих загрузках, потребуется включение режима сохранения логов
Вывод логов по идентификатору процесса (PID) или идентификатору пользователя (UID):
# journalctl _PID=381 # journalctl _UID=33
При этом, чтобы узнать текущий список идентификаторов процессов или пользователей, о которых имеются записи в логах:
# journalctl -F _PID # journalctl -F _UID
Варианты вывода логов с фильтрацией по времени регистрации записей логов:
# journalctl --since "2020-05-21 11:03:00" --until "2020-05-21 11:04:00" # journalctl --since yesterday # journalctl --since 12:00 --until now
Определение текущего объёма логов:
# journalctl --disk-usage
Для ротации логов используются опции −−vacuum-size
(устанавливает предельно допустимый размер хранимых логов), −−vacuum-time
(удаляются логи старше указанного времени), –vacuum-files
(сохраяется только указанное количество лог-файлов):
# journalctl --vacuum-size=1G # journalctl --vacuum-time=1years
Дополнительные источники информации:
Проверено на следующих конфигурациях:
Версия ОС | Версия systemd |
---|---|
Debian GNU/Linux 9.12 (Stretch) | systemd 232 |
Автор первичной редакции:
Алексей Максимов
Время публикации: 21.05.2020 12:17