Введение / Зачем это нужно
journalctl — это интегрированный инструмент systemd для просмотра системных логов. С его помощью вы можете быстро находить нужные записи, диагностировать сбои и анализировать поведение служб. После выполнения этого гайда вы сможете фильтровать логи по времени, уровню важности, сервису и ключевым словам, а также сохранять журналы для дальнейшего изучения.
Требования / Подготовка
- Linux-система с systemd (например, Ubuntu, Debian, CentOS).
- Доступ к терминалу с правами суперпользователя (
sudo). journalctlуже установлен в качестве части systemd; дополнительная установка не требуется.
Пошаговая инструкция
Шаг 1: Просмотр последних логов
В терминале выполните journalctl. Команда выводит последние 10 записей журнала. Для удобного просмотра можно перенаправить вывод в less:
journalctl | less
Шаг 2: Фильтрация по времени
Чтобы отобразить записи за определенный период, используйте --since и --until. Пример: journalctl --since "2025-07-10 10:00" --until "2025-07-10 12:00" показывает логи, собранные с 10:00 до 12:00.
journalctl --since "2025-07-10 10:00" --until "2025-07-10 12:00"
Шаг 3: Фильтрация по уровню важности
Для вывода только важных событий укажите уровни важности с помощью -p. Например, journalctl -p err..crit показывает ошибки и критические события.
journalctl -p err..crit
Шаг 4: Фильтрация по сервису (юниту)
Чтобы отфильтровать логи конкретной службы, добавьте -u <unit>. Пример: journalctl -u ssh.service выводит журнал службы SSH.
journalctl -u ssh.service
Шаг 5: Поиск по ключевым словам
Для поиска текста внутри записей используйте grep. Пример: journalctl | grep "failed" выводит только строки со словом «failed».
journalctl | grep "failed"
Шаг 6: Экспорт логов в файл
Сохраните журнал в файл командой journalctl > /var/log/journal.txt. Файл можно просмотреть с помощью cat /var/log/journal.txt или отправить для анализа.
journalctl > /var/log/journal.txt
Проверка результата
После выполнения шага 6 проверьте, что файл создан и содержит данные:
ls -l /var/log/journal.txt
head -n 5 /var/log/journal.txt
Если файл отображает записи, то команда сработала корректно.
Возможные проблемы
- Нет прав доступа –
journalctlбезsudoпоказывает только логи текущего пользователя. Используйтеsudo journalctl. - Нет записей после фильтрации – убедитесь, что выбранный временной диапазон и уровни важности соответствуют реальным событиям.
- Фильтр по юниту не работает – проверьте имя юнита с помощью
systemctl list-units --type=service. Правильное имя передайте в-u. - Переполнение файла при экспорте – для больших журналов используйте постраничный вывод
journalctl | head -n 1000 > /tmp/out.txt.
При возникновении этих проблем выполните указанные решения и повторите шаг.