我正在捕捉user-agent
使用:
http-request capture req.hdr(User-Agent) len 192
然后尝试创建这样的自定义JSON
日志格式:
log-format '{"User-Agent":%{+Q,+E}[capture.req.hdr(0)]}'
它可以工作,但是当用户代理包含方括号时,例如:
Dalvik/1.6.0 (Linux; U; Android 4.4.4; Ixion X LTE 4.5 [Build KTU84P])
该选项+E
转义方括号并阻止 JSON,它创建如下内容:
"User-Agent": "Dalvik/1.6.0 (Linux; U; Android 4.4.4; Ixion X LTE 4.5 \[Build KTU84P])"
当 UA 包含额外的引号时没有问题:
"User-Agent": "this \"works\" fine"
因此想知道是否有一种方法可以指定仅转义双引号或替代方法以使日志格式JSON
兼容
较新版本的 haproxy 具有内置的 json 编码器,您可以使用它来定义 JSON 日志格式。见https://www.haproxy.org/download/2.1/doc/configuration.txt