Haproxy-配置7层探活,监控上看不到有效的server

如题,配置了7层探活后,监控页面上两个server都是down的状态
增加配置:【ption mysql-check user haproxy post-41】,去掉这个配置就能识别server
配置如下:

global
    log         127.0.0.1 local0
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    nbproc      20   # 启动多个线程转发请求
    daemon

    stats socket /var/lib/haproxy/stats

defaults
    log                     global
    retries                 2
    timeout connect         2s
    timeout client          30000s
    timeout server          30000s

listen admin_stats                         # frontend 和 backend 的组合体,监控组的名称,按需自定义名称
   bind 0.0.0.0:8080                       # 配置监听端口
   mode http                               # 配置监控运行的模式,此处为 `http` 模式
   option httplog                          # 表示开始启用记录 HTTP 请求的日志功能
   maxconn 10                              # 最大并发连接数
   stats refresh 30s                       # 配置每隔 30 秒自动刷新监控页面
   stats uri /haproxy                      # 配置监控页面的 URL
   stats realm HAProxy                     # 配置监控页面的提示信息
   stats auth abc:abc                  # 配置监控页面的用户和密码 admin,可以设置多个用户名
   stats hide-version                      # 配置隐藏统计页面上的 HAProxy 版本信息
   stats  admin if TRUE                    # 配置手工启用/禁用,后端服务器(HAProxy-1.4.9 以后版本)


listen tidb-cluster
   bind 0.0.0.0:3306
   mode tcp                   
   balance leastconn                       
   option mysql-check user haproxy post-41
   server db157 10.10.10.11:4000 check inter 2000 rise 2 fall 3       # 检测 4000 端口,检测频率为 2000 毫秒。如果检测出 2 次正常就认定机器已恢复正常使用,如果检测出 3 次失败便认定该服务器不可用。
   server db159 10.10.10.12:4000 check inter 2000 rise 2 fall 3

是不是mysql里面的haproxy这个用户你设定了密码,你把这个用户密码删掉,再试试看

不是,你对应的用户haproxy建了吗?另外psot-41这个是专门针对mysql的探活策略,这个我还真没研究过tidb支不支持

我在官网上看到有这个推荐配置; 另外 haproxy这个用户是linux用户还是数据库用户?

数据库用户

学到了,这个不能设置密码吗?

你创建一个数据库用户haproxy,不要设置密码,密码为空。

有其他办法,但是你这样写是不行的。可以通过外部脚本,自定义检查内容并将检查结果报告给haproxy。

有tiproxy 那个好

数据库用户,另外其实现在tidb发布了tiproxy,用这个可以避免你上面的问题,因为你可能看的是haproxy对应mysql的配置,这个可能跟tidb的不太一样。

不能设置密码?

要设置单独的专用用户吗

学习到了;我们用的6.5.8版本, tiup还不能安装proxy吧,我看官网到8.0才正式文档里才有介绍