journalctlЛоги в Linux - это основа диагностики и мониторинга работы системы. Если вы арендуете VDS или администрируете сервер, умение быстро находить нужную информацию в логах поможет выявлять ошибки, отслеживать события и контролировать безопасность.
В статье Где и как смотреть логи в Linux - команды journalctl, tail и logrotate уже рассматривалась эта тема, но в этой статье будет разобран подробнее journalctl как инструмент для просмотра логов.
Подойдёт как новичкам, так и опытным пользователям - будут как базовые команды, так и полезные фишки.
journalctljournalctl — это мощный инструмент для работы с журналом systemd. Он позволяет просматривать, фильтровать и анализировать события на уровне ядра, служб и системных процессов.
Показывает все логи с самого начала.
journalctl
Выводит последние логи в расширенном виде и с указанием ошибок (ошибки помечаются E).
journalctl -xe
Аналог tail -f — отображает логи в реальном времени.
journalctl -f
journalctl --since "1 hour ago" # за последний час
journalctl --since "2025-08-26 14:00" --until "2025-08-26 15:00" # между двумя временными метками
Фильтрация по unit'у systemd (службе). Это самый популярный способ быстро посмотреть, что делает конкретная служба — SSH, nginx, fail2ban и т.д.
journalctl -u ssh
journalctl -u nginx.service # для просмотра в реальном времени можно добавить флаг -f
? Как узнать название юнита?
В большинстве случаев — это имя службы, как в systemctl:
systemctl list-units --type=service
Или:
systemctl status
journalctl _UID=1000
? Как узнать UID пользователя?
id username
Например:
id www-data
Чтобы не тонуть в тысячах строк логов и быстро увидеть только ошибки. Особенно полезно после запуска или перезапуска сервиса.
journalctl -p err..alert
Показывает только ошибки (err, crit, alert).
Полный список уровней:
| Уровень | Число | Назначение |
|---|---|---|
| emerg | 0 | Аварийная ситуация |
| alert | 1 | Требует немедленного внимания |
| crit | 2 | Критическая ошибка |
| err | 3 | Обычная ошибка |
| warning | 4 | Предупреждение |
| notice | 5 | Замечание |
| info | 6 | Информационное сообщение |
| debug | 7 | Отладочная информация |
Например: Покажет только ошибки Apache за сегодня.
journalctl -u apache2 -p err..alert --since "today"
? Полезное
Вы можете сделать alias в .bashrc, чтобы быстро просматривать логи ssh:
alias sshlog='journalctl -u ssh -f'
journalctlОсновные флаги journalctl
| Флаг | Назначение | Пример |
|---|---|---|
-n [N] | Показать последние N строк | journalctl -n 50 |
-f | Следить за логами в реальном времени (аналог tail -f) | journalctl -u nginx -f |
-e | Перейти сразу к концу журнала | journalctl -e |
--no-pager | Выводить всё сразу без less | journalctl --no-pager |
Фильтрация по времени
| Флаг | Назначение | Пример |
|---|---|---|
--since | Начальная дата/время | journalctl --since "2025-08-26 14:00" |
--until | Конечная дата/время | journalctl --until "2025-08-26 15:00" |
--since "1 hour ago" | Относительное время (также: "yesterday", "10 min ago") | journalctl --since "10 minutes ago" |
Фильтрация по источнику
| Флаг | Назначение | Пример |
|---|---|---|
-u [unit] | Фильтр по systemd-юниту (сервису) | journalctl -u ssh |
_PID= | По PID процесса | journalctl _PID=1234 |
_UID= | По ID пользователя | journalctl _UID=1000 |
_COMM= | По имени команды | journalctl _COMM=nginx |
_EXE= | По пути к исполняемому файлу | journalctl _EXE=/usr/sbin/sshd |
_SYSTEMD_CGROUP= | По cgroup (группе systemd) | journalctl _SYSTEMD_CGROUP=/system.slice/nginx.service |
Фильтрация по уровню важности
| Флаг | Назначение | Пример |
|---|---|---|
-p [level] | Уровень важности (err, crit, warning, info, и т.д.) | journalctl -p err |
-p err..alert | Диапазон уровней | journalctl -p err..alert |
Работа с файлами журнала
| Флаг | Назначение | Пример |
|---|---|---|
--disk-usage | Показать объём занимаемого журналом места | journalctl --disk-usage |
--vacuum-size=100M | Удалить старые логи, если они превышают указанный объём | journalctl --vacuum-size=100M |
--vacuum-time=7d | Удалить логи старше 7 дней | journalctl --vacuum-time=7d |
--vacuum-files=5 | Оставить только 5 самых новых файлов журнала | journalctl --vacuum-files=5 |
Форматирование и вывод
| Флаг | Назначение | Пример |
|---|---|---|
-o short | Краткий формат (по умолчанию) | journalctl -o short |
-o verbose | Подробный формат с метаданными | journalctl -o verbose |
-o json | Вывод в формате JSON | journalctl -o json |
-o cat | Только сообщение |
Работа с логами в Linux — это ключевой навык для любого администратора VDS. Знание journalctl позволит вам:
Если вы только начали работать с Linux-сервером — начните с базовых команд, создайте пару alias'ов, и вы очень быстро почувствуете себя уверенно.
Связанные статьи: Где и как смотреть логи в Linux - команды journalctl, tail и logrotate