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
下一篇 2016-11-11

相關推薦

  • CentOS上配置rsyslog客戶端用以遠程記錄日志

    rsyslog是一個開源工具,被廣泛用于Linux系統以通過TCP/UDP協議轉發或接收日志消息。rsyslog守護進程可以被配置成兩種環境,一種是配置成日志收集服務器,rsyslog進程可以從網絡中收集其它主機上的日志數據,這些主機會將日志配置為發送到另外的遠程服務器。rsyslog的另外一個用法,就是可以配置為客戶端,用來過濾和發送內部日志消息到本地文件…

    Linux干貨 2015-02-14
  • centos7源碼編譯安裝Apache2.4.25服務

    ?一、源碼包下載 ?二、安裝開發環境以及編譯環境 ?三、編譯安裝以及報錯排查 ?四、調試Apache服務 前言: 本文主要介紹了在Centos7環境中如何通過源碼編譯的方式安裝Apache服務(也就是我們的httpd服務)由于本文整理時間有限,所以難免有些紕漏之處,歡迎大家在閱讀后在評論區指出,本人看到會在第一時間修改文中錯誤的地方。 為什么要進行源碼編譯安…

    2017-04-22
  • N25-第十周博客作業

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 內核空間的啟動流程 一. POST 加電自檢 在加電之后,智能設備所運行的內部存儲的一系列檢測程序集合??s寫為POST。這些檢測程序在軟件加載到硬件上運行之前對硬件的基本完整性加以驗證。 用于實現POST的代碼在主板上ROM(CMOS)芯片上。 二. Boot Sequence(BI…

    Linux干貨 2017-03-25
  • Hadoop偽分布式模型

    # java -version # vim /etc/profile.d/java.sh export JAVA_HOME=/usr # yum install java-1.8.0-openjdk-devel # mkdir /bdapps # tar xf hadoop-2.7.4.tar.gz -C /bdapps/ # cd /bdapps # ln…

    2017-12-08
  • 馬哥教育網絡班21期+第五周課程練習

    馬哥教育網絡班21期+第5周課程練習 [TOC] 1. 顯示/boot/grub/grub.conf中至少以一個空白字符開頭的行。 [root@rhel-5 ~]# grep -E '^[[:space:]]+' /boot/grub/grub.conf  root (hd…

    Linux干貨 2016-08-02
  • 計算機組成及各部分功能

    計算機組成及各部分功能 計算機組成 區別于利用機械原理對數據進行處理的機械計算機,計算機現在一般都指電子計算機,即電腦。計算機是一種利用電子學原理,根據一些列指令對數據進行處理的工具。 不管是機械計算機還是電子計算機其主要目的還是代替人來完成一系列的數據計算。1941年夏天誕生的阿塔納索夫-貝瑞計算機是世界上第一部電子計算機,使用了真空管計算器,二進制數值,…

    Linux干貨 2016-10-27
欧美性久久久久