如何捕获haproxy日志上的cookie?

问题描述 投票:0回答:2

美好的一天!

我对 HA 代理还很陌生,我正在尝试使用 httplog 选项记录所有 http 详细信息。我能够捕获除 cookie 请求和响应之外的所有详细信息。我需要捕获它们才能了解用户在我们网站上的行为。

我在谷歌上找到了一些参考资料,如下所示,

捕获 cookie 名称 len 10

注意:我正在使用 marathon-lb haproxy 官方 docker 镜像

我不明白我应该在“名称”处给出什么,以便它可以捕获?或者有什么办法可以捕获吗?

提前感谢您的帮助:)

cookies session-cookies haproxy marathon
2个回答
1
投票

要记录 Cookie,您需要在记录时捕获,其中名称是您要捕获的 Cookie 的名称。

要记录捕获的 cookie,您将使用

%CC #captured_request_cookie
%CS #captured_response_cookie

您必须使用

log-format
选项并创建包含这些 cookie 的自定义日志。

文档部分https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#8.2.4


0
投票

可以使用变量捕获和记录多个响应 cookie。

通常的方法是首先捕获并记录,如下所示:

capture cookie CookieOne len 63
log-format "[%t] URI:%{+Q}HU CC:%CC CS:%CS"

如前所述,使用此方法只能捕获一个 cookie 的值。

但是,如果在前端使用

http-after-response
指令将响应 cookie 捕获到响应范围变量,则可以捕获并记录多个 cookie 值,如下所示:

http-after-response  set-var(res.cookie_one)  res.cook(CookieOne)
http-after-response  set-var(res.cookie_two)  res.cook(CookieTwo)
log-format "[%t] URI:%{+Q}HU cookieone:%[var(res.cookie_one)] cookietwo:%[var(res.cookie_two)]"

还可以在设置响应 cookie 时捕获它们,以及 %hr 变量中的其他响应标头:

log-format "[%t] URI:%{+Q}HU hr:%hr"

更多信息这里这里

© www.soinside.com 2019 - 2024. All rights reserved.