• keepalived 实现双机热备


    yum -y install keepalived # 两节点都需部署
    
    # 172.16.25.109
    # vi /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
             root@localhost
       }
       notification_email_from admin@lnmmp.com
       smtp_connect_timeout 3
       smtp_server 127.0.0.1
       router_id LVS_DEVEL
    }
    vrrp_script chk_maintaince_down {
       script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
       interval 1
       weight 2
    }
    vrrp_script chk_haproxy {
        script "/etc/keepalived/chk_haproxy.sh"
        interval 1
        weight 2
    }
    vrrp_instance VI_1 {
        interface eth0
        state MASTER
        priority 100
        virtual_router_id 125
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 1e3459f77aba4ded
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.10/16 dev eth0 label eth0:0
        }
        track_script {
            chk_haproxy
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.10"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.10"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.10"
    }
    vrrp_instance VI_2 {
        interface eth0
        state BACKUP
        priority 99
        virtual_router_id 126
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 7615c4b7f518cede
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.11/16 dev eth0 label eth0:1
        }
        track_script {
            chk_haproxy
    chk_maintaince_down
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.11"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.11"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.11"
    }
    
    # 172.16.25.110
    # vi /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
             root@localhost
       }
       notification_email_from admin@lnmmp.com
       smtp_connect_timeout 3
       smtp_server 127.0.0.1
       router_id LVS_DEVEL
    }
    vrrp_script chk_maintaince_down {
       script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
       interval 1
       weight 2
    }
    vrrp_script chk_haproxy {
        script "/etc/keepalived/chk_haproxy.sh"
        interval 1
        weight 2
    }
    vrrp_instance VI_1 {
        interface eth0
        state BACKUP
        priority 99
        virtual_router_id 125
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 1e3459f77aba4ded
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.10/16 dev eth0 label eth0:0
        }
        track_script {
            chk_haproxy
    chk_maintaince_down
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.10"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.10"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.10"
    }
    vrrp_instance VI_2 {
        interface eth0
        state MASTER
        priority 100
        virtual_router_id 126
        garp_master_delay 1
        authentication {
            auth_type PASS
            auth_pass 7615c4b7f518cede
        }
        track_interface {
           eth0
        }
        virtual_ipaddress {
            172.16.25.11/16 dev eth0 label eth0:1
        }
        track_script {
            chk_haproxy
        }
        notify_master "/etc/keepalived/notify.sh master 172.16.25.11"
        notify_backup "/etc/keepalived/notify.sh backup 172.16.25.11"
        notify_fault "/etc/keepalived/notify.sh fault 172.16.25.11"
    }
    
    # vi /etc/keepalived/notify.sh
    #!/bin/bash
    # Author: Jason.Yu <admin@lnmmp.com>
    # description: An example of notify script
    #
    contact='root@localhost'
    notify() {
        mailsubject="`hostname` to be $1: $2 floating"
        mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` changed to be $1"
        echo $mailbody | mail -s "$mailsubject" $contact
    }
    case "$1" in
        master)
            notify master $2
            /etc/rc.d/init.d/haproxy start
            exit 0
        ;;
        backup)
            notify backup $2
            /etc/rc.d/init.d/haproxy stop
            exit 0
        ;;
        fault)
            notify fault $2
            /etc/rc.d/init.d/haproxy stop
            exit 0
        ;;
        *)
            echo 'Usage: `basename $0` {master|backup|fault}'
            exit 1
        ;;
    esac
    
    # 刚才两个节点 均要有 的监测脚本文件 , 防止 haproxy 停止而 keepalived 不切换的情况
    # vim /etc/keepalived/chk_haproxy.sh
    #
    #
    #!/bin/bash
    #
    if ! `pidof haproxy &> /dev/null`; then
        /etc/rc.d/init.d/haproxy  start
    fi
    sleep 2
    if ! `pidof haproxy &> /dev/null`; then
        /etc/rc.d/init.d/keepalived stop
    fi
    

    启动服务

    service keepalived start # 在两个节点上都需要启动
    
  • 相关阅读:
    拥有最多糖果的孩子
    求1+2+…+n
    网络-中间代理
    Header中的Referer属性表示
    ios13.4post请求出现网错错误 network err
    10.8&10.10
    9.23&9.27
    9.16&9.19
    校内模拟赛划水报告(9.9,9.11)
    男人八题 划水题解
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14572720.html
Copyright © 2020-2023  润新知