Linux Labs

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

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

средняя ~30 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

Служба 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 архивов), и после ротации служба без перезапуска пишет в новый файл — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…