keepalived+lvs配置安裝,keepalivedlvs配置

來源:互聯網
上載者:User

keepalived+lvs配置安裝,keepalivedlvs配置

安裝:

tar -zxvf keepalived-1.2.2.tar.gz

yum list all |grep "ipvsadm"

yum -y install kernel-devel openssl-develpopt-devel ipvsadm libnl libnl-devel

service iptables stop

setenforce 0

./configure --prefix=/--with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64 && make&& make install

添加系統服務:

chkconfig --add keepalived   添加後可以使用service、chkconfig工具管理keepalived服務

chkconfig keepalived on            on層級為2、3、4

chkconfig --list keepalived        查看2、3、4層級是否開啟

 

 

 

全域設定檔:

global_defs {

  notification_email {

    acassen@firewall.loc

    failover@firewall.loc

    sysadmin@firewall.loc

   }

  notification_email_from Alexandre.Cassen@firewall.loc

  smtp_server 192.168.1.1

  smtp_connect_timeout 30

  router_id LVS_master

}         

 

 

vrrp_script check_httpd {

#vrrp_script模組專門用於對叢集中服務資源進行監控(HA叢集監控)。於此模組一起使用的還有track_script模組,track_script模組主要是調用vrrp_script模組。還可以檢查連接埠、shell語句檢查、指令碼檢查。在附錄下面示範

script “killall –O httpd”

#用killall –O httpd 查看httpd服務返回狀態,如果是零則表示運行正常,為1則表示運行異常。

interval 2

#檢查的時間間隔,單位為秒。

}

 

Vrrp配置(keepalived高可用配置)執行個體:

vrrp_instance VI_1 {

#標識,vrrp執行個體開始的標識

state MASTER

#定義主備角色master和backup

interface eth0

#指定監聽網卡

virtual_router_id51

#虛擬路由辨別碼,此標識主備不許相同。

priority 100

#優先順序。數字越大優先順序越高,在同一個vrrp-instance下master必須比backup優先順序大

advert_int 1

#設定master與backup之間同步檢查的時間間隔,單位是秒

   authentication {

       auth_type PASS

       auth_pass 1111

         #設定master和backup驗證類型(AH、PASS)和密碼,主備密碼一致才能通訊。

}

 

notify_master “/etc/keep/master.sh”

notify_backup “/etc/keep/backup.sh”

notify_fault “/etc/keep/fault.sh”

#指定當keepalived進入master、backup、fault狀態時執行到指令碼。指令碼舉例在附錄下。

 

track_script {

         check_httpd

}

#調用vrrp_script模組,check_httpd為vrrp_script模組後面跟的名字。

 

   virtual_ipaddress { 

       192.168.1.250

#虛擬位址,可以設定多個。它是以ip address add的方式加入地址。

    }

#nopreempt

#不搶佔功能,此功能只能用在state狀態是backup的節點上,而且這個節點優先順序要高於其他節點

#preempt_delay 300

#搶佔延遲時間,單位是秒。例如:網路有抖動master節點向backup節點發送探測包不及時實際master節點沒有問題,無需主備切換。重啟服務或重啟系統也是如此。

}

vrrp配置附錄———————————————

notify_master “/etc/keep/master.sh” 指令碼執行個體如下:

#!/bin/bash

logfile=/var/log/keep/keep-http-statsu.log

echo “[MASTER]” >>$logfile

date >> $logfile

backup.sh和fault.sh 略過。

 

連接埠檢查:

vrrp_script check_httpd {

script “</dev/tcp/127.0.0.1/80”

#這個方式是定義了對原生80連接埠的狀態檢查。

interval 2

#檢查的時間間隔,單位為秒。

fall 2

#表示檢查到失敗的最大次數

rise 1

#表示檢查到一次成功,則認為節點恢複正常。

}

 

shell語句檢查:

vrrp_script check_httpd {

script “if [ -f /var/run/httpd/httpd.pid ];hten exit 0; else exit 1; fi”

# 檢查pid檔案是否存在,如果返回0表示正常,返回1則表示異常。

interval 2

#檢查的時間間隔,單位為秒。

fall 2

#表示檢查到失敗的最大次數

rise 1

#表示檢查到一次成功,則認為節點恢複正常。

}

 

vrrp_script需要track_script模組調用我在示範時省略,但是不要忘記在vrrp_instance配置執行個體中調用。

------------------------------------------------------------------------------------------

 

LVS(負載平衡)配置執行個體:

virtual_server 192.168.1.250 {

#LVS配置執行個體已virtual_server表示開始

delay_loop 6

#設定健全狀態檢查的間隔,單位是秒。

lb_algo rr

#負載調度演算法,有rr(輪巡)、wrr(加權輪詢)、lc、wlc、lblc、sh、dh等

lb_kind NAT

#負載平衡機制,有NAT、TUN、DR。

nat_mask255.255.255.0

#不知道是什麼意思,後續在查。

persistence_timeout50

#同一IP的串連50秒內被分配到同一台realserver

persistence_granularity255.255.255.0

#此選項是配合persistence_timeout,如果後面寫的是4個255就代表單個ip,如果是255.255.255.0則代表用戶端所在的整個網段的請求都會分配到同一台real_server上。

   protocol TCP

    #指定轉寄協議類型有tcp和udp。

sorry_server192.168.1.120 80

#相當一個備用節點,當所有real_server節點失效則啟用備用節點

real_server192.168.1.108 80 {

# real_server段的開始標識,後面跟著的是後端節點真實ip地址。Ip和連接埠用空格分開。

       weight 1

                   #權重。數值越大權重越高。為效能高的節點分配高權重。合理使用節點

                   notify_up/root/keepalived/keepup.sh

                   notify_down/root/keepalived/keepdown.sh

                   #表示在檢測到real_server節點是up或是down時執行的指令碼。

      HTTP_GET |SSL_GET {

                   #Http和SSL檢測方式執行個體

           url {

                            #可以指定多個URL

              path /index.html

                                     #後面跟詳細的路徑

              digestff20ad2481f97b1754ef3e12ecd3a9cc

                                     #SSl檢查後的摘要資訊,這個摘要資訊可以通過ganhash命令工具擷取。例如:ganhash -s192.168.1.108 –p 80 –u /。

                              status_code 200

                            #返回的結果是200狀態代碼。

           }

                            connect_port80

                            #健全狀態檢查的連接埠,如果不指定,預設是real_server指定的連接埠

                            bindto192.168.1.108

                            #通過此地址發送請求檢查伺服器健康狀態。

           connect_timeout 3

                            #無回應時間,單位是秒。

           nb_get_retry 3

                            #重試次數

           delay_before_retry 3

                            #重試次數的間隔。

       }

    }

}

 

lvs配置附錄----------------------------------------

除了HTTP_GET 、SSL_GET這兩個real_server健康狀態檢查外還有TCP_CHECK、MISC_CHECK、SMTP_CHECK這三個。

 

接下來示範TCP_CHECK(連接埠檢查)、MISC_CHECK(外部程式檢查也就是指令碼檢查)

 

TCP_CHECK{

                            connect_port80

                            #健全狀態檢查的連接埠,如果不指定,預設是real_server指定的連接埠

           connect_timeout 3

                            #無回應時間,單位是秒。

           nb_get_retry 3

                            #重試次數

           delay_before_retry 3

                            #重試次數的間隔。

 

 

 

MISC_CHECK{

misc_path “/usr/local/bin/script.sh 1.1.1.180 http://www.baidu.com”

#指定指令碼的執行路徑,後面可以帶參數。跟普通方式執行指令碼相同。

misc_timeout 5

#設定指令碼的逾時時間

! misc_dynamic

#表示不啟用節點動態調整real_server權重。

#如果啟用並且返回碼是零則表示檢查正常,權重不變。如果是1則表示節點異常權重降為零。如果傳回值是2-255之間的數字則用傳回值減2。如:傳回值是10,權重則是8(10-2)

/usr/local/bin/script.sh 指令碼如下:

cat/usr/local/bin/check_squidproxy.sh  1.1.1.1  80  http://www.baidu.com

#!/bin/bash

 if [ $#-ne 3 ];then

  echo"Warning: check_command error."

  exit 1

else

  PROXY_IP=$1

  PROXY_PORT=$2

  CHECK_URL=$3

  CMD=`/usr/bin/curl-I -x ${PROXY_IP}:${PROXY_PORT} "${CHECK_URL}" 2>/dev/null | grep"200 OK" | wc -l`

  if [ ${CMD} -ne 1];then

    echo"CRITCAL: check proxy ${PROXY_IP} failed."

    exit 1

  else

    echo"OK: check proxy ${PROXY_IP} OK."

    echo0

  fi

fi

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.