監(jiān)控集群系統(tǒng)中各個服務工作狀態(tài),可以自動剔除壞節(jié)點,修復之后又加回來,工作在3,4,5層,
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的深澤網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!VRRP虛擬路由器冗余協(xié)議:解決靜態(tài)路由出現(xiàn)的單點故障,是一種主備模式的協(xié)議,可以在網(wǎng)絡(luò)發(fā)生故障時透明地進行設(shè)備切換而不影響主機間的數(shù)據(jù)通信
VRRP可以將兩臺或多臺物理路由器設(shè)備虛擬成一個虛擬路由器,通過一個虛擬ip對外提供服務,由選舉算法選出一個master,當master失效則從backup中重新選取
一個VRIP與一組IP地址構(gòu)成一個虛擬路由器,協(xié)議中所有報文都通過多播形式發(fā)送,而在虛擬路由器中只有master會一直發(fā)送VRRP數(shù)據(jù)包,當沒有收到數(shù)據(jù)包就會重新選舉
運行機制:網(wǎng)絡(luò)層通過發(fā)送icmp包探測,如果無返回就剔除;傳輸層通過掃描端口,沒有響應數(shù)據(jù)就剔除,應用層根據(jù)用戶自定義的設(shè)定來判斷是否正常
結(jié)構(gòu)上整體分兩層,內(nèi)核空間層(kernel space):處于最底層,包括IPVS和NETLINK兩個模塊,ipvs是第三方模塊,可以實現(xiàn)基于IP的負載均衡集群;NETLINK主要用于實現(xiàn)一些高級路由框架和一些相關(guān)的網(wǎng)絡(luò)功能,完成用戶空間Netlink Reflector發(fā)來的網(wǎng)絡(luò)請求。
用戶空間層(user space):分為四個部分,
Schedule I/O Multiplexer:I/O復用分發(fā)調(diào)度器,安排內(nèi)部的任務請求
Memory Manage:內(nèi)存管理機制,提供了訪問內(nèi)存的一些通用方法
control plane:控制面板,實現(xiàn)對配置文件進行編譯和解析(只有用到某模塊才解析)
core component:包含一系列模塊
·watchDog:針對被監(jiān)視的目標設(shè)置一個計數(shù)器和一個閾值,自己增加計數(shù),等待被監(jiān)視目標周期性地重置該計數(shù),如果目標發(fā)生錯誤便無法重置,通過Watchdog監(jiān)控Checkers和VRRP
checkers:最基礎(chǔ)的功能,實現(xiàn)對服務器運行狀態(tài)監(jiān)測和故障隔離
VRRP Stack:可以實現(xiàn)HA集群中失敗切換(failover)功能,通過VRRP功能再結(jié)合LVS負載均衡軟件就可部署一個高性能的負載均衡集群系統(tǒng)
IPVS wrapper:將設(shè)置好的ipvs規(guī)則發(fā)送給內(nèi)核空間并提交給LPVS模塊,便可實現(xiàn)負載均衡
Netlink Reflector:實現(xiàn)高可用集群中failover時虛擬IP的設(shè)置和切換,發(fā)送給NETLINK模塊完成
安裝:./configure --sysconf=/etc指定配置文件 --with-kernel-dir=/usr/src/kernels/2.6.32-431.5.1.e16.x86_64指定要使用的內(nèi)核源碼的頭文件
如果只是啟動高可用,不需要IPVS模塊--disable-lvs關(guān)閉 --disable-lvs-syncd關(guān)閉ipvs同步
IPVS use libnl使用新版libnl,需要libnl和libnl-devel包
Use VRRP Framework表示使用VRRP框架,必須的模塊;VMAC使用基礎(chǔ)vmac接口的xmit包
ln -s /usr/local/sbin/keepalived /sbin/ chkconfig --add keepalived --level 35 on
全局配置:
global_defs{
notification_email{
453341@qq.com #需要開啟Sendmail服務
ixdba@163.com
}
notification_email_fromkeepalived@localhost
smtp_server192.168.200.1 設(shè)置郵件的smtp server地址
smtp_connect_timeout30 超時時間
router_idLVS_DEVEL 標示,顯示在郵件主題中
}
VRRPD配置:
同步組配置:vrrp_sync_groupG1{
group{
VI_1 #實例名
VI_2
VI_3}
notify_backup"/usr/local/bin/vrrp.backarg1arg2"進入backup執(zhí)行的腳本,可以是狀態(tài)報警或服務管理
notify_fault"/usr/local/bin/vrrp.faultarg1arg2"進入fault執(zhí)行的腳本,可以是狀態(tài)報警或服務管理
notify_stop"/usr/local/bin/vrrp.stoparg1arg2"終止時需要執(zhí)行的腳本
notify_master"/usr/local/bin/vrrp.mastarg1arg2"指定當keepalived進入MASTER狀態(tài)時要執(zhí)行的腳本,允許傳人參數(shù)}
vrrp_instance VI_1{
.....
advert_int 1間隔時間
mcast_src_ip 發(fā)送多播包的地址,可不設(shè)
track_interface 設(shè)置一些額外的監(jiān)控接口
virtual_ipaddress {}虛擬ip主節(jié)點時自動添加
virtual_routers {}
nopreempt不自動切回
preemtp_delay 300切回去延時
}
virtual_server 192.168.12.200 80{
delay_loop 6 健康檢查時間間隔
lb_algo rr wrr lc wlc lblc sh dh
lb_kind NAT/TUN/DR
persistent_timeout 50無響應保持時間
persistence_granularity 255.255.255.0
protocol TCP、UDP
ha_suspend 切換時不檢查realserver
virtualhost http_get/ssl_get健康檢測時指定web服務器的虛擬主機地址(bindto)
sorry_server realserver全部爆炸后使用此地址}
real_server 192.168.12.132 80{
weight 3
inhibit_on_failure 不刪除節(jié)點weight值設(shè)為0
notify_up XXX.sh notify_down yyy.sh
TCP_CHECK{connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before 3}
HTTP_GET|SSL_GET {
url{path /index.html digest (genhash -s 192.168.12.80 -p 80 -u /index.html) status_code 200}
bindto 192.168.12.80
connect_port 80connect_timeout 3 nb_get_retry 3 delay_before 3}}
基礎(chǔ)功能vrrp_script check_httpd{
script "kilall -0 httpd"
interval 2 fall 2 rise 1 }
track_script{check_httpd}
script "if[-f /var/run/httpd/httpd.pid];then exit 0; else exit 1;fi"
script "
script “/xxxx/mysql.sh" 用腳本檢測