完整的的KeepAlived配置模板

参考:

http://my.oschina.net/9981/blog/473209

http://my.oschina.net/ahanflw/blog/286206

下面是KeepAlived的配置模板,以后直接用就行了。

! Configuration File for keepalived
vrrp_script chk_haproxy {    
     script "/etc/keepalived/check_haproxy.sh"    //这里是具体的执行的脚本,包括时间参数
     interval 2    
     weight   2 
}
 
global_defs {
   notification_email {
     [email protected]   }
   notification_email_from 
   smtp_server  smtp.qq.com
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state MASTER
    nopreempt         这个只要MASTER设置就可以了,SLAVE不用设置,已经亲自测试过。
    interface eth0
    virtual_router_id 51
    mcast_src_ip      这里填上与虚拟IP同一个网段的本机IP!!!
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
     
    track_script {    
     chk_haproxy   //这里写上要执行的脚本ID
    } 

    virtual_ipaddress {
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
}
 
#virtual_server 192.168.200.100 443 {
#delay_loop 6
#lb_algo rr
#lb_kind NAT
#nat_mask 255.255.255.0
#persistence_timeout 50
#protocol TCP
#real_server 192.168.201.100 443 {
# weight 1
# SSL_GET {
#url {
# path /
#digest ff20ad2481f97b1754ef3e12ecd3a9cc
# }
#url {
#path /mrtg/
#digest 9b3a0c85a887a256d6939da88aabd8cd
#}
#connect_timeout 3
#nb_get_retry 3
#delay_before_retry 3
#}
#}
#}
#virtual_server 10.10.10.2 1358 {
#delay_loop 6
#lb_algo rr 
#lb_kind NAT
#persistence_timeout 50
#protocol TCP
#sorry_server 192.168.200.200 1358
#
#real_server 192.168.200.2 1358 {
#weight 1
# HTTP_GET {
# url { 
#   path /testurl/test.jsp
#digest 640205b7b0fc66c1ea91c463fac6334d
#}
#url { 
# path /testurl2/test.jsp
# digest 640205b7b0fc66c1ea91c463fac6334d
# }
# url { 
# path /testurl3/test.jsp
#  digest 640205b7b0fc66c1ea91c463fac6334d
# }
# connect_timeout 3
# nb_get_retry 3
# delay_before_retry 3
#}
#}
#real_server 192.168.200.3 1358 {
# weight 1
#HTTP_GET {
#url { 
# path /testurl/test.jsp
#  digest 640205b7b0fc66c1ea91c463fac6334c
# }
# url { 
#  path /testurl2/test.jsp
# digest 640205b7b0fc66c1ea91c463fac6334c
#}
# connect_timeout 3
#  nb_get_retry 3
# delay_before_retry 3
#}
#}
#}
#virtual_server 10.10.10.3 1358 {
#delay_loop 3
# lb_algo rr 
#lb_kind NAT
#nat_mask 255.255.255.0
# persistence_timeout 50
#protocol TCP
#real_server 192.168.200.4 1358 {
# weight 1
# HTTP_GET {
#  url { 
#  path /testurl/test.jsp
#   digest 640205b7b0fc66c1ea91c463fac6334d
# }
# url { 
#   path /testurl2/test.jsp
#      digest 640205b7b0fc66c1ea91c463fac6334d
#     }
#   url { 
#    path /testurl3/test.jsp
#    digest 640205b7b0fc66c1ea91c463fac6334d
#  }
#  connect_timeout 3
#  nb_get_retry 3
# delay_before_retry 3
#  }
# }
#real_server 192.168.200.5 1358 {
# weight 1
#   HTTP_GET {
#       url { 
#        path /testurl/test.jsp
#       digest 640205b7b0fc66c1ea91c463fac6334d
#      }
#      url { 
#        path /testurl2/test.jsp
#      digest 640205b7b0fc66c1ea91c463fac6334d
#     }
#      url { 
#      path /testurl3/test.jsp
#      digest 640205b7b0fc66c1ea91c463fac6334d
#     }
#   connect_timeout 3
#   nb_get_retry 3
#    delay_before_retry 3
#  }
# }
#}

 

真正执行的脚本check_haproxy.sh定义为:需要修改的地方请自行修改。

#!/bin/bash
status=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l)
echo "Start Status:" $status
if [ $status = "0" ] ; then
        echo "haproxy stoped.starting haproxy ..."
         cd /root/haproxy-1.4.23/haproxy-1.4.23/haproxy-1.4.23
        ./haproxy -f ./examples/haproxy.cfg
        sleep 3
        status=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l)
#status="1"
        if [ $status = "0" ] ; then
                pkill keepalived
                echo "haproxy start failed. so keepalived stoped.";
        else
                echo "haproxy started.";
        fi
fi
echo "End Status:" $status

 

启动KeepAlived的命令:

./bin/keepalived -f /root/keepalived-1.2.8/keepalived/etc/keepalived/keepalived.conf -P -l  如果想前台启动则加上-n

 

 

问题:

1 如何手动删除虚拟IP?

启动两个KeepAlived前,务必清除虚拟IP

 ip addr del 这里填写虚拟IP dev eth0

2

你可能感兴趣的:(keepalived)