📰 journalctl: кратко и по делу#

journalctl — утилита для просмотра, фильтрации и анализа логов в Linux.
Работает с системным журналом systemd, объединяя сообщения ядра, сервисов, приложений и системных событий.

📝 Топ‑20 полезных флагов journalctl#

  • -e — открыть журнал в конце (последние события).
  • -f — “follow mode”, обновление лога в реальном времени.
  • -r — реверсировать порядок вывода (новые сверху).
  • -n <N> — вывести последние N строк.
  • -k — показать только сообщения ядра (аналог dmesg).
  • -u <unit> — лог конкретного сервиса systemd.
  • --since "YYYY-MM-DD HH:MM:SS" — фильтр по дате начала.
  • --until "YYYY-MM-DD HH:MM:SS" — фильтр по дате окончания.
  • -p <PRIORITY> — фильтр по уровню логов (emerg..debug).
  • --disk-usage — показать размер базы логов.
  • --vacuum-time=7d — удалить логи старше 7 дней.
  • --vacuum-size=500M — ограничить размер базы логов.
  • -o json — вывод в JSON-формате.
  • -o json-pretty — читаемый JSON.
  • -o short — компактный вид логов.
  • -o cat — выводить только сообщение без метаданных.
  • --grep "<regex>" — фильтрация по регулярному выражению.
  • --no-pager — отключить постраничный вывод.
  • -x — отображать дополнительные подсказки от systemd.
  • --list-boots — показать список загрузок системы.

🚀 Айсберг команд journalctl — от базового к гуру#

🟢 Уровень 1 — База (разогрев)#

journalctl

  • Показать полный системный журнал

journalctl -e

  • Перейти в конец журнала

journalctl -n 50

  • Вывести последние 50 строк

journalctl -f

  • “tail” режима — следить за логами в реальном времени

journalctl --no-pager

  • Выводить всё сразу без постраничного просмотра

🟡 Уровень 2 — Фильтрация по сервисам и датам#

journalctl -u ssh

  • Лог только для ssh

journalctl -u nginx.service -n 30

  • Последние 30 строк по nginx

journalctl --since "2025-09-01" --until "2025-09-04"

  • Логи за конкретный период

journalctl --since "2 hours ago"

  • Логи за последние 2 часа

journalctl -u docker --since "yesterday"

  • Логи по Docker со вчера

🟠 Уровень 3 — Фильтрация по приоритетам#

journalctl -p err

  • Только ошибки

journalctl -p warning

  • Только предупреждения

journalctl -p info

  • Только информационные сообщения

journalctl -p crit

  • Критические события

journalctl -p 0..3

  • Фильтр по приоритетам (0 = emerg, 3 = err)

🔵 Уровень 4 — Работа с загрузками системы#

journalctl --list-boots

  • Список загрузок системы

journalctl -b

  • Логи текущей загрузки

journalctl -b -1

  • Логи предыдущей загрузки

journalctl -b -2 -p err

  • Ошибки позапрошлой загрузки

journalctl -k

  • Только сообщения ядра (аналог dmesg)

🟣 Уровень 5 — Работа с форматами вывода#

journalctl -o short

  • Компактный вывод

journalctl -o verbose

  • Подробный вывод с полными метаданными

journalctl -o json

  • Логи в JSON-формате

journalctl -o json-pretty

  • Красивый JSON для чтения

journalctl -o cat

  • Только текст сообщений

🔴 Уровень 6 — Управление журналом#

journalctl --disk-usage

  • Проверить размер базы логов

sudo journalctl --vacuum-time=7d

  • Удалить логи старше 7 дней

sudo journalctl --vacuum-size=500M

  • Ограничить размер базы логов

sudo journalctl --rotate

  • Принудительно пересоздать текущий лог

sudo systemctl restart systemd-journald

  • Перезапуск системного демона логов

🟤 Уровень 7 — Гуру‑режим#

journalctl _PID=1234

  • Логи по конкретному процессу

journalctl _UID=1000

  • Логи от имени пользователя

journalctl _COMM=sshd

  • Логи только по команде sshd

journalctl --grep "timeout"

  • Фильтр по ключевому слову

journalctl -u nginx -p err --since "10 min ago"

  • Ошибки Nginx за последние 10 минут

🧩 Бонус — практические сценарии#

Следить за логами nginx:

journalctl -u nginx -f

Просмотреть ошибки systemd:

journalctl -p err -b

Анализировать логи ядра:

journalctl -k -b

Удалить старые логи и освободить место:

sudo journalctl --vacuum-size=500M

Мониторить ошибки всех сервисов в реальном времени:

journalctl -p err -f