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.
Чек-лист диагностики падения
journalctl -xe— что упало последнимsystemctl status SERVICENAME— код выходаjournalctl -u SERVICENAME -n 100— контекст- Проверить RAM/disk — Grafana
- Бэкап перед рестартом
Итог
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 для автоматики.






