首页 > 数据库 >haproxy代理mysql

haproxy代理mysql

时间:2022-10-24 23:31:48浏览次数:47  
标签:haproxy stats log 代理 rsyslog mysql var

背景

在做mysql集群的时候需要一个负载均衡解决方案,以便流量可以按照需求传给mysql各个节点,以下主要记录haproxy的配置

安装mysql(略)

创建haproxy用户

create user if not exists 'haproxy'@'%' identified with mysql_native_password by '';
grant all privileges on *.* to 'haproxy'@'%';
flush privileges;

PS:如果是Mysql8需要使用mysql_native_password加密方法,否则会报错

安装haproxy

yum install haproxy

配置haproxy

vi /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2 err

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    maxconn 4096 #默认的最大连接数
    timeout connect 5000ms #连接超时
    timeout client 30000ms #客户端超时
    timeout server 30000ms #服务器超时
#timeout check 2000 #=心跳检测超时
    log 127.0.0.1 local2 err #[err warning info debug]
listen  admin_status
        bind 0.0.0.0:82           #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称
        mode http                 #设置http的7 层模式层
        option httpclose
        stats refresh 30s          #设置监控页面刷新时间:5s
        stats uri  /   # 设置监控页面的url
        stats realm Haproxy Statistics #设置页面提示信息
        stats auth admin:admin     #设置监控页面的用户和密码:admin,可以设置多个用户名
        stats hide-version         #隐藏统计页面的HAproxy版本信息
listen proxy-mysql
       bind *:3307 #监听端口
       mode tcp  #监听模式
       balance roundrobin #负载均衡方式为轮循
       option tcplog
       option mysql-check user haproxy #haproxy为免密Mysql用户
       server MySQL_1 10.10.10.103:3306 check weight 1 maxconn 2000   #后端服务器1
       server MySQL_2 10.10.10.103:23306 check weight 1 maxconn 2000   #后端服务器2

配置rsyslog

将haproxy错误日志写入rsyslog指定的目录

cd /var/log  
mkdir haproxy  
cd haproxy  
touch haproxy.log  
chmod a+w haproxy.log 
vi /etc/rsyslog.conf
添加
local2.*                       /var/log/haproxy/haproxy.log
将以下两行取消注释
$ModLoad imudp
$UDPServerRun 514
vi /etc/sysconfig/rsyslog
修改成
SYSLOGD_OPTIONS="-r -m 2 -c 2"

重启rsyslog和haproxy

systemctl restart rsyslog
systemctl restart haproxy

查看效果

访问浏览器82端口查看监控状态,可以看到两个均为已上线 image.png 使用navicat连接也可以看到不同的连接次数会连接到不同的后端

标签:haproxy,stats,log,代理,rsyslog,mysql,var
From: https://blog.51cto.com/riverxyz/5791506

相关文章

  • 代理模式
    packageJiekou;/***@authorliu$*@version1.0*@description:TODO*@date$$*///被代理类对象不调方法,把对象放到代理类里面调方法publicclassdaili{pub......
  • 20-20-DNS&CDN&反向代理实践课_ev
                     ......
  • react是如何实现事件代理的
    _版本:v18.2.0本文为我花了大半年的时间潜心研究所写,转载请注明出处,谢谢react是如何实现事件代理的createRoot函数**用户在index.tsx中执行ReactDOM.createRoot创建roo......
  • leetcode刷题MySQL题解十八
    leetcode刷题MySQL题解十八题目叙述Views表:±--------------±--------+|ColumnName|Type|±--------------±--------+|article_id|int||author_id|int|......
  • leetcode刷题MySQL题解十五
    leetcode刷题MySQL题解十五题目叙述Employee表:±------------±-----+|ColumnName|Type|±------------±-----+|id|int||salary|int|±------------±......
  • leetcode刷题MySQL题解十三
    leetcode刷题MySQL题解十三题目叙述表:Products±------------±--------+|ColumnName|Type|±------------±--------+|product_id|int||store1|int||st......
  • leetcode刷题MySQL题解十四
    leetcode刷题MySQL题解十四题目叙述给定一个表tree,id是树节点的编号,p_id是它父节点的id。±—±-----+|id|p_id|±—±-----+|1|null||2|1||3|1......
  • leetcode刷题MySQL题解十二
    leetcode刷题MySQL题解十二题目叙述表:Employees±------------±--------+|ColumnName|Type|±------------±--------+|employee_id|int||name|varchar......
  • leetcode刷题MySQL题解十一
    leetcode刷题MySQL题解十一题目叙述表:Weather±--------------±--------+|ColumnName|Type|±--------------±--------+|id|int||recordDate|date||t......
  • leetcode刷题MySQL题解九
    leetcode刷题MySQL题解九题目叙述表Activities:±------------±--------+|列名|类型|±------------±--------+|sell_date|date||product|varchar|±---......