如何让 haproxy 记录整个请求?

如何让 haproxy 记录整个请求?

我想记录整个请求(显然不用于生产)。

首先,我尝试记录所有标题(但事先不知道它们是什么)。

haproxy.cfgfrontend节中

    mode http
    option http-buffer-request
    declare capture request len 40000000
http-request capture ".*" id 0
#    log-format '{"srcIP":"%[src]","backend":"%s","bIP":"%si","bPORT":"%sp","method":"%[capture.req.method]","user-agent":"%[capture.req.hdr(1),json(utf8s)]","uri":"%[capture.req.uri]","body":"%[capture.req.hdr(0)]"}'
log-format '%[capture.req.hdr(0)]'
option dontlognull

http-request capture ".*" id 0不被接受 ( 也不被接受http-request capture .* id 0)

error detected in frontend 'web_front_end' while parsing 'http-request capture' rule : unknown fetch

我不明白,因为文档它说格式是http-request capture <sample> [ len <length> | id <id> ]<sample>表达式”(常规?)。

有没有更简单的方法来记录请求中的所有内容(以及响应)?

或者我如何在不知道它们是什么的情况下记录所有的请求标头?

答案1

我通常使用一种不同的方法,这种方法更通用一些 - 网络捕获。在 Linux 中,您可以使用tcpdump,下面是示例:tcpdump -w network_capture.pcap -i eth0。然后我在中打开捕获WireShark

如果您在 Linux、MacOS、Windows 等系统中有 GUI,则可以直接使用 WireShark。

相关内容