HAProxy + Keepalived + Flume 構建高性能高可用分布式日志系統

jopen 11年前發布 | 31K 次閱讀 分布式/云計算/大數據 HAproxy

一、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`

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!