keepalived的简单使用,自动failover
安装
1.keepalived下载:
http://keepalived.org/ 下载自己喜欢的版本
2../configure && make && maake install
3.安装以及配置开机启动:
cp ./keepalived /usr/sbin/
cp ./keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp ./keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp -r ./keepalived/etc/keepalived /etc/
虚拟机准备
master:192.168.1.52
backup:192.168.1.53
vip:192.168.1.59
配置keepalived
1.修改配置文件/etc/keepalived.conf
2.配置:
MASTER:
! Configuration File for keepalived
global_defs {
notification_email {
zhouxiao@example.com
itsection@example.com
}
notification_email_from itsection@example.com
smtp_server mail.example.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
# script "killall -0 nginx"
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
mcast_src_ip 192.168.1.52
virtual_router_id 51
priority 101
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.59
}
track_script {
chk_nginx
}
}
配置检查:
1.ip a
2.tcpdump vrrp
3.check_nginx.sh 简单的脚本随便写点什么
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
echo "nginx fail!" >> /tmp/1.txt
/etc/init.d/keepalived stop ##可以直接exit -1 或者 直接结束keepalived进程 (测试直接返回-1算了)
else
echo "nginx succ" >> /tmp/1.txt
fi
4.检查/var/log/messages
Jun 10 11:37:35 bogon Keepalived[6717]: Starting Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2
47 Jun 10 11:37:35 bogon Keepalived[6717]: Unable to resolve default script username 'keepalived_script' - ignoring
48 Jun 10 11:37:35 bogon Keepalived[6717]: Opening file '/etc/keepalived/keepalived.conf'.
49 Jun 10 11:37:35 bogon Keepalived[6718]: Starting Healthcheck child process, pid=6720
50 Jun 10 11:37:35 bogon Keepalived[6718]: Starting VRRP child process, pid=6722
51 Jun 10 11:37:35 bogon Keepalived_vrrp[6722]: Registering Kernel netlink reflector
52 Jun 10 11:37:35 bogon Keepalived_healthcheckers[6720]: Opening file '/etc/keepalived/keepalived.conf'.
53 Jun 10 11:37:35 bogon Keepalived_vrrp[6722]: Registering Kernel netlink command channel
54 Jun 10 11:37:35 bog