Главная
|
Услуги и цены
VDS
Выделенные серверы
Размещение сервера
|
F.A.Q
|
О компании
|

Как работать с логами в Linux: journalctl

  • 1. Просмотр логов с помощью journalctl
  • 2. Полезные фильтры
  • 3. Сводная таблица по journalctl
  • 4. Вывод

Логи в Linux - это основа диагностики и мониторинга работы системы. Если вы арендуете VDS или администрируете сервер, умение быстро находить нужную информацию в логах поможет выявлять ошибки, отслеживать события и контролировать безопасность.

В статье Где и как смотреть логи в Linux - команды journalctl, tail и logrotate уже рассматривалась эта тема, но в этой статье будет разобран подробнее journalctl как инструмент для просмотра логов. Подойдёт как новичкам, так и опытным пользователям - будут как базовые команды, так и полезные фишки.

Просмотр логов с помощью journalctl

journalctl — это мощный инструмент для работы с журналом 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

По ID сессии или пользователя

    journalctl _UID=1000
    

? Как узнать UID пользователя?
id username
Например:
id www-data

По уровню логирования

Чтобы не тонуть в тысячах строк логов и быстро увидеть только ошибки. Особенно полезно после запуска или перезапуска сервиса.

    journalctl -p err..alert
    

Показывает только ошибки (err, crit, alert). Полный список уровней:

Уровень Число Назначение
emerg0Аварийная ситуация
alert1Требует немедленного внимания
crit2Критическая ошибка
err3Обычная ошибка
warning4Предупреждение
notice5Замечание
info6Информационное сообщение
debug7Отладочная информация

Например: Покажет только ошибки 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Выводить всё сразу без lessjournalctl --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Вывод в формате JSONjournalctl -o json
-o catТолько сообщение

Вывод

Работа с логами в Linux — это ключевой навык для любого администратора VDS. Знание journalctl позволит вам:

  • Быстро находить ошибки
  • Отслеживать события входа и подозрительную активность
  • Реагировать на проблемы ещё до того, как они вырастут в серьёзные инциденты

Если вы только начали работать с Linux-сервером — начните с базовых команд, создайте пару alias'ов, и вы очень быстро почувствуете себя уверенно.

Связанные статьи: Где и как смотреть логи в Linux - команды journalctl, tail и logrotate

logo
© 2022 62yun
Все права защищены
vk.com/62yuncom
support@62yun.ru
logo
vk.com/62yuncom
support@62yun.ru
Услуги
VDS Выделенные серверы
Полезное
F.A.Q О компании Политика конфиденциальности Оферта
Способы оплаты
wechatpay visa mastercard
MirAccept
Партнеры
25port
© 2022 62yun Все права защищены
ВВЕРХ