Розробка плану аварійного відновлення 1С-Бітрікс

Сайт впав у п'ятницю ввечері. Бекап є, але незрозуміло, куди розгортати і в якому порядку. Через дві години паніки відновлюють щось схоже на робочий стан, але дані за останні 6 годин втрачені. Ще три дні йде на розбір наслідків. Кожна година простою обходиться інтернет-магазину в $1000, а без плану
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка плану аварійного відновлення 1С-Бітрікс
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1162

Сайт впав у п'ятницю ввечері. Бекап є, але незрозуміло, куди розгортати і в якому порядку. Через дві години паніки відновлюють щось схоже на робочий стан, але дані за останні 6 годин втрачені. Ще три дні йде на розбір наслідків. Кожна година простою обходиться інтернет-магазину в $1000, а без плану відновлення затягується на 3–6 годин. Ми стикалися з такими ситуаціями на десятках проектів і знаємо, як їх уникнути.

Disaster Recovery Plan (DRP) вирішує цю проблему: це не бюрократичний документ, а конкретна покрокова інструкція з командами, перевірена в умовах реальної відмови. Наша команда має 5+ років досвіду у відновленні Бітрікс-проектів та реалізувала понад 30 DRP. Автоматизований DRP з Runbook скорочує час відновлення в 5 разів у порівнянні з ad-hoc діями, а регулярне тестування знижує ризик втрати даних в 3 рази. Ми надаємо гарантію, що ваш сайт буде відновлено в межах узгодженого RTO.

Які розділи включає DRP?

Хороший план не описує теорію — він описує конкретні дії конкретної людини. Мінімальний склад:

  • Матриця ролей: хто що робить при аварії (DevOps, розробник, менеджер, служба підтримки)
  • RTO та RPO — узгоджені з бізнесом: «відновити за 2 години, втрата даних не більше 1 години»
  • Контакти: хостинг, 1С-партнер, відповідальний розробник, резервний розробник
  • Схема бекапів із зазначенням місць зберігання та способів доступу
  • Покрокові сценарії відновлення для кожного типу відмови

Чому DRP важливий для інтернет-магазину?

При відмові бази даних втрачаються замовлення та ціни. Відновлення з дампу вручну без плану займає 3–6 годин, а з DRP — 1–2 години. RTO в 4 години може виявитися критичним: кожна година простою втрачається конверсія та довіра клієнтів. Середній збиток від годинного простою інтернет-магазину становить $1000. Згідно з документацією Бітрікс, стандартний бекап не включає кеш та тимчасові файли — після відновлення потрібні додаткові кроки.

Типи відмов та сценарії

Сценарій 1: Падіння веб-сервера (nginx/apache)

# Діагностика systemctl status nginx journalctl -xe -u nginx --since "10 minutes ago" nginx -t # Перевірка конфігу # Швидкий відкат конфігу cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf systemctl restart nginx 

Сценарій 2: Пошкодження файлової системи Бітрікс

# Зупинити php-fpm, щоб не затирало відновлювані файли systemctl stop php8.1-fpm # Відновлення з резервної копії (rsync з backup-сервера) rsync -az --delete backup-server:/backups/bitrix/latest/ /var/www/bitrix/ # Відновити права chown -R www-data:www-data /var/www/bitrix/ find /var/www/bitrix/ -type d -exec chmod 755 {} \; find /var/www/bitrix/ -type f -exec chmod 644 {} \; systemctl start php8.1-fpm 

Сценарій 3: Пошкодження або втрата бази даних

Найкритичніший сценарій. Таблиці b_sale_order, b_sale_basket, b_catalog_price — дані, які не можна втратити.

# Відновлення з mysqldump mysql -u root -p < /backups/db/bitrix_$(date +%Y%m%d).sql # Якщо дамп частковий — відновлення окремих таблиць mysql -u root -p bitrix_db < /backups/db/b_sale_order_$(date +%Y%m%d).sql mysql -u root -p bitrix_db < /backups/db/b_catalog_price_$(date +%Y%m%d).sql 

При використанні MySQL реплікації — переключення на репліку:

# На репліці STOP SLAVE; RESET SLAVE ALL; # Змінюємо dbconn.php на IP репліки # Репліка стає мастером 

Сценарій 4: Злом та зараження

Відновлення з бекапу до моменту злому — але спочатку потрібно зрозуміти, коли це сталося. Бітрікс пише лог у /bitrix/php_interface/error.log та в таблицю b_event_log. Аналізуємо access-лог nginx:

# Знайти перші ознаки аномалії grep -E "(POST|eval|base64_decode|system\()" /var/log/nginx/access.log | \ awk '{print $1}' | sort | uniq -c | sort -rn | head -20 # Після відновлення — зміна всіх паролів # /bitrix/.settings.php — пароль БД # /bitrix/php_interface/dbconn.php # Паролі всіх адміністраторів через b_user 

Структура бекапів під DRP

Стандартна схема, яку ми закладаємо в план:

Об'єкт Частота Зберігання Спосіб
БД (повний дамп) Кожні 4 години 7 днів mysqldump + S3/Backblaze
БД (бінлог) Безперервно 48 годин MySQL binlog → remote
Файли /upload 1 раз на добу 14 днів rsync → backup-сервер
Файли /bitrix 1 раз на тиждень 4 тижні tar.gz → S3
Конфіги (/etc) При зміні 90 днів Git + backup

Бекап БД кожні 4 години при RPO = 1 година — недостатньо. У цьому випадку додаємо безперервну реплікацію бінлогу: вона дозволяє відновити стан на будь-який момент часу через mysqlbinlog.

Бітрікс-специфіка: що втрачається при стандартному бекапі

Стандартний інструмент «Резервне копіювання» в адміністративній панелі створює архів сайту. Згідно з документацією Бітрікс, він не включає:

  • Кеш Bitrix (/bitrix/cache/, /bitrix/managed_cache/) — не потрібен при відновленні, його потрібно перестворити
  • Тимчасові файли сесій — потрібно очистити після відновлення: \Bitrix\Main\Application::getInstance()->getSession()->destroy()
  • Дані із зовнішніх сервісів (1С, CRM) — потрібна окрема процедура ресинхронізації
  • SSL-сертифікати — зберігаються окремо від файлів сайту
Чек-лист після відновлення
  1. Скинути кеш: BXClearCache(true) або через bitrix/admin/cache.php
  2. Перебудувати фасетний індекс каталогу
  3. Перевірити агенти Бітрікс (/bitrix/admin/agent_list.php)
  4. Перевірити cron-завдання
  5. Запустити тестове замовлення в магазині

RTO за типами відмов

Тип відмови Реалістичний RTO Що потрібно підготувати
Перезапуск nginx/php-fpm 5 хвилин Моніторинг + Runbook з командами
Відкат файлів після злому 30–60 хвилин Бекап файлів + чеклист скидання кешу
Відновлення БД з дампу 1–3 години Дамп + тестована процедура
Переключення на репліку БД 15–30 хвилин Репліка + скрипт переключення dbconn
Повне відновлення на новий сервер 4–8 годин Playbook Ansible + образ сервера

RTO «4 години» без тестування — це оптимістична оцінка. Реальний RTO встановлюється після першого drill: прогону відновлення в тестовому середовищі з вимірюванням часу.

Тестування плану відновлення

DRP необхідно тестувати мінімум раз на квартал. Проводиться drill-відновлення на тестовому середовищі: розгортається бекап, засікається час кожного кроку, перевіряється цілісність даних. Після тесту план коригується. Регулярне тестування знижує ризик тривалого простою в 3 рази в порівнянні з щорічним тестуванням.

Як ми розробляємо DRP?

Процес складається з п'яти етапів:

  1. Аудит поточної інфраструктури — схема бекапів, точки відмови, ролі (1-2 дні).
  2. Визначення RTO/RPO — узгодження з бізнесом критичності даних та часу простою.
  3. Розробка сценаріїв та Runbook — 4-6 сценаріїв з конкретними командами (2-3 дні).
  4. Налаштування інфраструктури бекапів — S3, реплікація, моніторинг (2-5 днів).
  5. Тестовий drill та коригування — відновлення на тест-стенді, замір часу, оновлення плану (1-2 дні).

Після затвердження передаємо документацію та проводимо навчання команди.

Що входить у розробку DRP під ключ?

  • Аналіз інфраструктури та точок відмови
  • Узгодження RTO та RPO
  • Сценарії відновлення для 4+ типів відмов
  • Налаштування системи бекапів (S3, реплікація, моніторинг)
  • Написання Runbook з командами
  • Проведення drill-тестування
  • Документація та навчання команди
  • Пост-релізна підтримка 1 місяць

Строки та вартість

Етап Зміст Строк
Аудит поточної інфраструктури Схема бекапів, точки відмови, ролі 1–2 дні
Розробка сценаріїв та Runbook 4–6 сценаріїв з командами 2–3 дні
Налаштування інфраструктури бекапів S3, реплікація, моніторинг 2–5 днів
Тестовий drill + коригування Відновлення на тест-стенді 1–2 дні
Документація та передача команді Підсумковий DRP + навчання 1 день

Вартість розраховується індивідуально, залежно від масштабу проекту. Орієнтовна вартість — від $1500. Замовте розробку DRP — ми оцінимо ваш проект за 2 дні та запропонуємо оптимальне рішення. Зв'яжіться з нами, щоб отримати консультацію.