Keepalived + HAProxy: Настройка отказоустойчивости (Failover): Difference between revisions

From wiki.baghirzade.pro
Jump to navigation Jump to search
Created page with " == 🛡️ Keepalived + HAProxy: Настройка отказоустойчивости (Failover) == Полная инструкция по установке и настройке Keepalived для автоматического переключения между HAProxy инстансами (MASTER/BACKUP). ---- === 📦 Установка Keepalived и создание пользователя === sudo apt install keepalived -y sudo useradd -s /usr/sbin/nologin..."
 
No edit summary
 
Line 34: Line 34:
<pre>
<pre>
sudo vim /etc/keepalived/keepalived.conf
sudo vim /etc/keepalived/keepalived.conf
</pre>
</pre>Пример:<pre>
vrrp_script chk_haproxy {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight -20
}


vrrp_instance VI_1 {
    state MASTER
Запуск:
    interface ens192
  <code>sudo systemctl restart keepalived
    virtual_router_id 51
    priority 200
    advert_int 1
 
    authentication {
        auth_type PASS
        auth_pass 12345
    }
 
    virtual_ipaddress {
        192.168.166.100
    }
 
    track_script {
        chk_haproxy
    }
}
</pre>Запуск:
  sudo systemctl restart keepalived
  sudo systemctl enable keepalived
  sudo systemctl enable keepalived
  sudo systemctl status keepalived</code>
  sudo systemctl status keepalived
----
----


== 🟨 Конфигурация для BACKUP-сервера ==
== 🟨 Конфигурация для BACKUP-сервера ==
  <code>sudo vim /etc/keepalived/keepalived.conf</code>
  sudo vim /etc/keepalived/keepalived.conf
Пример:
Пример:
  <code>vrrp_script chk_haproxy {
  vrrp_script chk_haproxy {
     script "/etc/keepalived/check_haproxy.sh"
     script "/etc/keepalived/check_haproxy.sh"
     interval 2
     interval 2
Line 72: Line 95:
         chk_haproxy
         chk_haproxy
     }
     }
  }</code>
  }
Запуск:
Запуск:
  <code>sudo systemctl restart keepalived
  sudo systemctl restart keepalived
  sudo systemctl enable keepalived
  sudo systemctl enable keepalived
  sudo systemctl status keepalived</code>
  sudo systemctl status keepalived
----
----



Latest revision as of 12:13, 10 October 2025

🛡️ Keepalived + HAProxy: Настройка отказоустойчивости (Failover)

Полная инструкция по установке и настройке Keepalived для автоматического переключения между HAProxy инстансами (MASTER/BACKUP).


📦 Установка Keepalived и создание пользователя

sudo apt install keepalived -y
sudo useradd -s /usr/sbin/nologin keepalived_script

🧪 Скрипт проверки HAProxy

sudo vim /etc/keepalived/check_haproxy.sh

Содержимое:

#!/bin/bash
if ! pgrep haproxy > /dev/null; then
    exit 1
fi
exit 0
sudo chmod +x /etc/keepalived/check_haproxy.sh

🛠️ Разрешение non-local bind

Добавьте в /etc/sysctl.conf:

net.ipv4.ip_nonlocal_bind=1

Примените:

sudo sysctl -p

🟥 Конфигурация для MASTER-сервера

sudo vim /etc/keepalived/keepalived.conf

Пример:

vrrp_script chk_haproxy {

   script "/etc/keepalived/check_haproxy.sh"
   interval 2
   weight -20

}

vrrp_instance VI_1 {

   state MASTER
   interface ens192
   virtual_router_id 51
   priority 200
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 12345
   }
   virtual_ipaddress {
       192.168.166.100
   }
   track_script {
       chk_haproxy
   }

}

Запуск:

sudo systemctl restart keepalived
sudo systemctl enable keepalived
sudo systemctl status keepalived

🟨 Конфигурация для BACKUP-сервера

sudo vim /etc/keepalived/keepalived.conf

Пример:

vrrp_script chk_haproxy {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight -20
}

vrrp_instance VI_2 {
    state BACKUP
    interface ens192
    virtual_router_id 51
    priority 50
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 12345
    }

    virtual_ipaddress {
        192.168.166.100
    }

    track_script {
        chk_haproxy
    }
}

Запуск:

sudo systemctl restart keepalived
sudo systemctl enable keepalived
sudo systemctl status keepalived

💡 Рекомендации и дополнения:

  • Убедитесь, что haproxy установлен и настроен на обоих узлах
  • Для HAProxy можно использовать health-check в связке с Keepalived
  • Используйте tcpdump или ip a для проверки привязки 192.168.166.100
  • Проверить работу можно, остановив haproxy на MASTER и убедившись, что IP переехал на BACKUP

🎯 Готово! Теперь при отказе HAProxy на MASTER, трафик автоматически переключится на BACKUP через виртуальный IP 🚦