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. NuGet安装包重新安装

    Update-Package -reinstall 引用: https://docs.microsoft.com/zh-cn/nuget/consume-packages/reinstalling-a ...

  2. 关于 Apache 2.4 配置PHP时的错误记录

    1. 访问虚拟配置的站点抛出 Forbidden 403 错误 解决办法: <Directory E:/Xingzhi/Php/xingzhi.xingzhi.com/>     Opti ...

  3. Qt-vs-addin失效的问题

    Qt-vs-addin的小问题 使用Visual Studio进行Qt开发的时候,需要安装一个插件.然而有时候这个插件的一些工具却莫名其妙的失效: 其中qt5appwrapper.exe用于编辑Qt工 ...

  4. ASP.NET MVC控制器Controller

    控制器的定义 MVC模式下的控制器(Controller)主要负责响应用户的输入,并且在响应时可能的修改模型(Model). 之前的URL访问,通常是通过指定服务器的路径来实现,如访问URL:http ...

  5. 用Go语言异常机制模拟TryCatch异常捕捉1

    有的同学看到Go和TryCatch一起出现,心里可能会说,难道Go语言升级了,加入了try...catch语句.哈哈,其实Go语言从创建之初就没打算加入try...catch语句,因为创建Go的那帮大 ...

  6. 在 .pro里加入 QMAKE_CXXFLAGS += /MP 将并行编译(VC),加快编译速度(姚冬的办法),或者-j4参数(MinGW)

    但是只对VC编译器有效果. 另外还可以自己设置stdafx.h文件 http://www.zhihu.com/question/23045749 C:\Qt\Qt5.6.2_static\bin\qm ...

  7. 海康威视频监控设备Web查看系统(一):概要篇

    声明:本系列文章只提供交流与学习使用.文章中所有涉及到海康威视设备的SDK均可在海康威视官方网站下载得到.文章中所有除官方SDK意外的代码均可随意使用,任何涉及到海康威视公司利益的非正常使用由使用者自 ...

  8. jvm异常记录

    1.如果出现java.lang.OutOfMemoryError: Java heap space异常.原因:Java虚拟机的堆内存不够. 具体如下:                a.Java虚拟机 ...

  9. React躬行记(4)——生命周期

    组件的生命周期(Life Cycle)包含三个阶段:挂载(Mounting).更新(Updating)和卸载(Unmounting),在每个阶段都会有相应的回调方法(也叫钩子)可供选择,从而能更好的控 ...

  10. thinkphp5ajax分頁&&搜索後分頁

    //控制器層 //分頁 public function list_january_table(){ //設置當前頁 $page = input("post.page") ? inp ...