Налаштування стійкості до відмови Бітрікс24 On-Premise

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування стійкості до відмови Бітрікс24 On-Premise
Проста
~1 робочий день
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування відмовостійкості Бітрікс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 (один) Втрата сесій (вихід всіх) 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 перед проектуванням архітектури.