keepalive配置

安装

yum install -y keepalived

 

环境:

10.3.196.31 ap01  
10.3.196.32 ap02  
10.3.196.33 vip  

 

ap01配置:

! 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 10.3.196.31
   smtp_connect_timeout 30
   router_id zjjg01
script_user root
enable_script_security

}

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


vrrp_instance VI_1 {
    state MASTER
    interface bond4
    virtual_router_id 33
    mcast_src_ip 10.3.196.31
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }

## 将track_script块加入instance 配置块
    track_script {
        chk_nginx    ## 执行Nginx监控的服务
}

    virtual_ipaddress {
        10.3.196.33
    }
}

 

ap02配置:

  

! 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 10.3.196.32
   smtp_connect_timeout 30
   router_id zjjg02
   script_user root
enable_script_security
} vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" ## 检测nginx状态的脚本路径 interval 2 ## 检测时间间隔 weight -20 ## 如果条件成立,权重-20 } vrrp_instance VI_1 { state SLAVE interface bond4 virtual_router_id 33 mcast_src_ip 10.3.196.32 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1234 } ## 将track_script块加入instance 配置块 track_script { chk_nginx ## 执行Nginx监控的服务 } virtual_ipaddress { 10.3.196.33 } }

 

 

nginx_check.sh  

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

 第二个写法

#!/bin/bash
#authour:liuhailong
nodeip=10.3.216.2
nodeaddress="http://${nodeip}"
http_code=`curl -s -o /dev/null -w "%{http_code}" ${nodeaddress}`

if [ $http_code == 000 ]
then 
/usr/bin/killall  keepalived
else
  exit 0 
fi 

  

启动

systemctl start keepalived
systemctl enable keepalived

主机

global_defs {
   router_id nginx_master
   script_user root
   enable_script_security
}
vrrp_script chk_nginx {
  script "/etc/keepalived/check_nginx.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface em1
    virtual_router_id 199
    priority 102
    advert_int 1
    authentication {
       auth_type PASS
       auth_pass 111111
    }
  track_script {
    chk_nginx
    }
  virtual_ipaddress {
     10.3.226.199/32
     }
   }

 

 

备机

! Configuration File for keepalived
global_defs {
   router_id nginx_backup
   script_user root
   enable_script_security
}
vrrp_script chk_nginx {
  script "/etc/keepalived/check_nginx.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface em1
    virtual_router_id 199
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 111111
    }
  track_script {
   chk_nginx
     }
  virtual_ipaddress {
      10.3.226.199/32
    }
}

 

posted @ 2021-11-16 17:30  大川哥  阅读(402)  评论(0编辑  收藏  举报