Linux Labs

Практики SRE: SLO, инциденты, отказоустойчивость / Ступень 5 из 8

Разбор без поиска виноватых

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

Шаг 5 из 6 · лаба · 30 минсредняя

Приём событий встал, а перезапускать нельзя

Служба приёма событий под нагрузкой не может сохранить их на свой том и копит в памяти, а перезапуск их потеряет. Верни место на томе без перезапуска и сделай так, чтобы журнал службы больше не съедал том.

Ситуация

Служба lab-ingest принимает события от витрин магазина — по пять в секунду, без перерыва. Принятые события она держит в памяти и каждые две секунды сохраняет пачкой на свой том /srv/ingest (каталог spool/), а каждое событие записывает в журнал /srv/ingest/log/ingest.log.

Алерт: curl localhost:8090/healthz отвечает 503, события перестали ложиться на диск и копятся в памяти. Дежурный до тебя уже «почистил» том, но место так и не появилось.

Перезапускать lab-ingest нельзя: события, которые ждут в памяти, при перезапуске пропадут.

Задача

  1. На томе /srv/ingest снова есть место: занято меньше половины. Том тот же — не расширяй его и не подменяй.
  2. Служба работает тем же процессом, что и во время сбоя.
  3. Приём событий в строю: новые события принимаются (202), очередь из памяти легла на диск.
  4. Служба пишет журнал в /srv/ingest/log/ingest.log, и на томе нет удалённых, но открытых файлов.
  5. Журнал больше не съест том: правило logrotate ротирует ingest.log, как только он больше 10 МиБ, хранит не больше трёх архивов, и после ротации служба без перезапуска пишет в новый файл. logrotate на этой машине запускается каждый час.

Ограничения

  • lab-ingest и lab-clients не перезапускай и не останавливай, их программы и юниты не меняй.

Часть фактов видна только через sudo. Интернета на машине нет.

Лаба · самостоятельно

Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.

Цели

0 из 5
  • На томе /srv/ingest снова есть место — занято меньше половины, том прежний — ещё не выполнена
  • Службу lab-ingest не перезапускали — работает тот же процесс, что и во время сбоя — ещё не выполнена
  • Приём событий в строю — события проверки приняты, очередь из памяти легла на диск — ещё не выполнена
  • Служба пишет журнал в /srv/ingest/log/ingest.log, удалённых открытых файлов на томе нет — ещё не выполнена
  • Правило logrotate ротирует ingest.log по размеру (не больше 10 МиБ, не больше 3 архивов), и после ротации служба без перезапуска пишет в новый файл — ещё не выполнена
Ctrl+Enter
Запустит машину node1 · Ubuntu 24.04

Машина запускается

Подсказки

0 из 3

Цели лабы

0 из 5
  • На томе /srv/ingest снова есть место — занято меньше половины, том прежний — ещё не выполнена
  • Службу lab-ingest не перезапускали — работает тот же процесс, что и во время сбоя — ещё не выполнена
  • Приём событий в строю — события проверки приняты, очередь из памяти легла на диск — ещё не выполнена
  • Служба пишет журнал в /srv/ingest/log/ingest.log, удалённых открытых файлов на томе нет — ещё не выполнена
  • Правило logrotate ротирует ingest.log по размеру (не больше 10 МиБ, не больше 3 архивов), и после ротации служба без перезапуска пишет в новый файл — ещё не выполнена
node1 Ubuntu 24.04

Цели лабы

0 из 5
  • На томе /srv/ingest снова есть место — занято меньше половины, том прежний — ещё не выполнена
  • Службу lab-ingest не перезапускали — работает тот же процесс, что и во время сбоя — ещё не выполнена
  • Приём событий в строю — события проверки приняты, очередь из памяти легла на диск — ещё не выполнена
  • Служба пишет журнал в /srv/ingest/log/ingest.log, удалённых открытых файлов на томе нет — ещё не выполнена
  • Правило logrotate ротирует ingest.log по размеру (не больше 10 МиБ, не больше 3 архивов), и после ротации служба без перезапуска пишет в новый файл — ещё не выполнена
Загрузка…