在keepalived的配置文件中增加相應配置項
vrrp_script checkhaproxy
{
script "/home/check.sh"
interval 3
weight -20
}
vrrp_instance test
{
...
track_script
{
checkhaproxy
}
...
}
keepalived會定時執(zhí)行腳本并對腳本執(zhí)行的結果進行分析策精,動態(tài)調整vrrp_instance的優(yōu)先級肥惭。
如果腳本執(zhí)行結果為0政己,并且weight配置的值大于0首有,則優(yōu)先級相應的增加
如果腳本執(zhí)行結果非0锻梳,并且weight配置的值小于0抖棘,則優(yōu)先級相應的減少
其他情況茂腥,維持原本配置的優(yōu)先級,即配置文件中priority對應的值切省。
這里需要注意的是:
1) 優(yōu)先級不會不斷的提高或者降低
2) 可以編寫多個檢測腳本并為每個檢測腳本設置不同的weight
3) 不管提高優(yōu)先級還是降低優(yōu)先級最岗,最終優(yōu)先級的范圍是在[1,254],不會出現(xiàn)優(yōu)先級小于等于0或者優(yōu)先級大于等于255的情況
這樣可以做到利用腳本檢測業(yè)務進程的狀態(tài)朝捆,并動態(tài)調整優(yōu)先級從而實現(xiàn)主備切換般渡。