一、HAProxy簡介
HAProxy提供高可用性、負載均衡以及基于TCP和HTTP應用的代 理,支援虛拟主機,它是免費、快速并且可靠的一種解決方案。HAProxy特别适用于那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。 HAProxy運作在目前的硬體上,完全可以支援數以萬計的并發連接配接。并且它的運作模式使得它可以很簡單安全的整合進您目前的架構中, 同時可以保護你的web伺服器不被暴露到網絡上。
二、Keepalived簡介
它是一個基于VRRP協定來實作的WEB服務高可用方案,可以利用其來避免單點故障。一個WEB服務至少會 有2台伺服器運作Keepalived,一台為主伺服器(MASTER),一台為備份伺服器(BACKUP),但是對外表現為一個虛拟IP,主伺服器會發 送特定的消息給備份伺服器,當備份伺服器收不到這個消息的時候,即主伺服器當機的時候,備份伺服器就會接管虛拟IP,繼續提供服務,進而保證了高可用性。
三、Flume簡介
Flume是Apache提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,Flume提供對資料進行簡單處理,并寫到各種資料接受方(可定制)的能力。
注:根據我們公司具體業務需求,對其進行二次開發滿足跨國跨機房日志資料完整傳輸錄入到hadoop,同時確定高性能(tps:10k),目前已經有部分業務線上介入,日收集日志條數2億+(日志大小約30G)。
四、Keepalived安裝&配置
(1) keepalived依賴環境
yum install -y openssl-devel openssl;
yum install -y popt-devel;
(2) 從keepalived官網下載下傳最新的版本:http://www.keepalived.org/download.html
(3) 安裝與編譯:
./configrure;
make && make install
(4) 設定service啟動服
[root@localhost~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d [root@localhost~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ [root@localhost~]# mkdir /etc/keepalilved [root@localhost~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ [root@localhost~]# cp /usr/local/sbin/keepalived /usr/sbin/ [root@localhost~]# service keepalived start |
(5) 配置檔案
vrrp_script chk_haproxy { script"/data/sh/check_haproxy.sh" interval2 weight2 } # VIP1 vrrp_instance VI_1 { state MASTER #主備模式 interfaceeth2 # 監控網卡,要産生虛拟ip的網卡,如機器161.106内網網卡為eth0則必須為eth0 virtual_router_id151# 這個兩台伺服器必須一樣 priority100 #權重值 MASTRE 一定要高于 BAUCKUP advert_int5 nopreempt authentication { auth_typePASS # 加密 auth_pass2222# 加密的密碼,兩台伺服器一定要一樣 } virtual_ipaddress { 192.168.161.xxx #VIP 位址 track_script { chk_haproxy # 執行監控的服務 } 注: keepalived主備唯一不同的是配置檔案 state & priority |
五、HAProxy安裝&配置
(1) 從官網下載下傳最新版本haproxy: http://haproxy.1wt.eu/#down
(2) 安裝
make TARGET=linux26 PREFIX=/usr/local/haproxy #将haproxy安裝到/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
(3) 配置檔案
global maxconn51200#最大連接配接數 user root group root uid99 gid99 daemon #quiet nbproc6#程序數 defaults mode http retries3 option redispatch timeout connect 5000ms timeout client 30000ms timeout server 30000ms timeout check10000#檢查逾時時間 log127.0.0.1local0 debug #[err warning info debug] listen admin_stats #監控背景 bind0.0.0.0:8880 mode http option httplog stats refresh 30s stats uri /stats stats realm Haproxy Manager stats auth admin:admin listen logservers bind *:18888 mode tcp tcp模式 timeout client 5m #用戶端連接配接伺服器多久沒有資料連接配接逾時,類似與http keepalive timeout server 5m #類似 server t1192.168.1.7:8888 weight 1 check inter 5000 rise2 fall3 server t2192.168.1.118:8888 weight 1 check inter 5000 rise2 fall3 #weight 代表權重 inter代表檢測頻率 rise代表檢測成功多少次伺服器可用 fall代表檢測失敗多少次伺服器不可用 |
(4) 平滑重新開機haproxy
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy_tcp.cfg -p /usr/local/haproxy/ha.pid -st `cat /usr/local/haproxy/ha.pid`