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`

相关文章
相关标签/搜索