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

1、HAProxy簡介

    HAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代 理,支持虛擬主機,它是免費、快速而且可靠的一種解決方案。HAProxy特別適用於那些負載特大的web站點,這些站點一般又須要會話保持或七層處理。 HAProxy運行在當前的硬件上,徹底能夠支持數以萬計的併發鏈接。而且它的運行模式使得它能夠很簡單安全的整合進您當前的架構中, 同時能夠保護你的web服務器不被暴露到網絡上。 html

2、Keepalived簡介

    它是一個基於VRRP協議來實現的WEB服務高可用方案,能夠利用其來避免單點故障。一個WEB服務至少會 有2臺服務器運行Keepalived,一臺爲主服務器(MASTER),一臺爲備份服務器(BACKUP),可是對外表現爲一個虛擬IP,主服務器會發 送特定的消息給備份服務器,當備份服務器收不到這個消息的時候,即主服務器宕機的時候,備份服務器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。 linux

3、Flume簡介

    Flume是Apache提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各種數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各類數據接受方(可定製)的能力。 web

   注:根據咱們公司具體業務需求,對其進行二次開發知足跨國跨機房日誌數據完整傳輸錄入到hadoop,同時確保高性能(tps:10k),當前已經有部分業務線上介入,日收集日誌條數2億+(日誌大小約30G)。 redis

ps: 美團的flume架構&優化供參考安全

http://tech.meituan.com/mt-log-system-arch.html服務器

http://tech.meituan.com/mt-log-system-optimization.html網絡

4、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/keepalived

[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

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

相關文章
相關標籤/搜索