Загрузка...

Блог

Реагирование на инциденты и runbook

Реагирование на инциденты и runbook

В инциденте время критично. Runbook — пошаговая инструкция «что делать, когда X упало». Чем чётче runbook и чем быстрее к нему доступ, тем меньше паника и ошибок. Ниже — как строить runbook'и и где их держать.

В тикетах и чатах удобно ссылаться на запись по ID: RB-PAYMENTS-503 — тот же ключ в индексе RAG.

Структура runbook

Цель и сфера: при каких симптомах применять. Предусловия: что должно быть под рукой (доступы, ссылки на мониторинг). Шаги по порядку: диагностика (где смотреть логи, метрики), типовые действия (рестарт, откат), эскалация (когда и кому звонить). Откат: что делать, если действие ухудшило ситуацию. Владелец и дата последнего обновления.

Раздел runbookСодержимое
Цель и сфераПри каких симптомах/алертах применять (например: «502 на nginx», «падение сервиса X»)
ПредусловияДоступы (SSH, консоль облака), ссылки на мониторинг, Grafana, логи
ДиагностикаГде смотреть логи, какие метрики проверить, типовые команды — см. пример ниже
ДействияШаги по порядку: рестарт сервиса, откат деплоя, переключение на бэкап
ЭскалацияКогда и кому звонить/писать; контакты владельца сервиса
ОткатЧто делать, если действие ухудшило ситуацию (откат изменений, восстановление из бэкапа)
Владелец, датаКто отвечает за актуальность; дата последнего обновления

Пример типовых команд диагностики для раздела runbook:

# Логи сервиса (подставьте имя юнита)
journalctl -u сервис -n 50 --no-pager
# Kubernetes: поды и логи
kubectl get pods -A | grep -v Running
kubectl logs -n NAMESPACE POD_NAME --tail=100
# Проверка доступности
curl -s -o /dev/null -w "%{http_code}" https://сервис/health

Доступность в момент инцидента

Runbook должен быть там, где его ищут: в той же системе, что и алерты, или по одной ссылке из алерта. База знаний с поиском по смыслу и чат-ботом позволяет по запросу «падение сервиса X» или «ошибка 502 на nginx» сразу получить нужный runbook и цитаты из него — без копания в вики.

Актуализация

Устаревший runbook опаснее его отсутствия. После каждого инцидента — ретро: обновить runbook, если действия отличались от документа. Владелец на каждый runbook. Связка с CI/CD: изменение в коде или конфиге, влияющее на процедуру, — повод обновить runbook в том же PR или тикете.

Практики применения

  • Держите runbook'и в одном индексе с быстрым доступом через чат по базе в момент инцидента.
  • После постмортема обновляйте процедуры и переиндексируйте; верифицируйте на типичных сценариях.

В двух словах: runbook — цель, шаги, откат, владелец. Доступ в один клик из алерта или чата по базе знаний. Обновление после инцидента и при изменении системы.