HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统
一、HAProxy簡介
??? HAProxy提供高可用性、負(fù)載均衡以及基于TCP和HTTP應(yīng)用的代 理,支持虛擬主機(jī),它是免費、快速并且可靠的一種解決方案。HAProxy特別適用于那些負(fù)載特大的web站點,這些站點通常又需要會話保持或七層處理。 HAProxy運行在當(dāng)前的硬件上,完全可以支持?jǐn)?shù)以萬計的并發(fā)連接。并且它的運行模式使得它可以很簡單安全的整合進(jìn)您當(dāng)前的架構(gòu)中, 同時可以保護(hù)你的web服務(wù)器不被暴露到網(wǎng)絡(luò)上。
二、Keepalived簡介
??? 它是一個基于VRRP協(xié)議來實現(xiàn)的WEB服務(wù)高可用方案,可以利用其來避免單點故障。一個WEB服務(wù)至少會 有2臺服務(wù)器運行Keepalived,一臺為主服務(wù)器(MASTER),一臺為備份服務(wù)器(BACKUP),但是對外表現(xiàn)為一個虛擬IP,主服務(wù)器會發(fā) 送特定的消息給備份服務(wù)器,當(dāng)備份服務(wù)器收不到這個消息的時候,即主服務(wù)器宕機(jī)的時候,備份服務(wù)器就會接管虛擬IP,繼續(xù)提供服務(wù),從而保證了高可用性。
三、Flume簡介
??? Flume是Apache提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,Flume提供對數(shù)據(jù)進(jìn)行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。
?? 注:根據(jù)我們公司具體業(yè)務(wù)需求,對其進(jìn)行二次開發(fā)滿足跨國跨機(jī)房日志數(shù)據(jù)完整傳輸錄入到hadoop,同時確保高性能(tps:10k),當(dāng)前已經(jīng)有部分業(yè)務(wù)線上介入,日收集日志條數(shù)2億+(日志大小約30G)。
四、Keepalived安裝&配置
(1) keepalived依賴環(huán)境
?? yum install -y openssl-devel openssl;
?? yum install -y popt-devel;
(2) 從keepalived官網(wǎng)下載最新的版本:http://www.keepalived.org/download.html
(3) 安裝與編譯:
???? ./configrure;
? ?? make?&&?make?install
(4) 設(shè)置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? # 監(jiān)控網(wǎng)卡,要產(chǎn)生虛擬ip的網(wǎng)卡,如機(jī)器161.106內(nèi)網(wǎng)網(wǎng)卡為eth0則必須為eth0 virtual_router_id151# 這個兩臺服務(wù)器必須一樣 priority100???#權(quán)重值 MASTRE 一定要高于 BAUCKUP advert_int5 nopreempt authentication { auth_typePASS # 加密 auth_pass2222# 加密的密碼,兩臺服務(wù)器一定要一樣 } virtual_ipaddress { 192.168.161.xxx??? #VIP 地址 } track_script { chk_haproxy? # 執(zhí)行監(jiān)控的服務(wù) } } 注: keepalived主備唯一不同的是配置文件 state & priority |
五、HAProxy安裝&配置
(1) 從官網(wǎng)下載最新版本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#最大連接數(shù) user root group root uid99? gid99? daemon? #quiet? nbproc6#進(jìn)程數(shù) 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? #監(jiān)控后臺 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 #客戶端連接服務(wù)器多久沒有數(shù)據(jù)連接超時,類似與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 代表權(quán)重? inter代表檢測頻率 rise代表檢測成功多少次服務(wù)器可用 fall代表檢測失敗多少次服務(wù)器不可用 |
?
?(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`
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE 内置函数之 GREATES
- 下一篇: windows下如何github ssh