忽略了 HAProxy 日志格式指令
HAProxy log-format directive ignored
我最近升级到 haproxy 1.6.3,并且我为所有 HTTP/TCP 请求提供了默认的 log-format
指令,如下所示:
defaults
log-format %hr\ %ST\ %B\ %Ts
log global
mode http
option dontlognull
retries 3
option redispatch
option http-server-close
maxconn 2000
timeout client 3600s
timeout server 3600s
timeout connect 5s
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
但是,当我重新启动服务器并开始写入日志条目时,它们是使用 haproxy 的默认 HTTP/TCP 日志格式写入的:
Feb 8 14:55:41 localhost haproxy[6770]: host - - [08/Feb/2016:21:55:41 +0000] "POST /path/to/service/1.0 HTTP/1.1" 200 841 "" "" 43359 499 "frontend" "backend" "server" 0 0 0 22 22 ---- 0 0 0 0 0 0 0 "" ""
Feb 8 14:54:05 localhost haproxy[6771]: host:port [08/Feb/2016:14:54:05.469] frontend backend 1/0/4 147 -- 0/0/0/0/0 0/0
为什么我的 log-format
被忽略了?我在重启时没有收到任何警告或警报。
尽管我在默认部分配置了 log-format
指令,但仍有一些前端设置了 option tcplog
和 option httplog clf
,它们覆盖了我配置的日志格式。
这里的haproxy documentation有点误导:
This directive specifies the log format string that will be used for all logs
resulting from traffic passing through the frontend using this line. If the
directive is used in a defaults section, all subsequent frontends will use
the same log format.
我最近升级到 haproxy 1.6.3,并且我为所有 HTTP/TCP 请求提供了默认的 log-format
指令,如下所示:
defaults
log-format %hr\ %ST\ %B\ %Ts
log global
mode http
option dontlognull
retries 3
option redispatch
option http-server-close
maxconn 2000
timeout client 3600s
timeout server 3600s
timeout connect 5s
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
但是,当我重新启动服务器并开始写入日志条目时,它们是使用 haproxy 的默认 HTTP/TCP 日志格式写入的:
Feb 8 14:55:41 localhost haproxy[6770]: host - - [08/Feb/2016:21:55:41 +0000] "POST /path/to/service/1.0 HTTP/1.1" 200 841 "" "" 43359 499 "frontend" "backend" "server" 0 0 0 22 22 ---- 0 0 0 0 0 0 0 "" ""
Feb 8 14:54:05 localhost haproxy[6771]: host:port [08/Feb/2016:14:54:05.469] frontend backend 1/0/4 147 -- 0/0/0/0/0 0/0
为什么我的 log-format
被忽略了?我在重启时没有收到任何警告或警报。
尽管我在默认部分配置了 log-format
指令,但仍有一些前端设置了 option tcplog
和 option httplog clf
,它们覆盖了我配置的日志格式。
这里的haproxy documentation有点误导:
This directive specifies the log format string that will be used for all logs resulting from traffic passing through the frontend using this line. If the directive is used in a defaults section, all subsequent frontends will use the same log format.