用yum按照的keepalived 设置好只好,开机可以启动,但是当关闭keepalived和nginx,再用systemctl start keepalived.service启动却启动不了,用命令直接:keepalived 就可以,目前还没找到解决的方法,看网上也有人遇到这个问题,现在如果要重新启动keealived只能用命令行输入:keepalived
参考:https://www.jianshu.com/p/61183d77f29f
虽然用命令是可以用,但是还是希望知道怎么解决这个问题的网友帮下忙,目前我的配置
master
global_defs {
router_id lvs_1
}
vrrp_script chk_nginx {
#健康检查脚本,当脚本返回值不为0时认为失败
script "/etc/keepalived/nginx_check.sh"
#检查频率,以下配置每2秒检查1次
interval 3
#当检查失败后,将vrrp_instance的priority减小5
weight -5
#连续监测失败3次,才认为真的健康检查失败。并调整优先级
fall 3
#连续监测1次成功,就认为成功。但不调整优先级
rise 1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
mcast_src_ip 192.168.187.200
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.187.100
}
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
}
backup :
global_defs {
router_id lvs_2
}
vrrp_script chk_nginx {
#健康检查脚本,当脚本返回值不为0时认为失败
script "/etc/keepalived/nginx_check.sh"
#检查频率,以下配置每2秒检查1次
interval 3
#当检查失败后,将vrrp_instance的priority减小5
weight -5
#连续监测失败3次,才认为真的健康检查失败。并调整优先级
fall 3
#连续监测1次成功,就认为成功。但不调整优先级
rise 1
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
mcast_src_ip 192.168.187.202
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.187.100
}
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
}
nginx_check.sh :
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
killall keepalived
else
exit 0
fi
fi