Keepalived安裝配置

1、安裝依賴包

yum -y install libnl libnl-devel
yum install -y libnfnetlink libnfnetlink-devel
rpm -ivhlibnfnetlink-1.0.0-1.el6.x86_64.rpm libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm

2、安裝Keepalived

cd /app
tar -zxfkeepalived-1.3.5.tar.gz
cd/app/keepalived-1.3.5
./configure
 
make && makeinstall

3、安裝後配置開啓自啓動

cp /usr/local/etc/sysconfig/keepalived/etc/sysconfig/keepalived
cp -r /usr/local/etc/keepalived/ /etc/
cp /app/keepalived-1.3.5/keepalived/etc/init.d/keepalived/etc/init.d/keepalived
chkconfig --add keepalived
chkconfig keepalived on

4、配置Keepalived

/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]   #發生郵件目標地址
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]   #發生郵件源地址
   smtp_server 192.168.200.1                               #smtp服務器
   smtp_connect_timeout 30
   router_id LVS_DEVEL                                     #機器標識,通常可設爲hostname。故障發生時,郵件通知會用到
## --------------------------------------------------   
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_http_port {
   script "/usr/local/src/check_nginx_pid.sh"          #監控服務腳步
   interval 2                                          #檢測時間間隔(執行腳步間隔),每2s檢測一次
   weight 2                                            #檢測失敗(腳本返回非0)則優先級 2,增減優先級
   fall 2                                              #檢測連續 2 次失敗纔算確定是真失敗。會用weight減少優先級(1-255之間)
   rise 1                                              #檢測 1 次成功就算成功。但不修改優先級
}

vrrp_instance VI_1 {
    state MASTER             #主備的區別點,標識  MASTER  BACKUP
    interface eth0           #對應的網卡
    # mcast_src_ip 172.29.88.224 #發送多播數據包時的源IP地址,默認綁定網卡的IP
    virtual_router_id 51     #主、備機的virtual_router_id必須相同
    priority 100             #優先級,誰做主(值越大,優先級越高)
    advert_int 2             #檢查間隔,默認爲1秒。這就是VRRP的定時器,MASTER每隔這樣一個時間間隔,就會發送一個advertisement報文以通知組內其他路由器自己工作正常
    authentication {         #定義認證方式和密碼,主從必須一樣
        auth_type PASS
        auth_pass 1111
    }
    track_interface {        #監控的網卡。如果只監控服務,這裏可以不填
      eth1
    }
    track_script {           #以腳本爲監控chk_http_port是前面填寫的
        chk_http_port
    }
    virtual_ipaddress {      #虛擬IP地址,可以設置多個IP地址
        10.252.3.165/24 dev eth0 label eth0:1
        # 192.168.200.16
        # 192.168.200.17
        # 192.168.200.18
    }
}

/usr/local/src/check_nginx_pid.sh

## -----------------------------
# 該腳本檢測ngnix的運行狀態,並在nginx進程不存在時嘗試重新啓動ngnix,如果啓動失敗則停止keepalived,準備讓其它機器接管。
## -----------------------------
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    /usr/local/bin/nginx
    sleep 2
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
        /etc/init.d/keepalived stop
    fi
fi

5、管理Keepalived

停止:

service keepalived stop

啓動:

service keepalived start

重啓:

service keepalived restart

重新加載配置文件:

service keepalived reload


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