Короткий ответ
Логи сервиса смотрят командой journalctl -u <имя сервиса>, для фильтрации по времени используют флаги --since и --until, а для просмотра в реальном времени — флаг -f (аналог tail -f).
Как это работает подробнее
journald централизованно собирает stdout/stderr процессов, запущенных через systemd, вместе со структурированными метаданными (unit, PID, время), и хранит их в бинарном индексированном формате, что позволяет быстро фильтровать без парсинга текстовых файлов.
Пример кода
commands.sh
journalctl -u myapp.service --since "1 hour ago" -p err
journalctl -u myapp.service -fЧто использовать на практике
- Практика. при разборе инцидента полезно сузить вывод и по юниту, и по времени одновременно, а также использовать -p err для показа только сообщений уровня error и выше, чтобы не тонуть в общем потоке логов.
Подводные камни
- Риск. Частая ошибка — искать логи сервиса в /var/log/syslog на системах, где используется journald без форвардинга в rsyslog, и не находить нужные записи просто потому что они лежат только в бинарном журнале systemd.