主:192.168.100.10
备:192.168.100.20
两台主机keepalived安装
tar xf keepalived-2.0.11.tar.gz
cd keepalived-2.0.11
./configure --prefix=/usr/local/keepalived
make && make install
mkdir /etc/keepalived
#复制系统文件,并创建命令软链
cp keepalived/etc/init.d/keepalived /etc/init.d/
cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived
ln -s /usr/local/keepalived/sbin/keepalived /usr /local/bin/
ln -s /usr/local/keepalived/bin/genhash /usr /local/bin/
配置
#主master配置
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id lb1 #标识本节点的名称
vrrp_skip_check_adv_addr
#vrrp_strict#不能访问vip需注释掉这里
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chek_nginx {
script "/etc/keepalived/chek_nginx.sh" #检测 nginx 状态的脚本路径
interval 2 # 检测时间间隔
weight -20
}
vrrp_instance VI_1 {
state MASTER #状态
interface ens33 #网卡名称
virtual_router_id 51 #与备主机一致
priority 100 #优先级,正比
advert_int 1
authentication {
auth_type PASS
auth_pass 123456 #根据情况
}
track_script {
chek_nginx #监控脚本
}
virtual_ipaddress {
192.168.100.100 #VIP
}
}
#备bakkup配置
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id lb2 #标识本节点的名称
vrrp_skip_check_adv_addr
#vrrp_strict #不能访问vip需注释掉这里
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chek_nginx {
script "/etc/keepalived/chek_nginx.sh" #检测 nginx 状态的脚本路径
interval 2 # 检测时间间隔
weight -20
}
vrrp_instance VI_1 {
state BACKUP #状态
interface ens33 #网卡名称
virtual_router_id 51 #与备主机一致
priority 100 #优先级,正比
advert_int 1
authentication {
auth_type PASS
auth_pass 123456 #根据情况
}
track_script {
chek_nginx #监控脚本
}
virtual_ipaddress {
192.168.100.100 #VIP
}
}
检测脚本内容
cat /etc/keepalived/chek_nginx.sh
#!/bin/bash
Ng=`ps -C nginx --no-header | wc -l`
if [ $Ng -eq 0 ];then
/usr/bin/nginx
sleep 2
Ng=`ps -C nginx --no-header | wc -l`
if [ $Ng -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
启动查看
systemctl start keepalived
systemctl enable keepalived
ip addr | grep 192.168.100.100
网友评论