页面树结构
转至元数据结尾
转至元数据起始



keepalived 说明

 VIP : 172.16.99.34

 IP : 172.16.99.32

 IP : 172.16.99.33

 http:// 172.16.99.32:80

 http:// 172.16.99.33:80

 http:// 172.16.99.34:80

安装keepalived

# cd /app/soft # tar -zxvf keepalived-1.2.18.tar.gz  
# cd keepalived-1.2.18 
# ./configure --prefix=/app/soft/keepalived 
# make && make install

默认目录是/app/soft

# mkdir /etc/keepalived 
# cp /app/soft/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 

复制到默认路径:

# cp /app/soft/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# cp /app/soft/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /app/soft/keepalived/sbin/keepalived /sbin/  
# cp /app/soft/keepalived/sbin/keepalived  /usr/sbin/
# chkconfig keepalived on

配置:172.16.99.32

# vi /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
router_id master #节点ID
}

vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" #检查nginx状态的脚步路径
interval 2 #检测时间间隔
weight -20 #如果条件成立权重-20
}

vrrp_instance VI_1 {
state MASTER
interface eno16777736 # ifconfig 查看IP对应的网卡
virtual_router_id 51
mcast_src_ip 172.16.99.32 #localIP
priority 200 #权重
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
chk_nginx #执行nginx监控的服务
}

virtual_ipaddress {
172.16.99.34#vip #虚拟IP
}
}

配置监控 172.16.99.32

# vi /etc/keepalived/nginx_check.sh 
#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
killall keepalived
fi

配置:172.16.99.33

# vi /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
router_id slave1
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}

vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 51
mcast_src_ip 172.16.1.33
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
chk_nginx
}

virtual_ipaddress {
172.16.99.34
}
}

配置监控 172.16.99.33

# vi /etc/keepalived/nginx_check.sh 
#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
killall keepalived
fi

授权
# chmod +x /etc/keepalived/nginx_check.sh 

启动keepalived

# service keepalived start 
Starting keepalived (via systemctl):                       [  确定  ]

测试

1、同时启动两台服务器,测试keepalive master主服务器是否拥有VIP虚拟IP;
     预期结果:
    a.主master服务器拥有VIP
    b.能够通过VIP访问相应的nginx及下面相应的文件;

2、关闭keepalive master 主服务器的nginx ,查询是否会通过脚本关闭keepalive并释放VIP;
     预期结果:
     a.nginx关闭,keepalive根据脚本自动关闭,通过相对于端口也无法访问;

3、启动 keepalive master 主服务器,查询VIP的拥有情况;
     预期结果:
     a.master 主服务器抢占VIP,因为权重的配置比BACKUP的大;

4、同时关闭两台服务器的nginx,测试访问情况;
     预期结果:
     a.相应的端口关闭,keepalive主动关闭,相对应的访问项目不了。

  • 无标签