journalctl на VPS: работа с логами Linux и systemd — иллюстрация к статье Storm Cloud Blog, категория Linux
journalctl на VPS: работа с логами Linux и systemd — иллюстрация к статье Storm Cloud Blog, категория Linux
Linux·3 мин··

journalctl на VPS: работа с логами Linux и systemd

Гайд по journalctl: просмотр логов сервисов, фильтры, ротация, экспорт. Диагностика падений Nginx, Docker и приложений на VPS.

Краткий ответ: journalctl — центральный просмотр логов systemd на Linux VPS. journalctl -u nginx -f — live-лог сервиса. Без знания journalctl диагностика Nginx ошибок и падений приложений занимает в разы больше времени.

На современном Ubuntu всё идёт через systemd/journald. Файлы в /var/log/ ещё есть, но systemd-сервисы — в journal.


Базовые команды

journalctl -xe                    # последние ошибки
journalctl -u nginx -f            # follow nginx
journalctl -u gunicorn --since "1 hour ago"
journalctl -u docker -p err       # только error priority

Фильтры по времени

journalctl --since "2026-07-10 09:00" --until "2026-07-10 10:00"
journalctl --since today
journalctl --since "-30min"

При инциденте — сузьте окно до минут падения.


Несколько сервисов

journalctl -u nginx -u php8.3-fpm -u mysql --since "-1h"

Типичная цепочка Laravel: Nginx 502 → смотрите php-fpm и gunicorn/node.


Приоритеты (уровни логов)

Priority Уровень
0–3 emerg–err (критично)
4 warning
6 info
7 debug
journalctl -p warning -u ssh

Полезно для Fail2ban и SSH-атак.


Экспорт и ротация

journalctl -u myapp --since today > /tmp/myapp.log
journalctl --disk-usage
sudo journalctl --vacuum-size=500M

В /etc/systemd/journald.conf:

SystemMaxUse=500M
MaxRetentionSec=30day

Иначе journal съест диск на маленьком VPS.


Docker и journalctl

journalctl -u docker
docker logs container_name

Для Portainer — UI логов удобнее, journalctl — для системных ошибок Docker daemon.


Структурированные логи (JSON)

Приложения с JSON-логами в stdout (Go, structured Python):

journalctl -u go-api -o json-pretty

Для централизации — отправка в Loki/ELK (отдельная статья) или Sentry для ошибок.


journalctl vs файлы в /var/log

journalctl /var/log/nginx/
systemd сервисы Да Иногда дублирует
Nginx access log Нет Да
Бинарный формат Да (читается через journalctl) Текст
Ротация journald vacuum logrotate

Для Nginx access — файлы + анализ логов. Для systemd — journalctl.


Чек-лист диагностики падения

  1. journalctl -xe — что упало последним
  2. systemctl status SERVICENAME — код выхода
  3. journalctl -u SERVICENAME -n 100 — контекст
  4. Проверить RAM/disk — Grafana
  5. Бэкап перед рестартом

Итог

journalctl — первый инструмент при любом «сервер не работает». Выучите 5–6 флагов — сэкономите часы при каждом инциденте.

VPS для практики — StormNet Cloud. Сервисы — systemd гайд. Мониторинг — Uptime Kuma.

Частые вопросы

journalctl или /var/log для диагностики?

systemd-сервисы — journalctl. Nginx access log — файлы в /var/log/nginx/. Используйте оба.

Как очистить старые логи journalctl?

journalctl --vacuum-size=500M или --vacuum-time=30d. Настройте SystemMaxUse в journald.conf для автоматики.