麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Ubuntu > 正文

Ubuntu 14.04keepalived環境搭建

2024-06-28 16:02:44
字體:
來源:轉載
供稿:網友

聲明:本博文用于學習總結及工作心得

MASTER192.168.1.154

BACKUP192.168.1.142

Vip  192.168.1.77

一:準備工作

1.    修改hosts (MASTER & BACKUP)

Vim  /etc/hosts

添加:

192.168.1.154 MASTER

192.168.1.142 BACKUP

2.    修改homename

永久性修改 vim /etc/hosts

       MASTER主機修改為 MASTER

       BACKUP主機修改為 BACKUP

3.    安裝SSH服務 客服端及服務端都需要安裝

4.    修改SSH配置文件

1): Vim /etc/ssh/ssh_config

StrictHostKeyChecking ask 改成StrictHostKeyCheckingno

2): vim /etc/ssh/sshd_config

PermitRootLogin no 改為PermitRootLogin yes

這里兩臺主機都需要修改后面會講到具體作用(ssh root@BACKUP -p 58081 service tomcat7 stop)

二:解決依賴

1.    apt-getupdate

2.    apt-getupgrade 如果服務器以更新可以不做

3.    apt-getinstall libpop-dev

我這里是沒找到這個安裝包安裝的是libpoppler-dev

4.    apt-getinstall daemon

三:

1.安裝keepalived

# tar zxvf keepalived-1.2.18.tar.gz

# cd keepalived-1.2.18

# ./configure --PRefix=/usr/local/keepalived

# make

# make install

 

2. 將keepalived作為系統服務啟動:

# mkdir /etc/sysconfig

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

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

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

 

3. 把keepalived 的配置文件放到/etc/keepalived 下,keepalived默認會讀取這個文件。

# mkdir /etc/keepalived

 

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

 

4.編輯配置文件,修改以下的內容即可:

# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

   notification_email {

     sai@localhost # 報警郵件接收人的地址

   }

   notification_email_from root@localhost # 發送報警郵件發件人地址

   smtp_server 127.0.0.1# 發送郵件的服務器地址

   smtp_connect_timeout 30# 郵件超時時間(可以根據自己的需求進行設定)

   router_id MASTERL # 一個實例的標識地址(可以有多個實例但不能相同) BACKUP主機修改為BACKUP

}

vrrp_script monitor_tomcat {

  script “/root/scripts/monitor_tomcat.sh”#根據自己的實際路徑放置健康檢查腳本文件,這里寫的是tomcat的檢測腳本

  interval 1# 腳本執行間隔

Weight -5#腳本結果導致的優先級變更:5表示優先級加5;-5表示優先級減5

}

vrrp_instance VI_1 {# 虛擬路由器自己的名字

    state MASTER# 設置服務器模式,當前為主節點,master端

    interface eth0# 實例網卡,也就是提供服務的網卡,來發送vrrp通告

    virtual_router_id 51# 設置vrid,這里非常重要,相同的vrid為一個組,他決定,它將決定多播的MAC地址.(建議不要使用默認地址,以免發生沖突)

    priority 100#  設置本節點的優先級,優先級高的為master BACKUP主機設置為95

    nopreempt #搶占方式實現當優先級高的調度節點故障恢復后,不再搶占為主調度服務器,從而也就避免了因調度節點的故障及故障恢復后來回切換的問題。

advert_int 1# 檢查間隔,默認為1秒

    authentication {

        auth_type PASS# 認證方式,可以是pass或者AH兩種認證方式

        auth_pass 1111# 認證密碼

    }

    virtual_ipaddress {# 設置vip,虛擬ip地址(實現高可用,轉移的vip地址)

        192.168.1.77# 此地址并不存在,當成為主節點時,此ip地址將會自動生成

}

script_track {

monitor_tomcat  #跟蹤這個monitor_nginx腳本;就是不斷去檢查這個腳本

}

}

 

virtual_server localhost 8080 { 

        delay_loop 2   #每個2秒檢查一次real_server狀態 

        lb_algo wrr   #LVS算法 

        lb_kind DR    #LVS模式 

        persistence_timeout 60   #會話保持時間 

        protocol TCP 

        real_server localhost 8080 { 

        weight 3 

        notify_down  /root/scripts/monitor_tomcat.sh #檢測到服務down后執行的腳本 

        TCP_CHECK { 

          connect_timeout 2    #連接超時時間 

          nb_get_retry 2       #重連次數 

          delay_before_retry 2   #重連間隔時間 

          connect_port 8080   #健康檢查端口 

        } 

        } 

        } 

 

5.     使用expect進行ssh遠程主機之間的交互 (MASTER & BACKUP)

1). apt-get install expect

2).編輯ssh交互腳本 vim /root/scripts/.vpn

#!/usr/bin/expect -f

 

set port 58081

set user root

set host BACKUP  #BACKUP主機中這里需要更改為MASTER

set passWord 4753beeba235268793abe399debb07fd

set timeout -1

set RES ""

 

spawn ssh $user@$host -p $port service keepalived stop

expect "*assword:*"

 

send "$password/r"

expect eof

 

6.     tomcat健康檢查腳本 腳本內容如下:(MASTER & BACKUP)

思路為 keepalived 偵測到tomcat down掉以后執行該腳本:

Curl 連接本地8080服務檢查是否真的down掉,如果是,則繼續使用cur連接BACKUP主機 8080服務,如果服務沒有down掉, 即執行epect交互腳本登錄BACKUP主機 并啟動keepalived服務 休眠1秒 ,然后再殺掉本地keepalived服務,然后重啟本地8080服務;否則嘗試重啟tomcat服務, 然后休眠60s然后再嘗試使用curl連接本地8080服務,如果成功,則不管;否則殺死keepalived服務

MASTER: monitor_tomcat.sh

!/bin/sh

$(wget --spider http://localhost:8080/ 2> conn.txt )

RC=$(cat conn.txt | grep 'Connection refused')

#本地主機8080服務down掉

if [[ $RC != "" ]];then

        rm conn.txt

        $(wget --spider http://BACKUP:8080/ 2> conn.txt )

        BACKUPRC=$(cat conn.txt | grep 'Connection refused')

        if [[ $BACKUPRC == "" ]];then

                #如果BACKUP主機8080服務正常 執行expect腳本ssh遠程登錄BACKUP主機>并啟動keepalived

                rm conn.txt

                /root/scripts/.vpn

                #等待1s再殺掉本地的keepalived服務

                sleep 1

                service keepalived stop

                #嘗試啟動本地8080服務

                service tomcat7 restart

        else

                #BACKUP主機8080服務down掉 嘗試重啟本地8080服務 失敗則殺掉keepalived服務 說明兩臺主機都down掉了

                rm conn.txt

                service tomcat7 restart

        else

                #BACKUP主機8080服務down掉 嘗試重啟本地8080服務 失敗則殺掉keepalived服務 說明兩臺主機都down掉了

                rm conn.txt

                service tomcat7 restart

                $(wget --spider http://localhost:8080/ 2> conn.txt )

                LOCALRC=$(cat conn.txt | grep 'Connection refused')

                if [[ $LOCALRC != "" ]];then

                        #重啟失敗 殺掉keepalived

                        service keepalived stop

                fi

        fi

else

        rm conn.txt

        echo "no Warning"

fi

BACKUP:monitor_tomcat.sh

#!/bin/sh

$(wget --spider http://BACKUP:8080/ 2> conn.txt )

 

RC=$(cat conn.txt | grep 'Connection refused')

#本地主機8080服務down掉

if [[ $RC != "" ]];then

        rm conn.txt

        $(wget --spider http://MASTER:8080/ 2> conn.txt )

        MASTERRC=$(cat conn.txt | grep 'Connection refused')

        if [[ $MASTERRC == "" ]];then

                #如果MASTER主機8080服務正常 執行expect腳本ssh遠程登錄MASTER主機>并啟動keepalived

                rm conn.txt

                /root/scripts/.vpn

                #等待1s再殺掉本地的keepalived服務

                sleep 1

                service keepalived stop

                #嘗試啟動本地8080服務

                service tomcat7 restart

        else

                #MASTER主機8080服務down掉 嘗試重啟本地8080服務 失敗則殺掉keepalived服務 說明兩臺主機都down掉了

                rm conn.txt

                service tomcat7 restart

                $(wget --spider http://localhost:8080/ 2> conn.txt )

                LOCALRC=$(cat conn.txt | grep 'Connection refused')

                if [[ $LOCALRC != "" ]];then

                        #重啟失敗 殺掉keepalived

                        service keepalived stop

                fi

                rm conn.txt

        fi

else

        rm conn.txt

        echo "no Warning"

fi

 

7.    BACKUP主機添加crontab定時任務 (BACKUP)

MASTER主機keepalived服務會進行健康檢查,如果本機8080服務down掉,會自動執行健康腳本monitor_tomcat.sh;但是在BACKUP主機上嘗試多次,依然不能自己執行健康腳本;所以添加定時任務每一秒執行一次

Crontab –e

追加: */2 * * * */root/scripts/monitor_tomcat.sh

 

8.     修改keepclived 啟動腳本 (MASTER & BACKUP)

vim /etc/init.d/keepalived

start()

#daemon keepalived ${KEEPALIVED_OPTIONS}

/usr/local/keepalived/sbin/keepalived

 

stop()

#killproc keepalived

killall keepalived

 

reload()

#killproc keepalived -1

killall keepalived -1

 

 

 

9.     重啟服務器 測試:

輸入ip a ,VIP 77 綁定在MASTER主機eth0端口;嘗試關閉MASTER tomcat7服務, VIP成功過度到BACKUP主機;反之關閉BACKUP主機8080服務,VIP成功過渡到MASTER主機;中間因為腳本原因, 會有幾秒鐘過度時間

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩高清一区二区三区 | 欧美h版在线观看 | 91精品国产乱码久久久久久久久 | 久久久久久久久久久高潮一区二区 | 黄在线观看在线播放720p | 91av国产在线 | 欧美aⅴ视频| 欧美日韩精品中文字幕 | 国产久草视频在线 | 久久亚洲精品国产一区 | 国产精品高潮视频 | 亚洲精品在线观看免费 | av中文字幕免费在线观看 | av免费在线网站 | 久久精品欧美一区二区 | 中文字幕在线观看网址 | 亚洲精品欧美二区三区中文字幕 | 久久生活片 | 日本中文高清 | 欧美日韩亚洲另类 | 一区二区三区日韩 | 亚洲成人网一区 | 99国产精品国产免费观看 | 久久久一区二区三区四区 | 免费看黄色三级毛片 | 久久精品视频日本 | 91av在线免费视频 | 精品一区二区免费 | 大西瓜永久免费av在线 | 国产一级做a爰片在线看 | 精品少妇v888av | 国产免费传媒av片在线 | 国产99精品 | 一级毛片手机在线观看 | 成年人在线免费播放视频 | www视频免费在线观看 | 美女久久久久 | 亚洲欧洲日产v特级毛片 | 色呦呦一区二区三区 | 亚洲免费永久 | 国产好片无限资源 |