Введение / Зачем это нужно
journalctl — встроенный инструмент systemd для просмотра системных логов. С его помощью можно быстро находить ошибки, отслеживать работу служб и экспортировать журналы для дальнейшего анализа. После выполнения этого руководства вы сможете эффективно диагностировать неполадки в Linux с помощью нескольких простых команд.
Требования / Подготовка
- Операционная система: любые дистрибутивы Linux с systemd (Ubuntu, Fedora, Arch и т.д.).
- Права: обычный пользователь; для просмотра системных логов может потребоваться
sudo. - Не требуется дополнительного программного обеспечения — journalctl уже входит в состав systemd.
Пошаговая инструкция
Шаг 1: Просмотр последних записей
Команда journalctl -n 10 выводит последние 10 строк журнала, что удобно для быстрой проверки состояния системы.
journalctl -n 10
Шаг 2: Фильтрация логов по времени
Для получения событий за определённый период используйте параметры --since и --until. Значения указываются в удобочитаемом формате.
journalctl --since "2025-07-10 12:00" --until "2025-07-10 13:00"
Шаг 3: Фильтрация по имени службы (юнита)
Если вам нужны логи конкретной службы, добавьте параметр -u с её именем.
journalctl -u nginx.service
Шаг 4: Фильтрация по уровню важности
С помощью -p (или --priority) можно отобразить записи определённого уровня важности. Диапазоны позволяют выбрать несколько уровней.
journalctl -p err..info
Шаг 5: Экспорт журнала в файл
Для сохранения журнала в удобный для анализа формат используйте -o cat и перенаправление вывода в файл.
journalctl -o cat > /var/log/journal.log
Проверка результата
После выполнения каждой команды убедитесь, что вывод соответствует ожиданиям:
-nпоказывает ровно 10 строк, если журнал не пуст.- Команды с
--since/--untilвозвращают записи только в указанном диапазоне. -uотображает логи только выбранной службы.-pфильтрует записи по указанному уровню важности.- Экспорт записывает данные в файл
/var/log/journal.log; проверьте его размер и содержание.
Возможные проблемы
- Недостаточно прав: если journalctl не выводит системные логи, выполните команду с
sudo journalctl …. - Отсутствие systemd: на системах без systemd (например, на старых дистрибутивах) journalctl может отсутствовать; установите пакет
systemdили используйтеsyslog. - Очищенные логи: в некоторых контейнерных средах журнал может быть очищен; используйте
--disk-spaceдля принудительного чтения из файлов журнала, если они доступны.
⚠️ Важно: для просмотра системных логов часто требуются права администратора; если команда не выдаёт данных, добавьте
sudo.
💡 Совет: для массового экспорта логов в формате JSON используйте
journalctl -o json-pretty > journal.json, это упрощает парсинг данных в скриптах.