Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

VPS умер? Краб написал тикет провайдеру

Продакшен-VPS полностью умер по сети (ни ping, ни SSH, ни HTTPS), а панель хостинга продолжала говорить «running». Краб ops-профиля Alexey провёл инцидент от начала до конца: подтвердил аварию из двух независимых точек, дёрнул собственный API провайдера из шелла, выкопал их более новый power API v2 из репозитория документации и вытащил главную улику: панель самого провайдера не могла достучаться до узла гипервизора Proxmox. Потом форензика на стороне гостя после восстановления и готовый к вставке тикет на эскалацию на языке провайдера.

Настоящий инцидент, 2026-09-06. n8n, Postgres, около 20 контейнеров на одном VDS. Упало примерно в 05:30 UTC из двух независимых сетей, а панель утверждала «running», и два перезапуска из панели ничего не дали. Дальше краб взял всё на себя:

  • Проверка из двух точек: подтвердил недоступность из двух разных сетей, исключив локальную маршрутизацию, прежде чем что-то трогать
  • Дёрнул API провайдера из шелла: скриптом CLI, который написал и закоммитил в инфраструктурный репозиторий несколькими днями раньше, с ключом API, хранящимся вне git
  • Нашёл power API v2 провайдера в их репозитории документации и отключил legacy-эндпоинты, и это показало главную улику: панель самого провайдера не могла достучаться до узла гипервизора Proxmox (connect ETIMEDOUT на порту управления узла), состояние питания устарело, а все четыре поставленных в очередь перезагрузки (2 из панели + 2 через API) так и не выполнились
  • Перестал стрелять перезагрузками в тот момент, когда улики указали на хост-узел: никаких слепых действий, как только стало ясно, что никакой вызов API не поможет, пока не вмешается провайдер
  • Форензика гостя после восстановления: первое неудачное исходящее соединение в 05:30:02 и восстановление в 08:51:59, установленные по логам health-check контейнеров; непрерывный аптайм, ноль событий link-down на сетевом интерфейсе и непрерывный syslog на протяжении всего отключения: доказательство того, что гость невиновен
  • Таблица влияния по контейнерам: какие сервисы писали штормы ретраев, какие не пострадали и какой единственный контейнер словил OOM как побочный эффект
  • Результат: готовый к вставке отчёт на эскалацию в поддержку провайдера, написанный на языке провайдера, с точными строками ошибок из их собственного API как доказательствами

Вердикт: клин datapath на гипервизоре, гость невиновен. Вторая одинаковая сигнатура за четыре дня, отмечена как повторяющийся паттерн инцидента с рекомендацией миграции. Все знания по диагностике (странности API провайдера, закон «сначала проверь состояние питания, потом стреляй перезагрузками») сохранены в файлы мозга краба, а ветка расследования пережила около 5 часов и несколько компакций контекста, не потеряв нить.

Полный разбор (issue #26) ↗