Настройка отказоустойчивости Битрикс24 On-Premise

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка отказоустойчивости Битрикс24 On-Premise
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка отказоустойчивости Битрикс24 On-Premise

Отказоустойчивость — это не кластер ради кластера. Это ответ на вопрос: что произойдёт, когда упадёт каждый из компонентов системы, и как быстро она восстановится? Для Битрикс24 On-Premise цели нужно определить заранее: SLA 99.9% (8.7 часов простоя в год) принципиально отличается от SLA 99.99% (52 минуты).

Анализ точек отказа (Single Point of Failure)

Прежде чем строить отказоустойчивость, найдите все SPOF в вашей инсталляции:

Компонент Риск Решение
Веб-сервер (один) Полный простой при падении Active-Active кластер
MySQL без реплики Потеря данных + простой Master-Slave + автофейловер
NFS (один) Потеря файлов + простой GlusterFS или S3
Redis (один) Потеря сессий (logout всех) Redis Sentinel
Балансировщик Полный простой keepalived + VIP
DNS Недоступность по имени Два DNS-сервера или Anycast

Keepalived + Virtual IP для балансировщика

Самое критичное — балансировщик нагрузки сам не должен быть SPOF:

# /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 секунды.

Автофейловер базы данных

Ручное переключение Master → Slave при аварии — это 15–30 минут downtime. Автоматический фейловер через Orchestrator или MHA:

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 часа

Отказоустойчивость стоит денег — минимум удвоение инфраструктуры. Но стоимость одного часа простоя корпоративного портала для 200 сотрудников оправдывает эти затраты. Считайте ROI перед проектированием архитектуры.