Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 8 из 9

Расследование по журналам

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 6 · на машине · 7 мин

Кто что пишет

Причину ответа 500 знает тот, кто его выдал, — а nginx его только передал.

У nginx два журнала. access.log — строка на каждый запрос: адрес клиента, время, запрос и код ответа. error.log — сбои самого nginx: не смог подключиться к приложению, не дождался ответа, не нашёл файл. Приложение за nginx называют upstream. Если оно ответило кодом 500, для nginx это обычный ответ: он записывает его в access.log, передаёт клиенту и ошибкой не считает. Поэтому error.log пуст. Как разобрать access.log по полям и посчитать коды ответов, ты видел в лабах «Отчёт по журналу nginx» и «Сосчитай ошибки в журналах».

Причину знает приложение. lab-shop — служба systemd, и её вывод попадает в журнал службы, который ты читал командой journalctl -u в уроке о системном журнале. Общая нить между журналами — время. В access.log оно записано как [22/Oct/2026:04:51:09 +0000], в журнале — Oct 22 04:51:09; +0000 значит UTC, как и у часов машины. Секунду первого 500 из access.log подставляют в --since (в Вики):

bash
sudo journalctl -u lab-shop --since "2026-10-22 04:51:09"
Упражнение · посмотреть

Найди причину в журнале приложения

Найди в access.log первый ответ 500 и прочитай журнал службы lab-shop.

Сначала предположи

В секунду первого 500 nginx ничего не записал в error.log. Что в эту секунду в журнале lab-shop?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Ubuntu 24.04
Загрузка…