Încerc să configurez keepalived în așa fel încât, dacă orice aplicație sau serviciu care rulează pe nodul master eșuează, keepalived ar trebui să o considere defect, iar nodul de rezervă să acționeze ca master și să preia IP-ul plutitor de la nodul master.
Am scris un script pentru a verifica dacă serviciul X de pe serverul principal se defectează, apoi ar trebui să treacă la nodul de rezervă.
Conf. mele keeplivered sunt:
global_defs {
enable_script_security
}
vrrp_script keepalived_check {
scriptul „/root/new/check.sh”
intervalul 1
timeout 1
ridica 2
toamna 2
greutate 0 invers
}
vrrp_instance V1_11 {
stat MAESTRU
interfata ens3
virtual_router_id 51
prioritatea 101
advert_int 1
unicast_src_ip 192.168.10.129
unicast_peer {
192.168.10.130
}
autentificare {
auth_type PASS
auth_pass 1122
}
adresa_virtuală {
192.168.10.231/24
}
track_script {
keepalived_check
}
}
Scriptul care verifică starea serviciului:
#!/bin/bash
var="$(systemctl is-active myservice.service)"
dacă [ $var == „activ” ]
atunci
ecou 0
altfel
ecou 5
fi
Am oprit manual utilizarea „myservice”.
systemctl stop myservice.service
Ieșirea pentru script este „5” așa cum era de așteptat. Dar cu configurațiile menționate mai sus, nodul principal rămâne ca nod primar și nu își schimbă proprietatea către nodul de rezervă. Există vreo configurație specială pe care am ratat-o, apoi ajutați-mă să o găsesc?