如何在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) 之前。