這次由于主要用到vrrp instance,所以重點(diǎn)對(duì)配置文件這個(gè)部分進(jìn)行解讀
下面是對(duì)這個(gè)配置的解釋
02 |
#如果不指定Master或者BACKUP,那priority最高的就是master |
05 |
#監(jiān)聽(tīng)的實(shí)際網(wǎng)口 |
08 |
#組播ID,通過(guò)224.0.0.18可以監(jiān)聽(tīng)到現(xiàn)在已經(jīng)存在的VRRP ID,最好不要跟現(xiàn)有ID沖突 |
11 |
#權(quán)重為100,權(quán)重?cái)?shù)字越大就越高 |
14 |
#發(fā)送組播包的間隔時(shí)間,默認(rèn)為1秒 |
23 |
#這個(gè)是驗(yàn)證類(lèi)型為PASS(明文),密碼為hdtv。驗(yàn)證類(lèi)型也可以選擇IPSEC,但是官方是不推薦的 |
30 |
#############下面這些是文檔中存在,但是在上面沒(méi)有用到的############################# |
39 |
#監(jiān)控eth0和eth1這2塊網(wǎng)卡的狀態(tài) |
42 |
#使用這個(gè)地址作為多播包的源IP,而不是使用interface eth0上的IP |
44 |
lvs_sync_daemon_interface eth1 |
48 |
#master和slave漂移時(shí)間改為2秒,默認(rèn)位5秒,怪不得我昨天發(fā)現(xiàn)每次都是5秒才轉(zhuǎn)移 |
51 |
/ brd dev scope label 192.168 . 200.17 / 24 dev eth1 |
52 |
192.168 . 200.18 / 24 dev eth2 label eth2: 1 |
54 |
#vip可以寫(xiě)成整個(gè)網(wǎng)段和某塊網(wǎng)卡上的所有IP |
56 |
virtual_ipaddress_excluded { |
57 |
/ brd dev scope / brd dev scope ... |
62 |
src 192.168 . 100.1 to 192.168 . 109.0 / 24 via 192.168 . 200.254 dev eth1 192.168 . 110.0 / 24 via 192.168 . 200.254 dev eth1 192.168 . 111.0 / 24 dev eth2 192.168 . 112.0 / 24 via 192.168 . 100.254 |
64 |
#當(dāng)狀態(tài)切換的時(shí)候會(huì)增加和刪除路由,格式如src [to] / via|gw dev scope tab |
67 |
#這個(gè)參數(shù)是用來(lái),當(dāng)master當(dāng)?shù)?,slave接替原來(lái)的master作為master后,這個(gè)時(shí)候當(dāng)master重新起來(lái)后,有了這個(gè)參數(shù)后原來(lái)的slave就不會(huì)自動(dòng)再自動(dòng)切換為slave,而是繼續(xù)作為master |
70 |
#接上面那個(gè)參數(shù),這個(gè)表示,只有在老的master重新正常300秒后,老的master才會(huì)切換為master,這個(gè)參數(shù)范圍是0-1000,默認(rèn)為0 |
72 |
notify_master | notify_backup |
73 |
| notify_fault | notify | |
75 |
#各種報(bào)警方式,可以定義具體的內(nèi)容來(lái)達(dá)到不同的報(bào)警信息。 |
上面這些是官方的配置文件,下面這些是放狗搜索出來(lái)的其它配置,主要是為了做服務(wù)狀態(tài)的檢測(cè),不然keepalived只能看網(wǎng)口有沒(méi)有down掉再進(jìn)行遷移,那樣就要另外寫(xiě)其它的監(jiān)控腳本來(lái)達(dá)到當(dāng)服務(wù)掛掉后就把網(wǎng)口down掉。
下面這個(gè)是從郵件列表中抄襲而來(lái),但是沒(méi)有測(cè)試過(guò),明日會(huì)找時(shí)間進(jìn)行測(cè)試。下面這個(gè)是在1.1.13版本之后就實(shí)現(xiàn)了。
01 |
! Configuration File for keepalived |
02 |
vrrp_script chk_sshd { |
03 |
script "killall -0 sshd" # cheaper than pidof |
04 |
interval 2 # check every 2 seconds weight -4 # default prio: -4 if KO } |
05 |
vrrp_script chk_haproxy { |
06 |
script "killall -0 haproxy" # cheaper than pidof |
07 |
interval 2 # check every 2 seconds } |
08 |
vrrp_script chk_http_port { |
09 |
script "/tcp/127.0.0.1/80" # connects and exits |
10 |
interval 1 # check every second |
11 |
weight - 2 # default prio: -2 if connect fails |
13 |
vrrp_script chk_https_port { |
14 |
script "/tcp/127.0.0.1/443" |
18 |
vrrp_script chk_smtp_port { |
19 |
script "/tcp/127.0.0.1/25" |
32 |
eth1 weight 2 # prio = +2 if UP |
33 |
eth2 weight - 2 # prio = -2 if DOWN |
34 |
eth3 # no weight, fault if down |
37 |
chk_sshd # use default weight from the script chk_haproxy weight 2 # +2 if process is present |
52 |
eth0 weight 2 # prio = +2 if UP |
53 |
eth2 weight - 2 # prio = -2 if DOWN |
54 |
eth3 # no weight, fault if down |
###########################################
Best regards
Timo Seven
blog: http://www.
twitter: http://twitter.com/zauc
Linux System Admin & MySQL DBA
http://zauc./2010/08/31/keepalived-conf%E4%B9%8Bvrrp-instance%E9%83%A8%E5%88%86%E8%A7%A3%E8%AF%BB/