一.MISC_CHECK:
1.根据脚本返回值进行处理
(1).返回0 #目标正常,权重不变
(2).返回1 #目标异常并立马移除服务队列
(3).返回2~254 #当目标异常时,修改权重为“返回值-2”,但不移除服务队列,仅当配置 #了"misc_dynamic"有效
2.示例
virutal_server 192.168.10.201 80 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence 15
protocol TCP
real_server 192.168.10.38 80 {
MISC_CHECK {
#指定脚本绝对路径,脚本与参数必须包含在引号内
misc_path "/etc/keepalived/bin/Ha_check.sh 192.168.10.38:80"
#指定检测超时时间
misc_timeout 3
#权重调整
#misc_dynamic
}
}
real_server 192.168.10.35 80 {
MISC_CHECK {
#指定脚本绝对路径,脚本与参数必须包含在引号内
misc_path "/etc/keepalived/bin/Ha_check.sh 192.168.10.35:80"
#指定检测超时时间
misc_timeout 3
#权重调整
#misc_dynamic
}
}
}
3.Ha_check.sh 脚本(chmod 755 /etc/keepalived/bin/Ha_check.sh)
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Warning: check_command error."
exit 1;
else
Check_Host=$1;
Check_Get=`curl -x $Check_Host --connect-timeout 1 -m 1 -I http://www.baidu.com 2>/dev/null | grep "200 OK" | wc -l`
if [ ${Check_Get} -eq 1 ]
then
exit 0;
else
exit 1;
fi
fi