将HAProxy配置为Log Request BODY

时间:2015-11-26 00:35:55

标签: logging haproxy document-body

据我所知,从版本1.6.0开始,可以使用HAProxy记录POST请求的BODY。以下mail archive表示我们需要以某种方式使用req.body并以日志格式记录capture.req.hdr。

在上述链接中询问的人在他们的配置中有以下前端:

frontend www-http
    bind 0.0.0.0:9000

    option http-buffer-request
    declare capture request len 400000
    http-request capture req.body id 0
    log-format {"%[capture.req.hdr(0)]"}

但可能这是错误的,因此他们的问题。

执行此操作的确切语法是什么?

1 个答案:

答案 0 :(得分:3)

这对我来说有一个自定义日志格式:

global
        log     127.0.0.1 local0
        debug
        maxconn 2048
        ulimit-n 8012
#        ...

defaults
    mode http
    option httplog
    log-format frontend:%f/%H/%fi:%fp\ client:%ci:%cp\ GMT:%T\ body:%[capture.req.hdr(0)]\ request:%r
    option dontlognull
#   ...

frontend www-http
   log global
   option http-buffer-request
# id=0 to store body for logging
   declare capture request len 40000
   bind 7.7.7.7:8007 
   http-request capture req.body id 0

   default_backend www-backend

backend www-backend
    mode http
    option forwardfor
#   ...