keepalive配置文件詳解

第一部分:全局定義塊
1、email通知。作用:有故障,發郵件報警。
2、Lvs負載均衡器標識(lvs_id)。在一個網絡內,它應該是唯一的。
3、花括號“{}”。用來分隔定義塊,因此必須成對出現。如果寫漏了,keepalived運行時,不會得到預期的結果。由于定義塊內存在嵌套關系,因此很容易遺漏結尾處的花括號,這點要特別注意。
global_defs{
notification_email{? #指定keepalived在發生切換時需要發送email到的對象,一行一個
sysadmin@fire.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc #指定發件人
smtp_server localhost#指定smtp服務器地址
smtp_connect_timeout 30#指定smtp連接超時時間
router_id LVS_DEVEL#運行keepalived機器的一個標識
}

第二部分:vrrp_sync_group作用:確定失敗切換(FailOver)包含的路由實例個數。即在有2個負載均衡器的場景,一旦某個負載均衡器失效,需要自動切換到另外一個負載均衡器的實例是哪些?實例組group{}至少包含一個vrrp實例

vrrp_sync_group VG_1{ #監控多個網段的實例
group {
VI_1 #實例名
VI_2
……
}
notify_master /path/xx.sh #指定當切換到master時,執行的腳本
netify_backup /path/xx.sh #指定當切換到backup時,執行的腳本
notify_fault “path/xx.sh VG_1” #故障時執行的腳本
notify /path/xx.sh
smtp_alert #使用global_defs中提供的郵件地址和smtp服務器發送郵件通知
}

第三部分:vrrp_instance,實例名出自實例組group所包含的那些名字。

vrrp_instance VI_1 {
state BACKUP#指定那個為master,那個為backup,如果設置了nopreempt這個值不起作用,主備考priority決


interfaceeth0 #設置實例綁定的網卡
dont_track_primary #忽略vrrp的interface錯誤(默認不設置)
track_interface{ #設置額外的監控,里面那個網卡出現問題都會切換
eth0
eth1
}
mcast_src_ip#發送多播包的地址,如果不設置默認使用綁定網卡的primary ip
garp_master_delay #在切換到master狀態后,延遲進行gratuitous ARP請求
virtual_router_id 50 #VPID標記
priority 99#優先級,高優先級競選為master
advert_int 1#檢查間隔,默認1秒
nopreempt#設置為不搶占 注:這個配置只能設置在backup主機上,而且這個主機優先級要比另外一臺高
preempt_delay #搶占延時,默認5分鐘
debug#debug級別
authentication { #設置認證
auth_type PASS #認證方式
auth_pass 111111 #認證密碼
}
virtual_ipaddress { #設置vip
192.168.202.200
}
}

第四部分:
虛擬服務器virtual_server定義塊,虛擬服務器定義是keepalived框架最重要的項目了,是keepalived.conf必不可少的部分。該部分是用來管理LVS的,是實現keepalive和LVS相結合的模塊。ipvsadm命令可以實現的管理在這里都可以通過參數配置實現,注意:real_server是被包含在viyual_server模塊中的,是子模塊。

virtual_server 192.168.202.200 23{???????//VIP地址,要和vrrp_instance模塊中的virtual_ipaddress地址一致
delay_loop 6 #健康檢查時間間隔
lb_algo rr #lvs調度算法rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #負載均衡轉發規則NAT|DR|RUN
persistence_timeout 5 #會話保持時間
protocol TCP #使用的協議
persistence_granularity #lvs會話保持粒度
virtualhost #檢查的web服務器的虛擬主機(host:頭)
sorry_server #備用機,所有realserver失效后啟用

real_server 192.168.200.5 23{????????????//RS的真實IP地址
weight 1 #默認為1,0為失效
inhibit_on_failure #在服務器健康檢查失效時,將其設為0,而不是直接從ipvs中刪除
notify_up | #在檢測到server up后執行腳本
notify_down | #在檢測到server down后執行腳本

TCP_CHECK{???????????????????//常用
connect_timeout 3 #連接超時時間
nb_get_retry 3 #重連次數
delay_before_retry 3 #重連間隔時間
connect_port 23? 健康檢查的端口的端口
bindto
}

HTTP_GET |SSL_GET{?????????//不常用
url{#檢查url,可以指定多個
path /
digest #檢查后的摘要信息
status_code 200 #檢查的返回狀態碼
}
connect_port
bindto
connect_timeout 5
nb_get_retry3
delay_before_retry 2
}

SMTP_CHECK{????????????????//不常用
host{
connect_ip
connect_port#默認檢查25端口
bindto
}
connect_timeout 5
retry3
delay_before_retry 2
helo_name |#smtp helo請求命令參數,可選
}

MISC_CHECK{????????????????//不常用
misc_path |#外部腳本路徑
misc_timeout#腳本執行超時時間
misc_dynamic#如設置該項,則退出狀態碼會用來動態調整服務器的權重,返回0 正常,不修改;返回1,

檢查失敗,權重改為0;返回2-255,正常,權重設置為:返回狀態碼-2
}
}

生產環境配置文件實例:

[root@LB2 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {
49000448@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 10.0.0.1
smtp_connect_timeout 30
router_id LVS_2
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 55
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.220.110/24
}

virtual_server 192.168.220.110 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 300
protocol TCP
}

real_server 192.168.220.129 80 {
weight 1
TCP_CHECK {
connect_timeout 8
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}

real_server 192.168.220.138 80 {
weight 1
TCP_CHECK {
connect_timeout 8
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
[root@LB2 ~]#

?為keepalive指定日志文件

默認keepalive的日志文件是
/var/log/messages
[root@LB2 ~]# tail -5 /var/log/messages
Dec? 7 22:40:10 LB2 Keepalived_vrrp:VRRP_Instance(VI_1) Entering BACKUP STATE
Dec? 7 22:40:10 LB2 Keepalived_vrrp: VRRPsockpool: [ifindex(2), proto(112), fd(10,11)]
Dec? 7 22:40:10 LB2 Keepalived_healthcheckers:Opening file ‘/etc/keepalived/keepalived.conf’.
Dec? 7 22:40:10 LB2 Keepalived_healthcheckers:Configuration is using : 8425 Bytes
Dec? 7 22:40:10 LB2 Keepalived_healthcheckers:Using LinkWatch kernel netlink reflector…
[root@LB2 ~]#

修改配置

[root@LB2 ~]# vim /etc/sysconfig/keepalived
……
#KEEPALIVED_OPTIONS=”-D”?????????//注釋掉該行
KEEPALIVED_OPTIONS=”-D -d -S 0″? //添加改行
……
[root@LB2 ~]# vim /etc/rsyslog.conf
……
local0.*??????/var/log/keepalived.log??????????//添加改行
[root@LB2 ~]# /etc/init.d/rsyslogrestart???????????//重啟日志服務
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
[root@LB2 ~]# /etc/init.d/keepalivedrestart????????//重啟keepalive服務
Stopping keepalived: [ OK ]
Starting keepalived: [ OK ]
[root@LB2 ~]# tail -5 /var/log/keepalived.log
Dec 8 01:02:06 LB2 Keepalived_vrrp: Virtual IP = 1
Dec 8 01:02:06 LB2 Keepalived_vrrp: 192.168.220.110/24 brd192.168.220.110 dev eth0 scope global
Dec 8 01:02:06 LB2 Keepalived_vrrp: Using LinkWatch kernel netlinkreflector…
Dec 8 01:02:06 LB2 Keepalived_vrrp: VRRP_Instance(VI_1) EnteringBACKUP STATE
Dec 8 01:02:06 LB2 Keepalived_vrrp: VRRP sockpool: [ifindex(2),proto(112), fd(10,11)]
[root@LB2 ~]#

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87286

(2)
sunhaosunhao
上一篇 2017-09-17 13:12
下一篇 2017-09-17 18:26

相關推薦

  • 開篇

    正式開始學習的第一天,了解LINUX,愛上LINUX。希望在往后的日子里越戰越勇?。?/p>

    Linux干貨 2017-07-11
  • 單網卡多IP,雙網卡實現負載

        有些時候會我們一個IP不夠用,但是又不想加網卡,可以試試一個網卡實現多個IP,下面我們來操作一下。 生成新增IP配置文件信息;  [root@localhost network-scripts]# cat ifcfg-eth0      DE…

    Linux干貨 2016-09-06
  • N26-肉肉-第一周作業

    1.描述計算機的組成及其功能CPU:運算器、控制器、寄存器、緩存存儲器:內存,RAM(Random Access Memory)    IO:輸入輸出設備2.按系列羅列linux的發行版本,并描述不同發行版本之間的聯系與區別。發行版有數百種之多,著名的主流發行版有3種Debian,Slackware,RedHatDebian:使…

    Linux干貨 2017-01-03
  • nginx初步

    一、知識整理 1、查看進程使用的cpu;ni查看nice值 [root@localhost html]# ps axo pid,comm,psr,ni  43769 nginx          &n…

    Linux干貨 2016-10-31
  • 搭建CA服務器為Client簽發證書

    搭建CA服務器為Client簽發證書   此次實驗步驟如下: 一、搭建CA服務器 1)  在/etc/pki/CA下創建index.txt文件,此文件是為Client簽發證書的索引文件; 2)  在/etc/pki/CA下創建serial文件,此文件記錄為Client簽發證書的編號; 3)  生成CA服務器私鑰; 4)…

    2017-05-21
  • 馬哥教育網絡班21期+第七周博客作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至datamydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 [root@ns1 ~]# m…

    Linux干貨 2016-08-24
欧美性久久久久