RSyslog
Balansare IP cu KeepAlived pe Ubuntu 2X.04 LTS

Pentru instalare keepalived se cere uneori (depinzand de ditributie si/sau versiune) instalarea librariei libipset13
apt install -y keepalived libipset13
Pe fiecare dintre noduri se creaza si editeaza urmatorul fisier:
nano /etc/keepalived/keepalived.conf
cu urmatorul continut
ha01
vrrp_instance VIP {
state MASTER
interface ens18
virtual_router_id 66
priority 99
advert_int 1
unicast_src_ip 192.168.14.11
unicast_peer {
192.168.14.22
192.168.14.33
}
authentication {
auth_type PASS
auth_pass [pass1234]
}
virtual_ipaddress {
192.168.14.123/24
}
}
ha02 si ha03
vrrp_instance VIP {
state BACKUP
interface ens18
virtual_router_id 66
priority 97 <- pentru ha02
priority 95 <- pentru ha03
advert_int 1
unicast_src_ip 192.168.14.22 <- pentru ha02
unicast_src_ip 192.168.14.33 <- pentru ha03
unicast_peer {
192.168.14.11
192.168.14.33 <- pentru ha02
192.168.14.22 <- pentru ha03
}
authentication {
auth_type PASS
auth_pass [pass1234]
}
virtual_ipaddress {
192.168.14.123/24
}
}
Legenda
vrrp_instance = numele instantei de VIP
state = numele NIC-ului fizic sau virtual
virtual_router_id = este un ID ce se aloca instantei respective (keepalived poate balansa mai multe IP-uri de pe mai multe NIC-uri)
priority = reprezinta prioritatea serverului respectiv in lantul de redundanta
advert_int = intervalul (secunde) in care se face verificarea celoralte instante de VIP
unicast_src_ip = se trece IP-ul NIC-ului de pe serverul curent
unicast_peer = se trec IP-urile celorlalte servere din instanta
auth_pass = parola de maxim opt caractere persistenta pe toate instantele
virtual_ipaddress = identifica IP-ul flotant de pe instantele de keepalived
Monitorizarea Apache2 in vederea balansarii IP-ului
In vederea migrarii IP-ului in cazul unui fail al Apache2, se adauga urmatorul continut in toate serverele pe care instanta de Keepalived este configurata:
- nano /etc/keepalived/keepalived.conf
ha01, ha02 si ha03
vrrp_track_process trkap2 {
process apache2
weight 10
}
vrrp_instance VIP {
state MASTER
interface ens18
virtual_router_id 66
priority 99
advert_int 1
unicast_src_ip 192.168.14.11
unicast_peer {
192.168.14.22
192.168.14.33
}
track_process {
trkap2
}
authentication {
auth_type PASS
auth_pass [pass1234]
}
virtual_ipaddress {
192.168.14.123/24
}
}
Weight
Weight-ul se adauga la priority astfel incat toate nodurile cu Apache2 pornit vor avea urmatoarele prioritati:
- ha01=109
- ha02=107
- ha03=105
In momentul in care Apache2 este oprit pe ha01 priority va scade de la 109 la 99 astfel incat IP-ul va migra pe ha02 care la momentul respectiv va avea o prioritate de 107.
Alertare Keepalived prin SMTP
Keepalived poate trimite alerte pe mail la migrarea unui IP de pe un nod pe altul:
- nano /etc/keepalived/keepalived.conf
ha01, ha02 si ha03
global_defs {
notification_email {
monitorizare@domeniu.ro
}
notification_email_from keepalived@domeniu.ro
smtp_server mail.domeniu.ro
smtp_connect_timeout 30
}
vrrp_track_process track_apache {
process apache2
weight 10
}
vrrp_instance VIP {
state MASTER
interface ens18
virtual_router_id 66
priority 99
smtp_alert
advert_int 1
unicast_src_ip 192.168.14.11
unicast_peer {
192.168.14.22
192.168.14.33
}
track_process {
track_apache
}
authentication {
auth_type PASS
auth_pass [pass1234]
}
virtual_ipaddress {
192.168.14.123/24
}
}
Legenda
notification_email = se va trece adresa de mail care va primi alertele de migrare IP
notification_email_from = se va trece adresa de mail de la care se trimit alertele. Desi keepalived nu face autentificare in serverul de mail, adresa trebuie sa fie una valida
smtp_server = fqdn-ul serverului de mail
smtp_connect_timeout = perioada (secunde) ce va trece din momentul din care nodul pierde IP-ul pana va trimite alertarea pe mail