OceanBase数据库ObProxy 4.2高可用负载均衡方案:Keepalived与HAProxy结合实践
目录标题
OceanBase数据库OBProxy 4.2高可用负载均衡方案:Keepalived与HAProxy结合实践
一、方案概述与架构设计
1.1 目标与价值
OceanBase数据库作为分布式关系型数据库,其代理层组件ObProxy是连接应用与数据库集群的关键桥梁。在生产环境中,确保ObProxy的高可用性和性能稳定性至关重要。本方案旨在利用开源组件Keepalived和HAProxy,构建针对ObProxy 4.2版本的高可用负载均衡解决方案,实现:
- 高可用性:消除单点故障,确保在节点故障或维护期间服务连续性
- 负载均衡:合理分配数据库连接请求,提高资源利用率
- 故障自愈:自动检测并隔离故障节点,恢复后自动纳入服务
- 性能优化:通过参数调优提升系统处理能力和响应速度
1.2 技术选型与架构原理
本方案采用Keepalived+HAProxy的组合,实现ObProxy的高可用负载均衡。这一组合的核心优势在于:
- Keepalived:基于VRRP协议实现高可用,通过虚拟IP(VIP)漂移机制,确保在主节点故障时,服务可以自动切换到备用节点
- HAProxy:提供高性能的负载均衡能力,支持多种负载均衡算法和健康检查机制
- 分工明确:Keepalived负责高可用性保障,HAProxy负责流量分发,两者结合实现完整的解决方案
部署架构图:
客户端应用
│
└───→ VIP(虚拟IP)
│
├─── HAProxy主节点(Active)
│ ├───→ ObProxy节点1
│ └───→ ObProxy节点2
│
└─── HAProxy备节点(Backup)
├───→ ObProxy节点1
└───→ ObProxy节点2
1.3 适用场景与版本要求
本方案特别适用于以下场景:
- OceanBase数据库ObProxy 4.2版本部署环境
- 需要高可用性保障的数据库访问层
- 要求快速故障检测与恢复的生产环境
- 需要对数据库连接进行负载均衡的场景
二、环境准备与组件安装
2.1 服务器配置要求
建议硬件配置:
| 组件 | CPU | 内存 | 存储 | 网络 |
|---|---|---|---|---|
| HAProxy节点 | 至少2核 | 至少4GB | 50GB以上 | 双网卡(管理+业务) |
| ObProxy节点 | 至少4核 | 至少8GB | 100GB以上 | 千兆以上 |
操作系统要求:
- CentOS 7.9/8.x或Ubuntu 18.04/20.04
- 内核参数优化(禁用NUMA、透明大页等)
2.2 软件安装与基础配置
2.2.1 安装HAProxy
在所有HAProxy节点上执行以下命令安装HAProxy:
# CentOS系统
yum install -y haproxy
# Ubuntu系统
apt-get install -y haproxy
安装完成后,建议禁用系统自带的haproxy服务:
systemctl stop haproxy
systemctl disable haproxy
2.2.2 安装Keepalived
在所有HAProxy节点上执行以下命令安装Keepalived:
# CentOS系统
yum install -y keepalived
# Ubuntu系统
apt-get install -y keepalived
2.2.3 安装ObProxy 4.2
按照OceanBase官方文档安装ObProxy 4.2版本,确保ObProxy正常运行并连接到OceanBase集群。
关键配置参数:
- 监听端口:默认2883
- 连接OceanBase集群参数
- 认证信息配置
2.3 系统环境优化
在所有服务器上进行以下系统优化:
- 禁用防火墙:
systemctl stop firewalld
systemctl disable firewalld
- 禁用SELinux:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
- 禁用透明大页:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
- 禁用NUMA:
grubby --update-kernel=ALL --args="numa=off"
- 系统参数优化:
cat >> /etc/sysctl.conf << EOF
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_synack_retries = 2
EOF
sysctl -p
三、HAProxy配置详解
3.1 HAProxy配置结构概述
HAProxy配置文件通常分为以下几个主要部分:
- global:全局参数,影响整体运行环境
- defaults:默认参数,可被其他部分继承
- frontend:前端配置,定义如何接收客户端请求
- backend:后端配置,定义如何将请求转发给后端服务器
- listen:复合配置,可同时定义前端和后端
对于ObProxy高可用负载均衡场景,主要关注frontend和backend部分的配置。
3.2 基础配置示例
以下是针对ObProxy 4.2的HAProxy基础配置示例:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
maxconn 40000
tune.ssl.default-dh-param 2048
defaults
log global
mode tcp
option tcplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend obproxy-frontend
bind *:2883
default_backend obproxy-backend
backend obproxy-backend
balance leastconn
option tcp-check
tcp-check connect port 2883
tcp-check send "show status"
tcp-check expect string "OK"
server obproxy1 192.168.1.10:2883 check inter 2000 rise 2 fall 3
server obproxy2 192.168.1.11:2883 check inter 2000 rise 2 fall 3
server obproxy3 192.168.1.12:2883 check inter 2000 rise 2 fall 3
3.3 关键配置参数详解
3.3.1 global部分关键参数
- log:配置日志输出,便于监控和故障排查
- chroot:设置chroot环境,增强安全性
- stats socket:配置管理接口,便于监控和动态调整
- maxconn:设置最大并发连接数
- daemon:以守护进程方式运行
3.3.2 defaults部分关键参数
- mode tcp:使用TCP模式,适合数据库代理
- option tcplog:启用TCP日志记录
- option dontlognull:不记录空日志
- timeout connect:连接超时时间
- timeout client:客户端超时时间
- timeout server:服务器端超时时间
3.3.3 frontend部分关键参数
- *bind :2883:绑定到2883端口,与ObProxy默认端口一致
- default_backend obproxy-backend:指定默认后端服务器组
3.3.4 backend部分关键参数
- balance leastconn:使用最小连接数算法进行负载均衡
- option tcp-check:启用TCP健康检查
- tcp-check connect port 2883:检查ObProxy服务端口
- tcp-check send/show status/:发送特定命令检查服务状态
- tcp-check expect string OK:期望收到"OK"响应
- server obproxy1 192.168.1.10:2883:定义ObProxy服务器地址和端口
- check inter 2000:健康检查间隔2秒
- rise 2:连续2次成功则标记为可用
- fall 3:连续3次失败则标记为不可用
3.4 高级配置选项
根据实际需求,可以考虑添加以下高级配置选项:
- 会话保持:
stick-table type ip size 10m expire 30m
stick on src
- 连接限制:
maxconn 1000
option redispatch
- 慢启动:
server obproxy1 192.168.1.10:2883 check inter 2000 rise 2 fall 3 slowstart 30s
- 权重配置:
server obproxy1 192.168.1.10:2883 weight 100 check inter 2000 rise 2 fall 3
server obproxy2 192.168.1.11:2883 weight 80 check inter 2000 rise 2 fall 3
- HTTP监控界面:
listen stats
bind *:1080
mode http
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats uri /haproxy?stats
stats realm Haproxy\ Statistics
stats auth admin:password
四、Keepalived配置详解
4.1 Keepalived配置结构概述
Keepalived配置文件主要分为以下几个部分:
- global_defs:全局定义,包含全局参数
- vrrp_instance:VRRP实例配置,定义虚拟路由器
- virtual_server:虚拟服务器配置(非必需)
- vrrp_script:自定义脚本配置
对于ObProxy高可用负载均衡场景,主要关注vrrp_instance和vrrp_script部分的配置。
4.2 基础配置示例
以下是Keepalived的基础配置示例:
global_defs {
router_id OB_PROXY_HA
}
vrrp_script check_haproxy {
script "pidof haproxy > /dev/null"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.1.200/24
}
track_script {
check_haproxy
}
notify_master "/etc/keepalived/notify_master.sh"
notify_backup "/etc/keepalived/notify_backup.sh"
notify_fault "/etc/keepalived/notify_fault.sh"
}
4.3 关键配置参数详解
4.3.1 global_defs部分关键参数
- router_id:唯一标识,用于日志记录
4.3.2 vrrp_script部分关键参数
- script:执行的脚本命令,检查HAProxy进程是否存在
- interval:检查间隔时间
- weight:权重,影响优先级
4.3.3 vrrp_instance部分关键参数
- state MASTER/BACKUP:主节点或备用节点状态
- interface eth0:绑定的网络接口
- virtual_router_id 51:虚拟路由器ID,必须一致
- priority 100:优先级,数值越大优先级越高
- advert_int 1:通告间隔时间(秒)
- authentication:认证配置
- virtual_ipaddress:虚拟IP地址
- track_script:关联健康检查脚本
- notify_master/notify_backup/notify_fault:状态变化时执行的脚本
4.4 健康检查脚本
为了确保HAProxy和ObProxy的健康状态,需要编写自定义健康检查脚本。以下是几个关键脚本示例:
4.4.1 检查HAProxy状态脚本
#!/bin/bash
# 检查HAProxy进程是否存在
if ! pgrep haproxy > /dev/null; then
exit 1
fi
# 检查HAProxy是否能正常处理请求
echo -e "show info\nquit" | socat stdio /var/lib/haproxy/stats 2>/dev/null | grep -q "status: UP"
if [ $? -ne 0 ]; then
exit 1
fi
exit 0
4.4.2 检查ObProxy状态脚本
#!/bin/bash
# 检查ObProxy是否能正常响应
echo -e "show status\nquit" | socat stdio /var/lib/haproxy/stats 2>/dev/null | grep -q "OK"
if [ $? -ne 0 ]; then
exit 1
fi
exit 0
4.4.3 通知脚本示例
#!/bin/bash
# 主节点状态通知脚本
echo "`date`: Entering master state" >> /var/log/keepalived_notify.log
#!/bin/bash
# 备用节点状态通知脚本
echo "`date`: Entering backup state" >> /var/log/keepalived_notify.log
#!/bin/bash
# 故障状态通知脚本
echo "`date`: Fault detected" >> /var/log/keepalived_notify.log
五、高可用负载均衡关键机制
5.1 故障检测机制
在Keepalived+HAProxy+ObProxy架构中,存在多层故障检测机制:
5.1.1 HAProxy对ObProxy的健康检查
HAProxy通过TCP健康检查机制定期检测ObProxy节点的状态:
- TCP连接检查:尝试连接ObProxy的服务端口
- 命令响应检查:发送特定命令(如"show status")并验证响应
- 心跳间隔:每2秒检查一次(可配置)
- 健康阈值:连续3次失败标记为不可用,连续2次成功标记为可用
这种机制确保HAProxy能够及时发现ObProxy节点的异常,并将请求转发到健康的节点上。
5.1.2 Keepalived对HAProxy的健康检查
Keepalived通过自定义脚本定期检查HAProxy的状态:
- 进程检查:确保HAProxy进程正在运行
- 服务检查:验证HAProxy是否能正常处理请求
- 状态变化通知:当HAProxy状态变化时触发相应操作
这种机制确保即使HAProxy本身出现故障,系统也能快速切换到备用节点。
5.1.3 综合检测策略
为了提高系统的可靠性,可以实施多级检测策略:
- 初级检测:HAProxy检测ObProxy的服务状态
- 次级检测:Keepalived检测HAProxy的运行状态
- 高级检测:独立监控系统定期检查整体架构的健康状态
5.2 故障切换机制
5.2.1 主备切换流程
当主节点出现故障时,系统将按以下流程进行切换:
- 故障检测:HAProxy检测到ObProxy节点故障,将其标记为不可用
- 健康检查:Keepalived检测到HAProxy异常,降低其优先级
- VRRP协商:备用节点检测到主节点优先级降低,发起VRRP协商
- VIP漂移:虚拟IP地址从故障节点漂移到备用节点
- 服务恢复:备用节点接管服务,客户端请求被转发到新的主节点
整个过程通常在秒级内完成,确保服务的连续性。
5.2.2 自动恢复机制
当故障节点恢复正常后,系统将按以下流程自动恢复:
- 健康检测:HAProxy检测到恢复的ObProxy节点响应正常
- 状态更新:HAProxy将恢复的节点重新加入可用节点列表
- 优先级调整:Keepalived检测到HAProxy恢复正常,恢复其优先级
- VRRP协商:原主节点恢复后,可能重新协商成为主节点(取决于配置)
- VIP回归:如果配置了抢占模式,虚拟IP可能漂移回原主节点
5.2.3 无状态切换保障
为确保故障切换过程中不丢失连接和请求,系统设计遵循以下原则:
- 无状态设计:HAProxy和ObProxy均采用无状态设计,不保存会话状态
- 连接池管理:客户端应使用连接池,并设置合理的连接超时时间
- 重试机制:客户端应具备自动重试机制,处理短暂的连接中断
- 优雅停机:在计划内停机时,应使用优雅停机机制,确保当前请求处理完成
5.3 负载均衡策略
HAProxy提供多种负载均衡算法,适用于不同的场景:
5.3.1 常用负载均衡算法
- 轮询(Round Robin):按顺序分配请求,适用于服务器性能相近的场景
- 最小连接数(Least Connections):将请求分配给当前连接数最少的服务器
- 源地址哈希(Source IP Hash):根据客户端IP地址进行哈希分配,实现会话保持
- URI哈希(URI Hash):根据请求的URI进行哈希分配,适用于缓存场景
- 加权轮询(Weighted Round Robin):根据服务器权重分配请求,适用于服务器性能不同的场景
对于ObProxy 4.2场景,最小连接数算法通常是最佳选择,因为它能根据实际负载动态分配请求。
5.3.2 动态负载均衡调整
HAProxy支持通过管理接口动态调整负载均衡策略:
- 动态权重调整:可以根据服务器的实时性能调整权重
- 服务器上下线:可以动态将服务器标记为维护状态或恢复服务
- 连接限制调整:可以动态调整服务器的最大连接数
这些功能可以通过HAProxy的管理接口或第三方监控系统实现。
5.3.3 会话保持策略
对于需要保持会话的场景,可以采用以下策略:
- 基于源IP的会话保持:将同一客户端的请求始终路由到同一服务器
- 基于Cookie的会话保持:在HTTP环境下,可以使用Cookie实现会话保持
- 基于特定参数的会话保持:根据请求中的特定参数进行哈希分配
对于数据库访问场景,会话保持通常不是必需的,因为数据库连接本身是无状态的。
六、性能优化建议
6.1 HAProxy性能调优
6.1.1 连接相关参数优化
- 调整最大连接数:根据服务器性能和预期负载调整maxconn参数
- 优化超时时间:
- timeout connect: 5000ms(默认)
- timeout client: 50000ms(默认)
- timeout server: 50000ms(默认)
- 启用TCP快速打开:对于支持的客户端,可以启用TCP快速打开
6.1.2 日志优化
- 合理配置日志级别:生产环境建议使用notice级别
- 使用异步日志:减少日志写入对性能的影响
- 远程日志服务器:将日志发送到专用日志服务器,减轻主服务器负担
6.1.3 算法优化
- 选择合适的负载均衡算法:对于数据库场景,leastconn通常优于roundrobin
- 调整连接队列长度:根据服务器处理能力调整backlog参数
- 启用TCP缓冲:适当调整tcp-buffer-size参数,优化数据传输效率
6.2 Keepalived性能调优
6.2.1 VRRP参数优化
- 调整通告间隔:默认1秒,可以根据网络环境适当调整
- 优化优先级:根据服务器性能设置合理的优先级
- 启用抢占模式:根据需求决定是否启用抢占模式
6.2.2 健康检查优化
- 减少检查开销:优化健康检查脚本,减少资源消耗
- 调整检查频率:根据系统稳定性调整检查频率
- 异步检查:使用异步检查方式,减少对主线程的影响
6.3 ObProxy性能优化
6.3.1 ObProxy配置优化
- 调整连接池大小:根据负载调整ObProxy的连接池大小
- 优化线程池配置:根据CPU核心数调整线程池大小
- 启用查询缓存:对于重复执行的查询,启用查询缓存
6.3.2 数据库连接优化
- 合理设置连接超时:根据业务需求设置合理的连接超时时间
- 优化SQL执行计划:确保数据库查询使用最优执行计划
- 使用批量操作:尽可能使用批量操作,减少数据库交互次数
6.4 系统资源优化
6.4.1 CPU资源优化
- 绑定CPU核心:将HAProxy和ObProxy进程绑定到特定CPU核心
- 调整优先级:提高关键进程的优先级
- 避免上下文切换:减少不必要的后台进程,降低CPU竞争
6.4.2 内存资源优化
- 调整缓存大小:根据可用内存调整缓存大小
- 避免内存碎片:定期重启服务,减少内存碎片
- 使用大页内存:对于内存使用量大的应用,可以考虑使用大页内存
6.4.3 网络资源优化
- 调整MTU值:根据网络环境调整MTU值,优化网络传输效率
- 启用TCP快速重传:优化TCP重传策略
- 调整TCP窗口大小:根据网络带宽和延迟调整TCP窗口大小
6.5 监控与调优策略
6.5.1 监控指标设置
建议监控以下关键指标:
-
HAProxy指标:
- 连接数
- 请求处理速率
- 错误率
- 服务器状态
-
Keepalived指标:
- VRRP状态
- 优先级变化
- 故障切换次数
-
ObProxy指标:
- 连接池使用情况
- 请求处理时间
- 错误率
- SQL执行统计
6.5.2 性能调优流程
- 基准测试:在系统部署初期进行基准测试,建立性能基线
- 压力测试:在模拟生产负载下测试系统性能
- 监控分析:持续监控系统性能指标
- 参数调整:根据监控数据调整系统参数
- 效果验证:验证调整后的效果,必要时进行回滚
七、部署与验证流程
7.1 部署前准备
在正式部署前,需要完成以下准备工作:
- 服务器准备:按照第2章的要求配置服务器环境
- 软件安装:安装HAProxy、Keepalived和ObProxy
- 配置文件准备:准备好HAProxy和Keepalived的配置文件
- 脚本准备:准备好健康检查和通知脚本
- 权限设置:确保所有脚本和配置文件具有正确的权限
7.2 部署流程
建议按照以下流程进行部署:
- 部署ObProxy集群:确保ObProxy集群正常运行并连接到OceanBase数据库
- 配置HAProxy:在所有HAProxy节点上部署HAProxy配置
- 配置Keepalived:在所有HAProxy节点上部署Keepalived配置
- 配置监控系统:部署监控系统,监控HAProxy、Keepalived和ObProxy的状态
- 测试故障切换:进行故障切换测试,确保系统能正常工作
7.3 验证方法
7.3.1 基础功能验证
- 连接测试:使用数据库客户端连接虚拟IP,验证能否正常连接
- 负载均衡验证:发送多个请求,验证请求是否均匀分布到不同的ObProxy节点
- 健康检查验证:检查HAProxy管理界面,确认所有ObProxy节点状态正常
7.3.2 高可用验证
- 模拟ObProxy故障:停止一个ObProxy实例,验证HAProxy是否能自动将其标记为不可用
- 模拟HAProxy故障:停止主节点的HAProxy服务,验证VIP是否漂移到备用节点
- 模拟节点重启:重启一个HAProxy节点,验证服务是否能快速恢复
- 验证自动恢复:恢复故障组件,验证系统是否能自动恢复正常状态
7.3.3 性能验证
- 压力测试:使用数据库压力测试工具测试系统性能
- 性能指标监控:监控关键性能指标,确保系统在高负载下稳定运行
- 故障恢复性能:测试故障恢复过程中的性能影响
八、运维管理建议
8.1 日常维护
- 定期检查:定期检查系统状态,包括HAProxy、Keepalived和ObProxy的运行状态
- 日志分析:定期分析系统日志,及时发现潜在问题
- 配置备份:定期备份HAProxy和Keepalived的配置文件
- 软件更新:及时更新系统软件和安全补丁
- 资源监控:监控系统资源使用情况,确保资源充足
8.2 故障处理流程
- 故障识别:通过监控系统及时发现故障
- 故障定位:快速定位故障点,区分是HAProxy、Keepalived还是ObProxy的问题
- 故障隔离:必要时手动隔离故障组件
- 故障恢复:根据故障类型采取相应的恢复措施
- 故障分析:故障恢复后进行故障分析,制定预防措施
8.3 监控与报警策略
- 关键指标监控:监控HAProxy、Keepalived和ObProxy的关键指标
- 多级报警:设置多级报警阈值,根据严重程度采取不同的通知方式
- 报警收敛:避免同一故障产生大量重复报警
- 故障自愈:对于常见故障,实现自动恢复机制
- 报警响应:建立明确的报警响应流程和责任机制
8.4 应急预案
- 紧急恢复流程:制定详细的紧急恢复流程,确保在紧急情况下能快速恢复服务
- 备用设备准备:准备必要的备用设备,以便在硬件故障时快速替换
- 数据备份策略:确保关键配置和数据有可靠的备份
- 应急预案演练:定期进行应急预案演练,确保团队熟悉应急流程
- 与厂商支持协调:与OceanBase和HAProxy厂商建立支持渠道,在必要时获取专业支持
九、总结与扩展方向
9.1 方案优势总结
本方案通过Keepalived和HAProxy的结合,为ObProxy 4.2提供了可靠的高可用负载均衡解决方案:
- 高可用性:通过VRRP协议实现虚拟IP漂移,确保单点故障不影响服务
- 负载均衡:多种负载均衡算法可选,适应不同的负载场景
- 故障检测:多层级的故障检测机制,确保及时发现和处理异常
- 性能优化:通过参数调优和策略优化,提升系统整体性能
- 可扩展性:架构设计灵活,易于扩展和调整
9.2 扩展方向
基于本方案,可以考虑以下扩展方向:
- 多数据中心容灾:扩展方案,支持跨数据中心的高可用性
- 智能负载均衡:结合AI技术,实现更智能的负载均衡策略
- 自动化运维:开发自动化运维工具,简化系统管理
- 安全增强:增加安全层,保护数据库访问安全
- 性能优化:持续优化系统性能,满足不断增长的业务需求
通过本方案的实施,可以为OceanBase数据库ObProxy 4.2构建一个稳定、高效、可靠的高可用负载均衡平台,为企业关键业务提供坚实的基础支撑。
附录:配置文件完整示例
HAProxy完整配置示例
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
maxconn 40000
tune.ssl.default-dh-param 2048
defaults
log global
mode tcp
option tcplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend obproxy-frontend
bind *:2883
default_backend obproxy-backend
backend obproxy-backend
balance leastconn
option tcp-check
tcp-check connect port 2883
tcp-check send "show status"
tcp-check expect string "OK"
server obproxy1 192.168.1.10:2883 check inter 2000 rise 2 fall 3
server obproxy2 192.168.1.11:2883 check inter 2000 rise 2 fall 3
server obproxy3 192.168.1.12:2883 check inter 2000 rise 2 fall 3
listen stats
bind *:1080
mode http
stats enable
stats hide-version
stats refresh 30s
stats uri /haproxy?stats
stats realm Haproxy\ Statistics
stats auth admin:password
Keepalived完整配置示例
global_defs {
router_id OB_PROXY_HA
}
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2
}
vrrp_script check_obproxy {
script "/etc/keepalived/check_obproxy.sh"
interval 5
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.1.200/24
}
track_script {
check_haproxy
check_obproxy
}
notify_master "/etc/keepalived/notify_master.sh"
notify_backup "/etc/keepalived/notify_backup.sh"
notify_fault "/etc/keepalived/notify_fault.sh"
}
内容由 AI 生成
更多推荐

所有评论(0)