MQ RabbitMQ 高可用集群(四):Keepalived安裝和配置

1 簡介

Keepalived,它是一個(gè)高性能的服務(wù)器高可用或熱備解決方案,Keepalived主要來防止服務(wù)器單點(diǎn)故障的發(fā)生問題,可以通過其與Nginx、Haproxy等反向代理的負(fù)載均衡服務(wù)器配合實(shí)現(xiàn)web服務(wù)端的高可用。Keepalived以VRRP協(xié)議為實(shí)現(xiàn)基礎(chǔ),用VRRP協(xié)議來實(shí)現(xiàn)高可用性(HA).VRRP(Virtual Router Redundancy Protocol)協(xié)議是用于實(shí)現(xiàn)路由器冗余的協(xié)議,VRRP協(xié)議將兩臺(tái)或多臺(tái)路由器設(shè)備虛擬成一個(gè)設(shè)備,對外提供虛擬路由器IP(一個(gè)或多個(gè))。

2 安裝配置

2.1 安裝依賴

[root@localhost ~]# yum install -y openssl openssl-devel

2.2 編譯安裝

[root@localhost ~]# wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
[root@localhost ~]# tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
[root@localhost ~]# cd ..
[root@localhost ~]# cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
[root@localhost ~]# make && make install

2.3 配置

2.3.1 自定義配置

將keepalived安裝成Linux系統(tǒng)服務(wù),因?yàn)闆]有使用keepalived的默認(rèn)安裝路徑(默認(rèn)路徑:/usr/local),安裝完成之后,需要做一些修改工作

[root@localhost ~]# mkdir /etc/keepalived
[root@localhost ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

復(fù)制keepalived腳本文件

[root@localhost ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@localhost ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost ~]# ln -s /usr/local/sbin/keepalived /usr/sbin/

如果存在則進(jìn)行刪除: rm /sbin/keepalived

[root@localhost ~]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

2.3.2 設(shè)置開機(jī)啟動(dòng)

可以設(shè)置開機(jī)啟動(dòng):chkconfig keepalived on,到此我們安裝完畢

[root@localhost ~]# chkconfig keepalived on

2.3.3 配置信息

修改keepalived.conf配置文件:

[root@localhost ~]# vi /etc/keepalived/keepalived.conf

79節(jié)點(diǎn)(Master)配置如下:

! Configuration File for keepalived

global_defs {
   router_id bhz74  ##標(biāo)識節(jié)點(diǎn)的字符串,通常為hostname

}

vrrp_script chk_haproxy {
    script "/etc/keepalived/haproxy_check.sh"  ##執(zhí)行腳本位置
    interval 2  ##檢測時(shí)間間隔
    weight -20  ##如果條件成立則權(quán)重減20
}

vrrp_instance VI_1 {
    state MASTER  ## 主節(jié)點(diǎn)為MASTER,備份節(jié)點(diǎn)為BACKUP
    interface eno16777736 ## 綁定虛擬IP的網(wǎng)絡(luò)接口(網(wǎng)卡),與本機(jī)IP地址所在的網(wǎng)絡(luò)接口相同(我這里是eth0)
    virtual_router_id 74  ## 虛擬路由ID號(主備節(jié)點(diǎn)一定要相同)
    mcast_src_ip 192.168.11.74 ## 本機(jī)ip地址
    priority 100  ##優(yōu)先級配置(0-254的值)
    nopreempt
    advert_int 1  ## 組播信息發(fā)送間隔,倆個(gè)節(jié)點(diǎn)必須配置一致,默認(rèn)1s
authentication {  ## 認(rèn)證匹配
        auth_type PASS
        auth_pass bhz
    }

    track_script {
        chk_haproxy
    }

    virtual_ipaddress {
        192.168.11.70  ## 虛擬ip,可以指定多個(gè)
    }
}

80節(jié)點(diǎn)(backup)配置如下:

! Configuration File for keepalived

global_defs {
   router_id bhz75  ##標(biāo)識節(jié)點(diǎn)的字符串,通常為hostname

}

vrrp_script chk_haproxy {
    script "/etc/keepalived/haproxy_check.sh"  ##執(zhí)行腳本位置
    interval 2  ##檢測時(shí)間間隔
    weight -20  ##如果條件成立則權(quán)重減20
}

vrrp_instance VI_1 {
    state BACKUP  ## 主節(jié)點(diǎn)為MASTER,備份節(jié)點(diǎn)為BACKUP
    interface eno16777736 ## 綁定虛擬IP的網(wǎng)絡(luò)接口(網(wǎng)卡),與本機(jī)IP地址所在的網(wǎng)絡(luò)接口相同(我這里是eno16777736)
    virtual_router_id 74  ## 虛擬路由ID號(主備節(jié)點(diǎn)一定要相同)
    mcast_src_ip 192.168.11.75  ## 本機(jī)ip地址
    priority 90  ##優(yōu)先級配置(0-254的值)
    nopreempt
    advert_int 1  ## 組播信息發(fā)送間隔,倆個(gè)節(jié)點(diǎn)必須配置一致,默認(rèn)1s
authentication {  ## 認(rèn)證匹配
        auth_type PASS
        auth_pass bhz
    }

    track_script {
        chk_haproxy
    }

    virtual_ipaddress {
        192.168.1.70  ## 虛擬ip,可以指定多個(gè)
    }
}

3 自定義腳本

3.1 編寫腳本

添加文件位置為/etc/keepalived/haproxy_check.sh(74、75兩個(gè)節(jié)點(diǎn)文件內(nèi)容一致即可)

#!/bin/bash
COUNT=`ps -C haproxy --no-header |wc -l`
if [ $COUNT -eq 0 ];then
    /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
    sleep 2
    if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

3.2 授權(quán)

haproxy_check.sh腳本授權(quán),賦予可執(zhí)行權(quán)限.

[root@localhost ~]# chmod +x /etc/keepalived/haproxy_check.sh

4 啟動(dòng)與測試

4.1 啟動(dòng) keepalived

啟動(dòng)成功兩個(gè)haproxy節(jié)點(diǎn)以后,我們可以啟動(dòng)keepalived服務(wù)程序

如果74、75的haproxy沒有啟動(dòng)則執(zhí)行啟動(dòng)腳本

[root@localhost ~]# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

啟動(dòng)兩臺(tái)機(jī)器keepalived

[root@localhost ~]# service keepalived start | stop | status | restart

查看 haproxy、keepalived 進(jìn)程狀態(tài)

[root@localhost ~]# ps -ef | grep haproxy
[root@localhost ~]# ps -ef | grep keepalived

4.2 高可用測試

vip在27節(jié)點(diǎn)上

image-20210413093729891.png

27節(jié)點(diǎn)宕機(jī)測試:停掉27的keepalived服務(wù)即可

image-20210413093755726.png

查看28節(jié)點(diǎn)狀態(tài):我們發(fā)現(xiàn)VIP漂移到了28節(jié)點(diǎn)上,那么28節(jié)點(diǎn)的haproxy可以繼續(xù)對外提供服務(wù)

image-20210413093826482.png

5 相關(guān)信息

上一篇:MQ RabbitMQ 高可用集群(三):Ha-Proxy安裝和配置
下一篇:MQ RabbitMQ 高可用集群(五):集群配置與測試運(yùn)行

博文不易,辛苦各位猿友點(diǎn)個(gè)關(guān)注和贊,感謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容