ELB日志解释

时间:2018-11-11 20:36:32

标签: amazon-web-services amazon-elb

我一直在尝试解决网关超时错误(504) 504 Gateway Timeout ELB 当我打开AWS ELB日志时,我收到了超时请求。

2018-11-09T22:32:23.016245Z bvt-AppServerLB-POI9R2HYQG67M 10.90.6.224:63629 - -1 -1 -1 504 0 1321 0 "POST https://xxxx.xxxxxxx.com:443/exec/scenario HTTP/1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2

问题是

  1. 我们能否从这些日志条目中说出是服务器超时还是客户端在连接到ELB时超时?我了解ELB维护着两个连接,一个连接到ec2实例(服务器),另一个连接到客户端。

  2. 对数平均数中的-1是什么?

请帮助,因为这将帮助我缩小问题区域的范围。

谢谢。

1 个答案:

答案 0 :(得分:0)

TL; DR从您发布的日志中,可能是注册到负载均衡器的实例没有足够快地响应并且ELB空闲超时正在触发,或者实例在空闲超时之前关闭了连接。

Raise the idle timeout在ELB上,看看是否可以解决此问题。

第一个-对应于backend:port

  

如果负载平衡器无法将请求发送到已注册的实例,或者该实例在可以发送响应之前关闭了连接,则此值设置为-。   如果注册的实例在空闲超时之前没有响应,则也可以将该值设置为-。

日志中的三个-1分别对应于request_processing_time, backend_processing_time, and response_processing_time

request_processing_time

  

如果负载平衡器无法将请求分派到已注册实例,则此值设置为-1。如果注册的实例在空闲超时之前关闭连接,或者客户端发送格式错误的请求,则可能发生这种情况。此外,对于TCP侦听器,如果客户端与负载平衡器建立连接但不发送任何数据,则可能会发生这种情况。   如果注册的实例在空闲超时之前没有响应,则也可以将该值设置为-1。

backend_processing_time

  

如果负载平衡器无法将请求分派到已注册实例,则此值设置为-1。如果注册的实例在空闲超时之前关闭连接,或者客户端发送格式错误的请求,则可能发生这种情况。   如果注册的实例在空闲超时之前没有响应,则也可以将该值设置为-1。

response_processing_time

  

如果负载平衡器无法将请求分派到已注册实例,则此值设置为-1。如果注册的实例在空闲超时之前关闭连接,或者客户端发送格式错误的请求,则可能发生这种情况。   如果注册的实例在空闲超时之前没有响应,则也可以将该值设置为-1。

有关更多详细信息,请参见下面的链接。

参考

https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/access-log-collection.html https://aws.amazon.com/blogs/aws/elb-idle-timeout-control/