keepalived配置

前兩個配置做完實驗沒截圖,后面的實驗有圖片。

keepalived的的單獨設置

1.確保時間同步 ntpdate 10.1.0.1

2.保證/etc/hosts文件可以解析到

3.本機配置ssh-keygen -t rsa -P ''  ,然后ssh-copy-id -i .ssh/id_rsa.pub root@10.1.44.4

4.此時 登入10.1.44.4就不需要密碼了

5.yum -y install keepalived,分別進行配置兩臺主機的地址分別是10.1.44.4(backup) 和10.1.44.3(master)

備機的配置

global_defs {

notification_email {

root@localhost

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node61

vrrp_mcast_group4 224.0.100.29

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 16

priority 98

advert_int 1

authentication {

auth_type PASS

auth_pass 01c5c1c8

}

virtual_ipaddress {

10.1.44.99/16 dev eth0

}

}

主機的配置

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node61

vrrp_mcast_group4 224.0.100.29

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 16

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 01c5c1c8

}

virtual_ipaddress {

10.1.44.99/16 dev eth0

}

}

配置郵件通知機制

郵件腳本:/etc/keepalived/notify.sh

#!/bin/bash

#

contact="root@localhost"

notify() {

mailsubject="$(hostname) to be $1 ,vip floating"

mailbody="$(date +'%F %T'):vrrp transition,$(hostname) changed to be $1"

echo "$mailbody" | mail -s "$mailsubject" $contact

}

case $1 in

master)

notify master

;;

backup)

notify backup

;;

fault)

notify fault

;;

*)

echo "Usage: $(basename $0) {master|backup|fault}"

exit 1

;;

esac

在keepalived.conf中的配置

virtual_ipaddress {

10.1.44.99/16 dev eth0

}

notify_master "/etc/keepalived/notify.sh mater"

notify_backup "/etc/keepalived/notify.sh backup"

notify_fault "/etc/keepalived/notify.sh fault"

}

keepalived與HTTP結合的配置

第一步:在主機和備機進行測試

先開啟service keepalived start

ipvsadm -A -t 10.1.44.99:80 -s rr

ipvsadm -a  -t 10.1.44.99:80 -r 10.1.44.2 -g -w 1

ipvsadm -a  -t 10.1.44.99:80 -r 10.1.44.6 -g -w 1

在另一臺設備上使用curl 10.1.44.99

第二步:keepalived配置文件中添加配置

如下為備機配置,主機類似

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1

vrrp mcast_group4 224.0.100.19

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 15

priority 97

advert_int 1

authentication {

auth_type PASS

auth_pass RrpIoZU8

}

virtual_ipaddress {

10.1.44.99

}

}

virtual_server 10.1.44.99 80 {

delay_loop 3

lb_algo rr

lb_kind DR

protocol TCP

real_server 10.1.44.2 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 1

nb_get_retry 3

delay_before_retry 1

}

}

real_server 10.1.44.6 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 1

nb_get_retry 3

delay_before_retry 1

}

}

}

第三步:測試

配置好文件后,生成了如下的規則

keepalived配置1.jpg

(1)正常情況下會輪替

keepalived配置2.jpg

(2)關閉一臺真機

keepalived配置3.jpg

(3)keepalived的主機宕機

此時的ipvsadm的規則已經轉移到備機上,用戶的訪問頁面亦然正常

keepalived配置4.jpg

sorry服務器

sorry_server應該配置在keepalived服務器上,以便于在主備真機全部宕機后,能夠提供錯誤頁顯示服務。

(1)配置文件:

keepalived配置5.jpg

(2)測試

將真機的http服務全部關閉,將調度機的備機啟動,

keepalived配置6.jpg

keepalived配置7.jpg

啟動調度機的主機啟動

keepalived配置8.jpg

keepalived狀態檢測

keepalived調用外部的輔助腳本進行資源監控,并根據監控的結果狀態能實現優先動態調整??梢允褂迷摲椒ㄈz測nginx服務是否正常;

分兩步:(1)先定義一個腳本;(2)調用此腳本;

實例:

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1

vrrp mcast_group4 224.0.100.19

}

vrrp_script chk_down {

       script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"

       interval 1

       weight -5

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 15

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass RrpIoZU8

}

virtual_ipaddress {

10.1.44.99

}

  track_script {

       chk_down

   }

}

當創建了down文件后主節點自動調低優先級。

原創文章,作者:178babyhanggege,如若轉載,請注明出處:http://www.www58058.com/57259

(0)
178babyhanggege178babyhanggege
上一篇 2016-11-11 08:41
下一篇 2016-11-11 08:41

相關推薦

  • N26-第五周-孫逸

    1、 顯示當前系統上root、fedora或user1用戶的默認shell;命令:cat /etc/passwd | grep -E “^(root|fedroa|user1)” | cut -d: -f1,7 2、 找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(…

    2017-03-10
  • Bind編譯安裝詳解

    Bind編譯安裝詳解 Bind是一款開放源碼的DNS服務器軟件,由美國加州大學Berkeley分校開發和維護的,全名為Berkeley Internet Name Domain它是目前世界上使用最為廣泛的DNS服務器軟件,支持各種unix平臺和windows平臺?,F今互聯網上最常使用的DNS服務器軟件,使用BIND作為服務器軟件的DNS服務器約占所有DNS服…

    Linux干貨 2016-07-22
  • 第二周作業

    1. Linux上文件管理類命令總結及示例 文件管理命令主要由查看類命令和管理類命令組成 查看類命令 cat:顯示文本 cat [OPTION]… [FILE].. tac:倒序查看文件內容 tac [OPTION]… [FILE].. head:顯示文件前幾行內容 head [OPTION]… [FILE].. -n#:指定獲取前#行,也可直接使用-# -…

    Linux干貨 2016-12-10
  • 正則表達式 小結

    聽老師和學姐都說,正則表達式很重要,所以這次我總結一下,同時加強一下記憶。 目前我們學的正則表達式有:字符匹配;匹配字數;位置錨定。 :. 匹配任意單個字符 [] 匹配指定范圍內的任意單個字符 [^] 匹配指定范圍外的任意單個字符 [:alnum:] 或 [0-9a-zA-Z] [:alpha:] 或 [a-zA-Z]…

    2017-07-31
  • Cacti整合Zabbix監控

    前言: 由于公司現在很多業務都是使用cacti進行監控流量的,并且還有一些使用zabbix監控的項目,正好又有一個項目需要搭建Cacti+Zabbix進行綜合監控,搭建完畢之后發現,Cacti較之以前有了不小的改進,所以就來寫一寫Cacti和Zabbix監控整合的文章,順便說一下Cacti下的一些好用的插件。 環境: Centos 6.4 X86_64 Ca…

    Linux干貨 2015-03-19
欧美性久久久久