В инциденте время критично. 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 — цель, шаги, откат, владелец. Доступ в один клик из алерта или чата по базе знаний. Обновление после инцидента и при изменении системы.