tidb日志报错:关于HAProxy

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.0
【复现路径】部署HAprxoxy,之后TIDB节点日志一直在报waring,请问怎么才能不报这个日志出来
【遇到的问题:问题现象及影响】
日志文件tidb.log
日志内容:

[WARN] [server.go:614] ["Server.onConn handshake"] [conn=3919*********] [error="Invalid PROXY Protocol Header"] ["remote addr="21.72.***.**:42246"]
[WARN] [server.go:614] ["Server.onConn handshake"] [conn=3916*********] [error="Invalid PROXY Protocol Header"] ["remote addr="21.72.***.**:42990"]


环境:4tidb节点,1HAproxy 配置HA地址:0.0.0.0:13390
haproxy.cfg配置如下:

global
    log            127.0.0.1 local1
   chroot          /var/lib/haproxy
   pidfile         /var/run/haproxy.pid
   maxconn         4096
   nbthread        48
   user            haproxy
   daemon

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

listen admin_stats
   bind                0.0.0.0:8000
   mode                http
   maxconn             10
   stats  refresh      30s
   stats  uri          /haproxy
   stats  realm        HAProxy
   stats  auth         admin:admin
   stats  hide-version
   stats  admin  if  TRUE

listen tidb-cluster
   bind                  0.0.0.0:13390
   mode                 tcp
   balance             leastconn
   server tidb-1 21.72.***.*1:4000 send-proxy  check  port  10080  inter  2000  rise  2  fall  3
   server tidb-2 21.72.***.*2:4000 send-proxy  check  port  10080  inter  2000  rise  2  fall  3
   server tidb-3 21.72.***.*3:4000 send-proxy  check  port  10080  inter  2000  rise  2  fall  3  
   server tidb-4 21.72.***.*4:4000 send-proxy  check  port  10080  inter  2000  rise  2  fall  3
   .......

https://docs.pingcap.com/zh/tidb/stable/haproxy-best-practices#haproxy-在-tidb-中的最佳实践
这个文档你看看下

给你个文档看看,有些配置需要调整

这个看过了,没法解决后台日志一直在刷的问题,而且check port 都是后续调整的,要不还要报一个别的日志一直刷

专栏 - 使用 TiDB 时的连接池和负载均衡器配置策略 | TiDB 社区 这个文档写的很明白,但是没写TIDB端tidb.log的日志该怎么处理

应该是你HAproxy配置检测的问题,Invalid PROXY Protocol Header 这里的配置检查下呢

影响使用了么

不影响使用,但是日志一直跑,长期的话会占用空间,到时候还得清日志啊!

server tidb-1 10.9.18.229:4000 send-proxy check inter 2000 rise 2 fall 3

文档里面是这么配置的。

你的配置里面,多加了一个 port 10080,去掉尝试一下看看,其实这个日志的就是探活的端口给错了导致的。

这里把检测端口换成了10080,不是4000是因为不改的话,tidb.log会一直刷write: connection reset by peer
最早就是按文档配置的,加穿透参数send-proxy后,就一直刷write: connection reset by peer ,速度比我这个warn快多了,后来把 port改成10080才没有刷write: connection reset by peer了!但error="Invalid PROXY Protocol Header"在调整前后一直都有,不知道哪里可以关掉

1 个赞

看这个报错应该是 tidb-server 不认识 proxy protocol 啊

你让 haproxy 使用了 proxy 协议去访问 tidb-server, 那得让 tidb-server 也接受 proxy 协议。

参考文档

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#networks

感觉这种提示说协议不匹配,试试换个haproxy版本呢