HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统
一、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`
HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统的更多相关文章
- 基于nginx+xxl-job+springboot高可用分布式任务调度系统
技术.原理讲解: <分布式任务调度平台XXL-JOB--源码解析一:项目介绍> <分布式任务调度平台XXL-JOB--源码解析二:基于docker搭建admin调度中心和execut ...
- Nginx(haproxy)+keepalived+Tomcat双主高可用负载均衡
周末的时候一个正在学Linux的朋友问我,高可用怎么玩?我和他微信了将近三个小时,把Nginx和haproxy双主高可用教给他了,今天突然想把这个给写进博客里,供给那些正在学习Linux系统的朋友们, ...
- Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例
前言 此示例为keepalived+nginx+tomcat的基础配置示例,某些特定配置此例中不会出现,在示例中会用到三个虚拟机:两个纯命令行用于模拟服务端配置,一个带桌面环境的用于模拟客户端访问,这 ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...
- Dubbo+zookeeper构建高可用分布式集群(二)-集群部署
在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...
- 案例一(haproxy+keepalived高可用负载均衡系统)【转】
1.搭建环境描述: 操作系统: [root@HA-1 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) 地址规划: 主机名 IP地址 集群角 ...
随机推荐
- mysql获取相隔时间段的数据
思路:为时间段内的数据进行编序号,然后计算好相隔时间,拿到id作为搜索条件 SELECT * FROM ( SELECT (@i:=@i+1) as i, id, data_send_time FRO ...
- postgresql数据库和mysql数据库的对比分析
1.Posgresql是进程模式,多进程,单线程,类似的还有Oracle.而MYSQL采用的是线程模式,单进程,多线程,对此,大家在运行数据库的时候可以查看任务管理器,SQL Server也是如此. ...
- Java9之HashMap与ConcurrentHashMap
HashMap在Java8之后就不再用link data bins了,而是转为用Treeify的bins,和之前相比,最大的不同就是利用了红黑树,所以其由 数组+链表+红黑树 组成.: * This ...
- hadoop伪分布环境快速搭建
1.首先下载一个完成已经进行简单配置好的镜像文件(hadoop,HBASE,eclipse,jdk环境已经搭建好,tomcat为7.0版本,建议更改为tomcat8.5版本,运行比较稳定). 2安装V ...
- Java进程与线程的区别
每个进程都独享一块内存空间,一个应用程序可以同时启动多个进程.比如浏览器,打开一个浏览器就相当于启动了一个进程. 线程指进程中的一个执行流程,一个进程可以包含多个线程. 每个进程都需要操作系统为其分配 ...
- python学习之旅(二)
Python基础知识(1) 一.变量 变量名可以由字母.数字.下划线任意组合而成. 注意:1.变量名不能以数字开头: 2.变量名不能为关键字: 3.变量名尽量起有意义的,能够通过变量名知道代表的是什么 ...
- kafka的一些参数
参考文档: https://blog.csdn.net/fengzheku/article/details/50585972 http://kafka.apache.org/documentation ...
- 1.7Oob 方法重载和成员变量,局部变量,构造方法
1:方法调用,如果值有参方法,必须传递实际参数. 2:方法定义了多少个参数,传递的实际参数就 必须有多少个, 方法的作用:1:描述某个类的作用,2:软件的复用 这个复用率低,作用小,价值很低: 3:
- Spark Streaming实战演练
一.spark streaming简介 Streaming是一种数据传输技术,它把客户机收到的数据变成一个稳定连续的流,源源不断的输出,使用户听到的声音和图像十分稳定,而用户在整个文件传输完成开始前就 ...
- java框架之Quartz-任务调度&整合Spring
准备 介绍 定时任务,无论是互联网公司还是传统的软件行业都是必不可少的.Quartz,它是好多优秀的定时任务开源框架的基础,使用它,我们可以使用最简单基础的配置来轻松的使用定时任务. Quartz 是 ...