安裝配置keepalived

安裝keepalived

下載keepalived地址:http://www.keepalived.org/download.html

解壓安裝:

tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/

yum install -y openssl openssl-devel(需要安裝一個軟件包)

cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived

make && make install

keepalived安裝成Linux系統服務

將keepalived安裝成Linux系統服務,因爲沒有使用keepalived的默認安裝路徑(默認路徑:/usr/local),安裝完成之後,需要做一些修改工作:

首先創建文件夾,將keepalived配置文件進行復制:

mkdir /etc/keepalived

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

然後複製keepalived腳本文件:

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

ln -s /usr/local/sbin/keepalived /usr/sbin/

ln -s /usr/local/keepalived/sbin/keepalived /sbin/

可以設置開機啓動:chkconfig keepalived on,到此我們安裝完畢!

keepalived 常用命令

service keepalived start

service keepalived stop

配置nginx主備自動重啓

第三步:對配置文件進行修改:vim /etc/keepalived/keepalived.conf

keepalived.conf配置文件說明:

(一)Master     

 

! Configuration File for keepalived

 

global_defs {

   router_id bhz005 ##標識節點的字符串,通常爲hostname

}

## keepalived 會定時執行腳本並且對腳本的執行結果進行分析,動態調整vrrp_instance的優先級。這裏的權重weight 是與下面的優先級priority有關,如果執行了一次檢查腳本成功,則權重會-20,也就是由100 - 20 變成了80Master 的優先級爲80 就低於了Backup的優先級90,那麼會進行自動的主備切換。

如果腳本執行結果爲0並且weight配置的值大於0,則優先級會相應增加。

如果腳本執行結果不爲0 並且weight配置的值小於0,則優先級會相應減少。

vrrp_script chk_nginx {

    script "/etc/keepalived/nginx_check.sh" ##執行腳本位置

    interval 2 ##檢測時間間隔

    weight -20 ## 如果條件成立則權重減20(-20)

}

## 定義虛擬路由 VI_1爲自定義標識。

vrrp_instance VI_1 {

state MASTER   ## 主節點爲MASTER,備份節點爲BACKUP

    ## 綁定虛擬IP的網絡接口(網卡),與本機IP地址所在的網絡接口相同(我這裏是eth6)

interface eth6  

virtual_router_id 172  ## 虛擬路由ID號

    mcast_src_ip 192.168.1.172  ## 本機ip地址

    priority 100  ##優先級配置(0-254的值)

    Nopreempt  ##

    advert_int 1 ## 組播信息發送間隔,倆個節點必須配置一致,默認1s

    authentication {  

        auth_type PASS

        auth_pass bhz ## 真實生產環境下對密碼進行匹配

    }

 

    track_script {

        chk_nginx

    }

 

    virtual_ipaddress {

        192.168.1.170 ## 虛擬ip(vip),可以指定多個

    }

}

 

(二)Backup

! Configuration File for keepalived

 

global_defs {

   router_id bhz006

}

 

vrrp_script chk_nginx {

    script "/etc/keepalived/nginx_check.sh"

    interval 2

    weight -20

}

 

vrrp_instance VI_1 {

    state BACKUP

    interface eth7

    virtual_router_id 173

    mcast_src_ip 192.168.1.173

    priority 90 ##優先級配置

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass bhz

    }

 

    track_script {

        chk_nginx

    }

 

    virtual_ipaddress {

        192.168.1.170

    }

}

 

(三)nginx_check.sh 腳本:

#!/bin/bash

A=`ps -C nginx –no-header |wc -l`

if [ $A -eq 0 ];then

    /usr/local/nginx/sbin/nginx

    sleep 2

    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

        killall keepalived

    fi

fi

我們需要把master的keepalived配置文件 copy到master機器(172)的 /etc/keepalived/ 文件夾下,在把backup的keepalived配置文件copy到backup機器(173)的 /etc/keepalived/ 文件夾下,最後把nginx_check.sh腳本分別copy到兩臺機器的 /etc/keepalived/文件夾下。

nginx_check.sh腳本授權。賦予可執行權限:chmod +x /etc/keepalived/nginx_check.sh

啓動2臺機器的nginx之後。我們啓動兩臺機器的keepalived

  /usr/local/nginx/sbin/nginx

  service keepalived start

  ps -ef | grep nginx

  ps -ef | grep keepalived

  可以進行測試,首先看一下倆臺機器的ip a 命令下 都會出現一個虛擬ip,我們可以停掉  一個機器的keepalived,然後測試,命令:service keepalived stop。結果發現當前停掉的機器已經不可用,keepalived會自動切換到另一臺機器上。

我們可以測試在nginx出現問題的情況下,實現切換,這個時候我們只需要把nginx的配置文件進行修改,讓其變得不可用,然後強殺掉nginx進程即可,發現也會實現自動切換服務器節點。

自動重啓不了解決辦法

查看腳本是否有運行的權限

如果你是root登陸的話(不是的話,切換到root用戶,對*.sh賦可執行的權限) 
chmod 777 *.sh          賦予權限

 or

chmod +x  *.sh

然後運行就OK了,即有權限對文件進行刪除等操作。

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章