Відмовостійкість Бітрікс24 On-Premise: налаштування під ключ
Уявіть: у вашому Бітрікс24 On-Premise падає сервер бази даних посеред робочого дня. Без репліки та автоматичного фейловера — 30 хвилин простою, втрачені заявки, зрив SLA клієнтам. Або раптово відмовляє NFS — усі файли недоступні, співробітники не можуть завантажити документи, робота паралізована. Типовий простій у 30 хвилин коштує бізнесу від 200 000 гривень. Ми вирішуємо ці сценарії на етапі проектування відмовостійкості. Наш досвід — 10+ років з Бітрікс24, понад 50 проектів з навантаженням до 5000 користувачів. Кожен проект починається з аудиту поточної інфраструктури — виявляємо всі SPOF і пропонуємо архітектуру, яка мінімізує RTO та RPO. Типові рішення: Keepalived для балансування VIP, GlusterFS для розподіленого сховища, Orchestrator для автоматичного фейловера MySQL. У результаті ви отримуєте SLA 99.99% і впевненість у роботі системи.
Чому відмовостійкість Бітрікс24 On-Premise критична?
Без відмовостійкості кожен компонент — SPOF. Падіння одного сервера призводить до повного простою. Наприклад, втрата майстер-ноди MySQL без репліки означає втрату даних за останні хвилини та ручне відновлення. З автоматичним фейловером RTO знижується з 30 хвилин до 2 хвилин. Це різниця між втратою замовлень і штатною роботою. Відмовостійкість окупається при першому серйозному збої.
Аналіз точок відмови (Single Point of Failure)
Перш ніж будувати відмовостійкість, знаходимо всі SPOF у вашій інсталяції. Використовуємо таблицю ризиків:
| Компонент | Ризик | Рішення |
|---|---|---|
| Веб-сервер (один) | Повний простій при падінні | Active-Active кластер |
| MySQL без репліки | Втрата даних + простій | Master-Slave + автофейловер |
| NFS (один) | Втрата файлів + простій | GlusterFS або S3 |
| Redis (один) | Втрата сесій (logout всіх) | Redis Sentinel |
| Балансувальник | Повний простій | Keepalived + VIP |
| DNS | Недоступність за іменем | Два DNS-сервери або Anycast |
Чому Keepalived — стандарт для балансування?
Це рішення перевірено роками: Keepalived перемикає VIP за 2–3 секунди при падінні майстра. Ручне перемикання DNS зайняло б хвилини. Налаштування просте — наведемо конфіг для MASTER-ноди:
# /etc/keepalived/keepalived.conf — MASTER-нода
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass your_secret
}
virtual_ipaddress {
192.168.1.100/24 # VIP — цей IP прописаний в DNS
}
track_script {
chk_nginx
}
}
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 2
weight -20
}При падінні MASTER Keepalived автоматично переносить VIP на BACKUP-ноду. Перемикання займає 2–3 секунди. Згідно з документацією Keepalived, такий механізм забезпечує високу доступність без участі адміністратора.
Як працює автофейловер бази даних?
Ручне перемикання Master → Slave при аварії — це 15–30 хвилин downtime. Автоматичний фейловер через Orchestrator у 10 разів швидше — RTO знижується з 30 хвилин до 2 хвилин. Orchestrator — найбільш зріле рішення для MySQL/MariaDB.
# Встановлення та налаштування Orchestrator
orchestrator-client -c topology -i db-master:3306
# При падінні майстра автоматично промоутує кращу репліку
Після зміни майстра Бітрікс24 має отримати нову адресу БД. Реалізується через ProxySQL — проксі перед MySQL, який прозоро перемикає з'єднання при зміні топології. Це усуває необхідність ручної зміни конфігів.
GlusterFS для відмовостійкого сховища
NFS — простий і дешевий варіант, але при його падінні весь кластер втрачає доступ до файлів. GlusterFS — розподілена файлова система з реплікацією, яка продовжує роботу при відмові одного вузла.
# На обох вузлах сховища
gluster volume create bitrix-files replica 2 \
storage1:/data/bitrix storage2:/data/bitrix
gluster volume start bitrix-files
# Монтування на веб-вузлах
mount -t glusterfs storage1:/bitrix-files /home/bitrix/www/uploadПри падінні одного вузла GlusterFS продовжує роботу на другому. Записи синхронізуються автоматично при відновленні.
Health checks і автовідновлення
Моніторинг без автодій — половина роботи. Налаштуйте автоматичні реакції:
- nginx health_check з виключенням хворого backend з пулу
- systemd автоперезапуск для nginx, php-fpm, redis при краші
- Cron-перевірка реплікаційного лагу з алертом у Telegram при lag > 60 сек
# Автоматична перевірка реплікації з алертом
mysql -u monitor -e "SHOW SLAVE STATUS\G" | grep "Seconds_Behind_Master" | \
awk '{if($2>60) system("curl -s -X POST https://api.telegram.org/bot$TOKEN/sendMessage -d chat_id=$CHAT -d text=REPLICA_LAG_ALERT")}' RTO/RPO для різних сценаріїв
| Сценарій | RPO (втрата даних) | RTO (час відновлення) |
|---|---|---|
| Падіння веб-вузла | 0 | < 5 сек (keepalived) |
| Падіння майстра БД | < 5 сек | 1–2 хв (Orchestrator) |
| Падіння NFS/GlusterFS | 0 (реплікація) | < 30 сек |
| Повна втрата датацентру | По RPO бекапу (1 год) | 2–4 год |
| Збій диска на одному вузлі | 0 | < 1 хв (перемикання на репліку) |
Що входить у роботу
- Аудит поточної інфраструктури та виявлення SPOF
- Проектування відмовостійкої архітектури з урахуванням ваших SLA
- Налаштування Keepalived, GlusterFS, Orchestrator, Redis Sentinel, ProxySQL
- Інтеграція з моніторингом (Zabbix/Prometheus) та алертингом
- План відновлення (DRP) та документація з експлуатації
- Навчання ваших адміністраторів
Замовте проектування відмовостійкого кластера та отримайте консультацію. Зв'яжіться з нами для аудиту вашої інфраструктури — оцінимо проект за один день.







