以自定义格式记录 HAProxy 捕获的响应 header
Log HAProxy captured response header in custom format
我有一个带有自定义 JSON log-format
的 HAProxy 配置。我想捕获特定响应 header 并记录下来。
但是,无论我如何尝试捕获它,都无法使其出现在日志中。
在我的日志格式中,我使用 %[capture.res.hdr(0)]
,但它只显示为 -
。我也试过 %[res.hdr(0)]
和 %[res.hdr(MyHeader)]
但它们不是有效的配置并且 HAProxy 无法启动。
我试过使用以下方式捕获:
capture response header MyHeader len 50
但是没用。我也试过:
declare capture response len 50
http-response capture res.hdr(MyHeader) id 0
没有成功。 %hs
格式变量有效 - 所有捕获的 headers 都记录在分隔字符串中。但我想将 header 单独记录为 JSON 属性。
我做错了什么?
我目前使用的是 HAProxy 1.8。
似乎 frontend
部分中的 capture response header MyHeader len 50
和 log-format
部分中的 %[capture.res.hdr(0)]
的组合确实有效。事实证明我有多个 HAProxy 实例 运行 并且只重新加载了其中的一些实例,因此更改仅针对某些请求进行。
我有一个带有自定义 JSON log-format
的 HAProxy 配置。我想捕获特定响应 header 并记录下来。
但是,无论我如何尝试捕获它,都无法使其出现在日志中。
在我的日志格式中,我使用 %[capture.res.hdr(0)]
,但它只显示为 -
。我也试过 %[res.hdr(0)]
和 %[res.hdr(MyHeader)]
但它们不是有效的配置并且 HAProxy 无法启动。
我试过使用以下方式捕获:
capture response header MyHeader len 50
但是没用。我也试过:
declare capture response len 50
http-response capture res.hdr(MyHeader) id 0
没有成功。 %hs
格式变量有效 - 所有捕获的 headers 都记录在分隔字符串中。但我想将 header 单独记录为 JSON 属性。
我做错了什么?
我目前使用的是 HAProxy 1.8。
似乎 frontend
部分中的 capture response header MyHeader len 50
和 log-format
部分中的 %[capture.res.hdr(0)]
的组合确实有效。事实证明我有多个 HAProxy 实例 运行 并且只重新加载了其中的一些实例,因此更改仅针对某些请求进行。