HAproxy+Keepalived实现高可用

说明:
HA1:HAproxy+Keepalived(master)
HA2:HAproxy+Keepalived(backup) 1.HA1上keepalived的配置:
# Configuration File for keepalived
global_defs {
notification_email
{
from@email.com
}
notification_email_from alert@email.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
} vrrp_script chk_haproxy {
script "/usr/local/keepalived/scripts/chk_haproxy.sh"
interval 2
weight 2
} vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 105
priority 151
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass xxx
}
track_interface {
eth0
eth1
}
track_script {
chk_haproxy
}
virtual_ipaddress {
xxx.xxx.xxx.xxx
}
notify "/usr/local/keepalived/scripts/alarm.bash"
} 2.HA2上keepalived的配置:
# Configuration File for keepalived
global_defs {
notification_email
{
from@email.com
}
notification_email_from alert@email.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
} vrrp_script chk_haproxy {
script "/usr/local/keepalived/scripts/chk_haproxy.sh"
interval 2
weight 2
} vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 105
priority 141
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass xxx
}
track_interface {
eth0
eth1
}
track_script {
chk_haproxy
}
virtual_ipaddress {
xxx.xxx.xxx.xxx
}
notify "/usr/local/keepalived/scripts/alarm.bash"
} 3.HA1和HA2上haproxy的配置:
# this config needs haproxy-1.1.28 or haproxy-1.2.1 global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
user haproxy
group haproxy
daemon
#debug
#quiet defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000 listen fabuqi 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin
server real_server1 rs1_ip:80 cookie app1inst1 check inter 1000 rise 2 fall 5
server real_server2 rs2_ip:80 cookie app1inst2 check inter 1000 rise 2 fall 5
server real_server3 rs3_ip:80 cookie app1inst3 check inter 1000 rise 2 fall 5 backup listen fabuqi_ssl 0.0.0.0:443
mode tcp # 只代理需要用tcp模式,没有cookie的设置
balance roundrobin
server real_server1 10.20.172.131:443 check inter 1000 rise 2 fall 5
server real_server2 10.21.180.145:443 check inter 1000 rise 2 fall 5
server real_server3 10.26.2.184:443 check inter 1000 rise 2 fall 5 backup listen stats 0.0.0.0:1080 #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称
mode http #http的7层模式
option httplog #采用http日志格式
#log 127.0.0.1 local0 err #错误日志记录
maxconn 5 #默认的最大连接数
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm XingCloud\ Haproxy #统计页面密码框上提示文本
stats auth admin:xxx #设置监控页面的用户和密码:admin,可以设置多个用户名
#stats auth Frank:xxx #设置监控页面的用户和密码:Frank
stats hide-version #隐藏统计页面上HAProxy的版本信息
stats admin if TRUE 4.keepalived监控haproxy脚本:
#!/bin/bash if [[ `ps -C haproxy --no-header | wc -l` -eq 0 ]]; then
echo [`date`] "haproxy not running,attempt to start up." >> /usr/local/keepalived/logs/chk_haproxy.log 2>&1
haproxy -f /etc/haproxy/haproxy.cfg
sleep 3
if [[ `ps -C haproxy --no-header | wc -l` -eq 0 ]]; then
/etc/init.d/keepalived stop
echo [`date`] "haproxy start failure,stop keepalived." >> /usr/local/keepalived/logs/chk_haproxy.log 2>&1
else
echo [`date`] "haproxy started success." >> /usr/local/keepalived/logs/chk_haproxy.log 2>&1
fi
fi 5.配置haproxy日志:
1)syslog-ng的配置:
# vim /etc/syslog-ng/syslog-ng.conf
# 在文件最后添加以下配置
source src_haproxy { udp(ip("0.0.0.0") port(514)); };
filter f_local03 { facility(local0,local3); };
filter custom { program("haproxy"); };
destination dst_haproxy { file("/var/log/haproxy.log"); };
log { source(src_haproxy); filter(f_local03); destination(dst_haproxy); };
log { source(src_haproxy); filter(custom); destination(dst_haproxy); };
# service syslog-ng restart
2)syslog的配置:
# vim /etc/syslog.d/haproxy.conf
local3.* /var/log/haproxy.log
local0. /var/log/haproxy.log
&~ #不打印到/var/log/message中
# vim /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-r -m 0"
# service syslog restart
3)日志分割和清理脚本:
# cat /usr/local/haproxy/sbin/cut_haproxy_log.sh
#!/bin/bash
# This script run at 00:00
# crontab -e
# 00 00 * * * /usr/local/haproxy/sbin/cut_haproxy_log.sh >/dev/null 2>&1 # The haproxy log path
LOGPATH="/data/logs/haproxy" [[ -z `ps aux | grep sbin/haproxy | grep -v grep` ]] && exit 1
mv ${LOGPATH}/haproxy.log ${LOGPATH}/haproxy_$(date -d "yesterday" +"%Y-%m-%d").log
rm -f ${LOGPATH}/haproxy_$(date -d "10 days ago" +"%Y-%m-%d").log
/sbin/service syslog restart
# chmod +x /usr/local/haproxy/sbin/cut_haproxy_log.sh

  

HAproxy+Keepalived实现高可用的更多相关文章

  1. haproxy+keepalived实现高可用负载均衡

    软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...

  2. haproxy+keepalived实现高可用负载均衡(转)

      软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. ...

  3. HaProxy+Keepalived+Mycat高可用群集配置

    概述 本章节主要介绍配置HaProxy+Keepalived高可用群集,Mycat的配置就不在这里做介绍,可以参考我前面写的几篇关于Mycat的文章. 部署图: 配置  HaProxy安装 181和1 ...

  4. rabbitmq+haproxy+keepalived实现高可用集群搭建

    项目需要搭建rabbitmq的高可用集群,最近在学习搭建过程,在这里记录下可以跟大家一起互相交流(这里只是记录了学习之后自己的搭建过程,许多原理的东西没有细说). 搭建环境 CentOS7 64位 R ...

  5. MySQL之Haproxy+Keepalived+MySQL高可用均衡负载部署 (网络摘抄)

    来源于:https://blog.csdn.net/weisong530624687/article/details/71536837?utm_source=blogxgwz3 一.安装主从MySQL ...

  6. haproxy + keepalived 实现高可用负载均衡集群

    1. 首先准备两台tomcat机器,作为集群的单点server. 第一台: 1)tomcat,需要Java的支持,所以同样要安装Java环境. 安装非常简单. tar xf  jdk-7u65-lin ...

  7. CentOS7 haproxy+keepalived实现高可用集群搭建

    一.搭建环境 CentOS7 64位 Keepalived 1.3.5 Haproxy 1.5.18 后端负载主机:192.168.166.21 192.168.166.22 两台节点上安装rabbi ...

  8. HAProxy & Keepalived L4-L7 高可用负载均衡解决方案

    目录 文章目录 目录 HAProxy 负载均衡器 应用特性 性能优势 会话保持 健康检查 配置文件 负载均衡策略 ACL 规则 Web 监控平台 Keepalived 虚拟路由器 核心组件 VRRP ...

  9. haproxy + keepalived + mycat 高可用与负载均衡集群配置 centos7

    架构如上,但是其实keepalived.haproxy.Mycat都可以多台(比如keepalived.haproxy.Mycat各3台,3台keepalived抢占vip,然后抢到vip的hapro ...

随机推荐

  1. C# 中使用OPenCV(Emgu)心得

    原文:C# 中使用OPenCV(Emgu)心得 首先介绍一下自己的情况,2010年的3月份开始接触学习C#编程,之前C#和OpenCV都是零基础,由于全都是自学进度比较慢,中间也走了不少弯路.进过三个 ...

  2. Android零基础入门第84节:引入Fragment原来是这么回事

    随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备.Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不同 ...

  3. Raknet是一个基于UDP网络传输协议的C++网络库(还有一些其它库,比如nanomsg,fastsocket等等)

    Raknet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务.通常情况下用于游戏,但也可以用于其它项目. Raknet有以下好处: 高性能 在同一台计算机 ...

  4. 基于 libevent 开发的 C++ 11 高性能网络服务器 evpp(360的作品)

    evpp是一个基于libevent开发的现代化C++11高性能网络服务器,自带TCP/UDP/HTTP等协议的异步非阻塞式的服务器和客户端库. 特性: 现代版的C++11接口 非阻塞异步接口都是C++ ...

  5. QtZint编译过程记录(要使用 QTMAKE_CFLAGS += /TP 参数)

    1,下载zint后,在zint-2.4.3\win32\vcx目录下找到zlib.props和libpng.props文件,分别改为zlib和libpng的源码目录.这2个开源库最好是找工程中使用的版 ...

  6. 三个臭皮匠,顶上一个诸葛亮——在Google Ideathon上Design Thinking分享

    4月26日很荣幸的被邀请参加Google Ideathon做Design Thinking的分享. 这次主要分享了Design Thinking的基本方法流程,以及在真实项目的运用.现在整理一下当时选 ...

  7. QT使用MySql的配置(使用addLibraryPath载入插件),编译QT的MySql驱动问题及解决方案(自己使用libmysql.lib进行编译mysql.pro,万不得已可以查看Makefile.Debug以解决问题)

    2010/04/23:Fixes : 更新批处理,以兼容WIN7. 第一次系统地玩QT,于是诞生了此预备式: [QT版本4.6.0(VS2008编译版),开发平台推荐使用Qt Creator(最新1. ...

  8. python实现常用查找算法

    http://www.cnblogs.com/feixuelove1009/p/6148357.html

  9. 接口和抽象类是否继承了Object

    我们先看一下Java的帮助文档对于Object的描述: Class Object is the root of the class hierarchy. Every class has Object ...

  10. springboot中加分布式redis锁

    分布式redis锁,spring-boot-starter-data-redis,RedisTemplate 公司聊天的聊天系统,近期出现多个客服并发接待同一个客户的记录,经排查,是由于代码加的同步锁 ...