keepalived检测脚本及注意事项
- 默认每隔3秒钟执行一次检测脚本,检查nginx服务是否启动,如果没启动就把nginx服务启动起来,如果启动不成功,就把keepalived服务down掉,让vip漂浮到备keepalived上
- 检测脚本
#!/bin/bash
run=ps -C nginx --no-header | wc -l
if [ $run -eq 0 ]
then
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
sleep 3
if [ps -C nginx --no-header | wc -l
]
then
killall keepalived
fi
fi - 检测脚本一定要写在vrrp_instance的前面也就是上面,而且花括号一定要有空格,追踪track_script要定在vip的后面
- vrrp_script check_ng {
script " /etc/keepalived/check_nginx.sh "
interval 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.11/24
}
track_script {
check_ng(对应上边的脚本模块名)
}
}