aws ELB 日志丢失 backend_status_code & elb_status_code

aws ELB log missing backend_status_code & elb_status_code

当我在我的 ELB 实例上激活日志记录时,我注意到 ELB_status_code 和 backend_status_code 都丢失了。

我有一个设置,其中 ELB 将所有内容重定向到 2 个 ha-proxies。 在 ha-proxy 日志中,状态代码可见。

ELB 正在使用代理协议 TCP:80 > TCP:80。

有什么我必须专门做的才能启用状态代码记录吗?

这些字段仅适用于 [HTTP listener]

当 ELB 运行 处于 TCP 模式时,它不知道通过它的协议 运行 恰好是 HTTP,因此无法记录这些状态代码。

如果您真的想看到它们,您需要 HTTP 模式的 ELB...但这是否是正确的选择取决于您使用 TCP 模式的原因——例如,网络套接字需要 TCP 模式.

另请注意,如果您将 ELB 切换到 HTTP 模式,HAProxy 日志中的某些 Tq/Tw/Tc/Tr/Tt 计时器将显示最初令人困惑的值,因为 ELB 保持与后端的连接打开(这是 HAProxy)以一种与浏览器倾向于的方式有所不同的方式重用。在 HAProxy 中记录 %Ci%Cp 参数将有助于通过关联它们来理解这些参数。

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/access-log-collection.html#access-log-entry-format