HAProxy 截断了一些日志消息的 host_header 部分

gro*_*wse 4 logging haproxy

我有一个 HAProxy 实例配置为登录到一个特殊的本土守护进程,该守护进程将日志文件放入数据库中。我在某些日志消息中看到了一些问题,其中该host_header字段无缘无故被截断。例如,而不是:

56:34 haproxy[892]: 1.2.3.4:17907 [14/May/2012:13:56:33.999] app.prod app.prod/webp01 0/0/0/161/524 200 33627 - - --NI 0/0/0/0/0 0/0 {application.example.com} "GET /?feed=rss2 HTTP/1.0"
Run Code Online (Sandbox Code Playgroud)

我懂了:

56:34 haproxy[892]: 1.2.3.4:17907 [14/May/2012:13:56:33.999] app.prod app.prod/webp01 0/0/0/161/524 200 33627 - - --NI 0/0/0/0/0 0/0 {application.examp} "GET /?feed=rss2 HTTP/1.0"
Run Code Online (Sandbox Code Playgroud)

请注意,host_header 已从application.example.comto截断application.examp

这在试图通过这些日志进行耕种的工作中投入了一些扳手,那么有什么理由会发生这种情况吗?

HAProxy 版本1.4.18-0ubuntu1在 Ubuntu 12.04 上运行。

Kyl*_*ndt 5

由于这些具有完全相同的时间戳和时间,我猜您不包括实际示例。

如果没有这些示例,我能想到的最好的方法是尝试使用以下内容手动设置这些标头字段的长度:

捕获请求头主机 len 50

另请注意,由于 syslog 流量是 UDP,因此会出现一定程度的损坏(尽管这听起来比那更具体)。HAProxy 中还有一个最大长度设置。我从来没有继续增加这个,但如果你想尝试这里是我与 HAProxy 作者的信件:

> 我可以增加 HAProxy 发送的系统日志消息的长度吗?
>
> 会不会像改变一样简单:
> #define MAX_SYSLOG_LEN 1024
> 在
> 包括/类型/log.h
>
> 或者比这更重要吗?

您可以尝试,但它可能会根据您的系统日志服务器执行任何操作。
有些人接受这些消息,有些人确实会截断行,YMMV。”