1、 在什么服务器上进行监控?
在备服务器上进行监控,可以使用zabbix监控。
2、监控什么信息?
备上面出现vip情况:
1)脑裂情况出现
2)正常主备切换也会出现
3、编写监控脑裂脚本
[root@lb02 scripts]# vim check_keepalived.sh
#!/bin/bashwhile true
do
if [ `ip a show eth0 |grep 10.0.0.3|wc -l` -ne 0 ]
then
echo "keepalived is error!"
else
echo "keepalived is OK !"
fi
done
编写完脚本后要给脚本赋予执行权限
4、排错
1)利用负载均衡服务器,在服务器上curl所有的节点信息(web服务器配置有问题)
2)curl 负载均衡服务器地址,可以实现负载均衡
3)windows上绑定虚拟IP,浏览器上进行测试
keepalived日志文件位置 /var/log/messages
5、更改nginx反向代理配置 只监听vip地址
修改nginx监听参数listen 10.0.0.3:80;
修改内核参数,实现监听本地不存在的ip
echo'net.ipv4.ip_nonlocal_bind = 1'>>/etc/sysctl.conf
sysctl -p
[root@lb02 conf]# cat /proc/sys/net/ipv4/ip_nonlocal_bind
6、让keepalived监控nginx
ps -ef |grep nginx |grep -v grep |wc -l
编写执行脚本
#!/bin/bashwhile true
doif[ `ps -ef |grep nginx |grep -v grep |wc -l` -lt 2 ]
then
/etc/init.d/keepalived stop
exit
fi
done
7、使用keepalived的监控脚本
说明 执行的脚本名称尽量不要和服务名称相同或相似
[root@lb01 scripts]# cat /etc/keepalived/keepalived.conf
! Configuration Filefor keepalived
global_defs {
router_id lb01
}
vrrp_script check { #定义脚本
script"“/server/scripts/check_web.sh"--- 表示将一个脚本信息赋值给变量check_web
interval 2 --- 执行监控脚本的间隔时间
weight 2 ---利用权重值和优先级进行运算,从而降低主服务优先级使之变为备服务器(建议先忽略)
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51 priority 150 advert_int 1 authentication {
auth_type PASS
auth_pass 1111 }
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1 }
track_script { #调用脚本 check
}
}
网友评论