在 Haproxy Tcp 日志中启用绑定/前端侦听 IP



如何在haproxy log中启用本地绑定地址ip?

我的Haproxy配置:

global
        log 127.0.0.1   local0
        pidfile /var/run/haproxy.pid
        daemon
defaults
        log     global
        mode    tcp
        option  tcplog
        option  dontlognull
backend app1_80
        server app1_443 127.0.0.1:443
frontend app1_443
    bind 10.11.12.202:443
    bind 10.11.12.203:443
    bind 10.11.12.204:443
    default_backend app1_80

示例日志条目:

172.20.1.16:1527 [10/Feb/2016:07:46:43.885] app1_443 app1_80/app1_443 1/1067/2890 11105 -- 96/96/96/96/0 0/0
172.20.1.28:1526 [10/Feb/2016:07:46:42.982] app1_443 app1_80/app1_443 1/70/3823 85722 CD 95/95/95/95/0 0/0
172.20.1.49:1529 [10/Feb/2016:07:46:44.249] app1_443 app1_80/app1_443 1/80/2623 15097 -- 94/94/94/94/0 0/0

在这里你可以看到,我收到了来自不同IP的请求[意味着来自不同部门]。

但是从我的日志中,我无法获得该请求来自哪个目标 IP 10.11.12.202 或 10.11.12.203 或 10.11.12.204。

Haproxy tcp 日志格式中是否有任何选项可以在日志中启用目标 IP 地址 [ 表示"绑定 IP 地址"] ?

由于使用的是 tcplog,因此不会以默认日志格式捕获前端 ip。我通常做的是声明自定义日志格式并指定我要记录的内容。 haproxy v1.5 的默认 tcp 日志格式为: log-format %ci:%cp\ [%t]\ %ft\ %b/%s\ %Tw/%Tc/%Tt\ %B\ %ts\ \ %ac/%fc/%bc/%sc/%rc\ %sq/%bq

您要查找的值分别存储在前端 IP 和前端端口的 %fi 和 %fp 中。

frontend app1_443
bind 10.11.12.202:443
bind 10.11.12.203:443
bind 10.11.12.204:443
log-format %ci:%cp [%t] %fi %ft %b/%s %Tw/%Tc/%Tt %B %ts 
           %ac/%fc/%bc/%sc/%rc %sq/%bq
default_backend app1_80

添加 %fi 会将前端 ip 放在名称 (app1_443) 之前。

最新更新