linux 環境下安裝keepalived 並且進行簡單的主備配置


我這里使用的是suse系統安裝keepalived

1.keepalived 安裝包

鏈接:https://pan.baidu.com/s/15Hwqdmv_AKlNYjy-omh4tg
提取碼:714h

2.解壓、安裝keepalived

tar -xvf keepalived-2.2.0.tar.gz 

cd keepalived-2.2.0/

./configure 

make & make install

mkdir /etc/keepalived

cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

whereis keepalived

 cp /root/project-kits/keepalived-2.2.0/keepalived/etc/init.d/keepalived /etc/init.d/

cp /root/project-kits/keepalived-2.2.0/keepalived/etc/sysconfig/keepalived /etc/sys

cp /root/project-kits/keepalived-2.2.0/keepalived/etc/sysconfig/keepalived /etc/sysconfig

cp /usr/local/sbin/keepalived /usr/sbin/

chkconfig --add keepalived

chkconfig keepalived on

 cd /etc/keepalived/

cp ./keepalived.conf ./keepalived-blk.conf 

service keepalived start

 

修改master機器上 keepalived的配置文件 keepalived.conf

! Configuration File for keepalived
 
global_defs {
   #故障時,主備切換通知到的email
   #notification_email {
     #acassen@firewall.loc
     #failover@firewall.loc
     #sysadmin@firewall.loc
   #}
 
   #email配置
   #notification_email_from Alexandre.Cassen@firewall.loc
   #smtp_server 192.168.200.1
   #smtp_connect_timeout 30
 
   #路由ID,當前安裝keepalived的節點主機標識符,需保證全局唯一
   router_id keep_101
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}
 
#基於vrrp協議的實例,可理解為一個服務器節點
vrrp_instance VI_1 {
    #表示狀態為主節點MASTER還是備用機BACKUP
    state MASTER
    #當前示例綁定的網卡,根據ip addr查出來的網卡
    interface eth0
    #虛擬路由id,保證主備節點該值一致
    virtual_router_id 51
    #優先級/權重,master權重一般高於backup,在master掛掉后誰的優先級高,誰就能成為master
    priority 100
    #主備之間同步檢查的時間間隔(心跳),默認為1s
    advert_int 1
    #認證授權的密碼,防止非法節點進入,主備需要一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虛擬IP,可以有多個,根據自己實際情況修改
    virtual_ipaddress {
        192.168.51.200
    }
}

 

修改backup機器上 keepalived的配置文件 keepalived.conf

! Configuration File for keepalived
 
global_defs {
   #故障時,主備切換通知到的email
   #notification_email {
     #acassen@firewall.loc
     #failover@firewall.loc
     #sysadmin@firewall.loc
   #}
 
   #email配置
   #notification_email_from Alexandre.Cassen@firewall.loc
   #smtp_server 192.168.200.1
   #smtp_connect_timeout 30
 
   #路由ID,當前安裝keepalived的節點主機標識符,需保證全局唯一
   router_id keep_103
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}
 
#基於vrrp協議的實例,可理解為一個服務器節點
vrrp_instance VI_1 {
    #表示狀態為主節點MASTER還是備用機BACKUP
    state BACKUP
    #當前示例綁定的網卡,根據ip addr查出來的網卡
    interface eth0
    #虛擬路由id,保證主備節點該值一致
    virtual_router_id 51
    #優先級/權重,master權重一般高於backup,在master掛掉后誰的優先級高,誰就能成為master
    priority 90
    #主備之間同步檢查的時間間隔(心跳),默認為1s
    advert_int 1
    #認證授權的密碼,防止非法節點進入,主備需要一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虛擬IP,可以有多個,根據自己實際情況修改
    virtual_ipaddress {
        192.168.51.200
    }
}

 

3. ip addr 檢查虛IP配置情況

 

 

4.測試 當master機器關閉 keepalived(service keepalived stop)后 備機器拿到虛Ip 192.168.51.200 

 

 

結束 最后用rabbitMQ測試了下效果 

直接使用虛Ip鏈接MQ 

當master存在時 使用的是master服務器的MQ

當master關閉時 使用的是backup機器的MQ

當master恢復時 使用的是master的MQ!

 

補充:配置檢測nginx腳本

keepalive配置:

! Configuration File for keepalived

global_defs {
    #標識信息
    router_id LVS_keep_1
}
vrrp_script check_nginx{
    #檢查nginx是否在線腳本
    script "/usr/zmoon/server/check_nginx.sh"
    interval 10
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    #MASTER 和 BACKUP 必須相同
    virtual_router_id 51
    #優先級MASTER大於BACKUP即可
    priority 200
    #心跳間隔時間
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        #虛擬ip(對外提供)
        192.168.51.130
    }
    track_script{
        check_nginx
    }
}

 

nginx腳本: check_nginx.sh

#!/bin/sh

nginxId=$(ps -C nginx --no-header|wc -l)
#1.判斷nginx是否存活,如果不存活嘗試啟動nginx
if [ $nginxId -eq 0 ];then
    #啟動nginx
    /home/zmoon/nginx-1.5.12/sbin/nginx
    sleep 3
    #2.等待3秒再次判斷nginx狀態
    nginxId=$(ps -C nginx --no-header|wc -l)
    if [ $nginxId -eq 0 ];then
        #關閉keepalived
        service keepalived stop
    fi
fi

 

默認日志存放在系統日志:/var/log/messages下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM