Команда — journalctl -u nginx --since '1 hour ago': -u выбирает юнит, --since задаёт окно. Четыре флага — -u, --since, -p и -f — закрывают большую часть разбора инцидента, и порядок ниже — тот, в котором их реально применяют: от полного списка сообщений сервиса до слежения за ошибками в реальном времени и выгрузки лога коллеге.
1. Как посмотреть логи одного сервиса?
$ clai покажи логи nginx→ journalctl -u nginx
-u это unit. Без него вы получите весь системный журнал, где сообщения вашего сервиса тонут среди сообщений ядра и всего остального.
2. Как сузить окно до последнего часа?
$ clai покажи логи nginx за последний час→ journalctl -u nginx --since '1 hour ago'
--since понимает человеческие формулировки: today, yesterday, '1 hour ago', '2026-06-20 14:00'. Есть парный --until, чтобы отрезать хвост после инцидента.
3. Как оставить только ошибки?
$ clai покажи только ошибки nginx за сегодня→ journalctl -u nginx --since today -p err
-p это приоритет syslog. err показывает уровень error и всё, что серьёзнее — critical, alert, emergency. Уровни: emerg, alert, crit, err, warning, notice, info, debug.
4. Как следить за логами в реальном времени?
$ clai следи за логами nginx прямо сейчас→ journalctl -u nginx -f
Аналог tail -f, но journald знает про ротацию, так что замолчать эта команда не может. Это и есть главное преимущество перед чтением файла напрямую.
5. Как посмотреть, что было с прошлой загрузки?
$ clai покажи ошибки этого сервиса с предыдущей загрузки системы→ journalctl -u nginx -b -1 -p err
-b это boot. -b -1 предыдущая загрузка, -b 0 или просто -b текущая. Незаменимо, когда машина ушла в перезагрузку и надо понять почему.
6. Как отдать лог коллеге?
$ clai выгрузи логи nginx за сегодня в файл без пагинации→ journalctl -u nginx --since today --no-pager -o short-iso > nginx-today.log
--no-pager убирает less, иначе в неинтерактивной среде команда зависнет. -o short-iso даёт метки времени в ISO-8601, которые нормально сортируются и не зависят от локали.
Грабли
-uпринимает имя юнита, а не имя процесса.journalctl -u nginxработает,journalctl -u /usr/sbin/nginx— нет. Список юнитов даётsystemctl list-units --type=service.- Журнал может не пережить перезагрузку. Если в
/etc/systemd/journald.confстоитStorage=volatile, история теряется при рестарте. Проверьте, существует ли каталог/var/log/journal. - Пользовательские и системные юниты разделены. Для сервисов, запущенных под вашим пользователем, нужен
journalctl --user -u имя, иначе вы ничего не найдёте.
Похожие вопросы
Как посмотреть последние N строк? journalctl -u nginx -n 50. По умолчанию journalctl показывает всё с начала, что на большом журнале неудобно.
Чем journalctl лучше чтения файла в /var/log? Он знает о ротации, умеет фильтровать по юниту, приоритету и времени и показывает логи сервисов, которые вообще не пишут в файлы.
Как ограничить размер журнала? SystemMaxUse=500M в /etc/systemd/journald.conf, затем systemctl restart systemd-journald. Разовая чистка: journalctl --vacuum-size=200M.
Читайте также
- Смотреть несколько логов одновременно
- Процесс, который не хочет умирать
- Автоматическая чистка старых логов и бэкапов одной фразой
Не запоминайте флаги journalctl — опишите инцидент, и CliAI напишет команду. Установка одной строкой.