O ELB reporta backend_status_code de “0” para alguns pedidos

2

Eu encontrei algumas entradas estranhas nos meus logs do ELB que não posso explicar. Todos eles se parecem com isso (analisados em JSON):

{
    "backend": "-",
    "backend_processing_time": "-1",
    "backend_status_code": 0,
    "client_ip": "XXX.XXX.XXX.XXX",
    "client_port": "52084",
    "elb": "ELB1-PROD",
    "elb_status_code": 504,
    "http_method": "POST",
    "http_version": "HTTP/1.1",
    "received_bytes": 16051,
    "request_processing_time": "-1",
    "request_uri": "https://example.com:443/example/",
    "response_processing_time": "-1",
    "sent_bytes": 0,
    "ssl_cipher": "ECDHE-RSA-AES128-GCM-SHA256",
    "ssl_protocol": "TLSv1.2",
    "timestamp": "2015-10-29T04:41:47.251500Z",
    "user_agent": "client/4.0"
}

por exemplo. "backend_processing_time": "-1" ou "backend_status_code": 0 parecem muito estranhos.

Alguma ideia do que isso pode significar? Suspeitei que os servidores de back-end estavam sobrecarregados, mas não tivemos uma carga maior do que o normal quando esses erros aconteceram, e os erros foram acionados pelo mesmo IP do cliente.

    
por Benjamin Wohlwend 29.10.2015 / 09:50

1 resposta

2

Quando um ELB retorna 504 Gateway Timeout, indica que o balanceador de carga fechou uma conexão porque uma solicitação não foi concluída dentro do período de tempo limite ocioso (de acordo com os documentos ).

Assim, o ELB não recebeu uma resposta dentro do limite de tempo limite ocioso resultando na conexão sendo interrompida e uma resposta 504 sendo retornada ao cliente. Com o conhecimento de que a solicitação de back-end nunca foi concluída, realmente faz sentido que backend_status_code seja 0 e que backend_processing_time seja -1 . O ELB não pode responder a algo que não sabe!

    
por 30.10.2015 / 11:30