Logs de acesso para seu Application Load Balancer - Elastic Load Balancing

Logs de acesso para seu Application Load Balancer

O Elastic Load Balancing fornece logs de acesso que capturam informações detalhadas sobre as solicitações enviadas ao seu balanceador de carga. Cada log contém informações como a hora em que a solicitação foi recebida, o endereço IP do cliente, latências, caminhos de solicitação e respostas do servidor. Você pode usar esses logs de acesso para analisar padrões de tráfego e solucionar problemas.

O registro de logs de acesso é um recurso opcional do Elastic Load Balancing que está desabilitado por padrão. Após habilitar os logs de acesso para seu balanceador de carga, o Elastic Load Balancing capturará os logs e os armazenará como arquivos compactados no bucket do Amazon S3 que você especificar. Você pode desabilitar os logs de acesso a qualquer momento.

Você receberá cobranças pelos custos de armazenamento do Amazon S3, mas não haverá cobranças pela largura de banda usada pelo Elastic Load Balancing para enviar arquivos de log para o Amazon S3. Para obter mais informações sobre os custos de armazenamento, consulte Preços do Amazon S3.

Arquivos do log de acesso

O Elastic Load Balancing publica um arquivo de log para cada nó do balanceador de carga a cada 5 minutos. A entrega de logs, no final das contas, é consistente. O load balancer pode distribuir vários logs para o mesmo período. Isso normalmente acontece se o site tiver alto tráfego.

Os nomes dos arquivos dos logs de acesso usa o seguinte formato:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_app.load-balancer-id_end-time_ip-address_random-string.log.gz
bucket

O nome do bucket do S3.

prefix

(Opcional) O prefixo (hierarquia lógica) no bucket. O prefixo especificado não pode incluir a string AWSLogs. Para mais informações, consulte Organizar objetos usando prefixos.

AWSLogs

Adicionamos a parte do nome do arquivo que começa com AWSLogs após o nome do bucket e o prefixo opcional que você especificar.

aws-account-id

O ID da conta da AWS do proprietário.

região

A Região para seu load balancer e o bucket do S3.

aaaa/mm/dd

A data em que o log foi entregue.

load-balancer-id

O ID de recursos do load balancer. Se o ID de recursos contiver barras (/), elas são substituídos por pontos (.).

end-time

A data e a hora em que o intervalo de registro terminou. Por exemplo, a hora final de 20140215T2340Z contém entradas para solicitações feitas entre 23h35 e 23h40 no horário UTC ou Zulu.

ip-address

O endereço IP do nó do load balancer que processou a solicitação. Para um load balancer interno, esse é um endereço IP privado.

random-string

Uma string aleatória gerada pelo sistema.

Veja um exemplo de um nome de arquivo de log com um prefixo:

s3://amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

Veja um exemplo de um nome de arquivo de log sem um prefixo:

s3://amzn-s3-demo-logging-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

Você pode armazenar os arquivos de log no bucket pelo tempo que desejar, mas também pode definir regras do ciclo de vida do Amazon S3 para arquivar ou excluir os arquivos de log automaticamente. Para obter mais informações, consulte Gerenciamento do ciclo de vida de objetos no Manual do usuário do Amazon Simple Storage Service.

Entradas do log de acesso

O Elastic Load Balancing registra em log as solicitações enviadas ao balanceador de carga, inclusive aquelas que nunca chegaram aos destinos. Por exemplo, se um cliente enviar uma solicitação mal formada ou não houver destinos íntegros para responder a solicitação, a solicitação mesmo assim será registrada. O Elastic Load Balancing não registra em log solicitações de verificação de integridade.

Cada entrada do log contém os detalhes de uma única solicitação (ou conexão no caso de WebSockets) feitas para o load balancer. Para o WebSockets, uma entrada é gravada somente depois de a conexão ser fechada. Se a conexão atualizada não puder ser estabelecida, a entrada será a mesma de uma solicitação HTTP ou HTTPS.

Importante

O Elastic Load Balancing registra as solicitações na base do melhor esforço. Recomendamos que você use logs de acesso para compreender a natureza das solicitações, não como uma contabilidade completa de todas as solicitações.

Sintaxe

A tabela a seguir descreve os campos de uma entrada no log de acesso, em ordem. Todos os campos são delimitados por espaços. Quando novos campos são introduzidos, eles são adicionados no final da entrada de log. Você deve ignorar quaisquer campos no final da entrada de log que não era esperada.

Campo Descrição

tipo

O tipo de solicitação ou conexão. Os valores possíveis são as seguintes (ignorar todos os outros valores):

  • http — HTTP

  • https: HTTP por TLS

  • h2: HTTP/2 por TLS

  • grpcs: gRPC por TLS

  • ws – WebSockets

  • wss: WebSockets por SSL/TLS

horário

A hora em que o load balancer gerou uma resposta para o cliente, no formato ISO 8601. Para WebSockets, esse é o momento em que a conexão é fechada.

elb

O ID de recursos do load balancer. Se você estiver analisando entradas no log de acesso, observe que as IDs dos recursos podem conter barras (/).

client:port

O endereço IP e porta do cliente solicitante. Se houver um proxy na frente do balanceador de carga, esse campo conterá o endereço IP do proxy.

target:port

O endereço IP e porta do destino que processou essa solicitação.

Se o cliente não enviar uma solicitação completa, o load balancer não poderá despachar a solicitação a um destino e esse valor será definido como -.

Se o destino for uma função Lambda, esse valor é definido como -.

Se a solicitação for bloqueada por AWS WAF, este valor será definido como - e o valor do elb_status_code será definido como 403.

request_processing_time

O tempo total (em segundos, com precisão de milissegundos) decorrido desde o momento em que o balanceador de carga recebeu a solicitação até o momento em que ele a enviou a um destino.

Esse valor será configurado como -1 se o load balancer não conseguir despachar a solicitação a um destino. Isso pode acontecer se o destino fechar a conexão antes de o tempo limite de inatividade ou se o cliente enviar uma solicitação malformada.

Esse valor também pode ser definido como -1 se uma conexão TCP não puder ser estabelecida com o destino antes de atingir o tempo limite da conexão TCP de 10 segundos.

Se AWS WAF estiver habilitado para seu Application Load Balancer ou o tipo de destino for uma função do Lambda, o tempo necessário para o cliente enviar os dados necessários para solicitações POST será contabilizado em request_processing_time.

target_processing_time

O tempo total (em segundos, com precisão de milissegundos) decorrido desde o momento em que o load balancer enviou a solicitação a um destino até que o destino começar a enviar os cabeçalhos de resposta.

Esse valor será configurado como -1 se o load balancer não conseguir despachar a solicitação a um destino. Isso pode acontecer se o destino fechar a conexão antes de o tempo limite de inatividade ou se o cliente enviar uma solicitação malformada.

Esse valor também pode ser configurado como –1 se o destino registrado não responder antes do tempo limite de inatividade.

Se AWS WAF não estiver habilitado para seu Application Load Balancer, o tempo necessário para o cliente enviar os dados necessários para solicitações POST será contabilizado em target_processing_time.

response_processing_time

O tempo total decorrido (em segundos, com precisão de milissegundos) desde o momento em que o load balancer recebeu o cabeçalho de resposta do destino até que ele começou a enviar a resposta ao cliente. Isso inclui o tempo de fila no load balancer e o tempo de aquisição de conexão do load balancer ao cliente.

Esse valor será definido como -1 se o balanceador de carga não receber uma resposta de um destino. Isso pode acontecer se o destino fechar a conexão antes de o tempo limite de inatividade ou se o cliente enviar uma solicitação malformada.

elb_status_code

O código de status da resposta gerada pelo balanceador de carga, pela regra de resposta fixa ou pelo código de resposta personalizado do AWS WAF para ações de bloco.

target_status_code

O código de status da resposta do destino. Esse valor só será registrado se tiver sido estabelecida uma conexão ao destino e o destino tiver enviado uma resposta. Caso contrário, ele será definido como -.

received_bytes

O tamanho da solicitação, em bytes, recebida do cliente (solicitante). Para solicitações HTTP, isso inclui os cabeçalhos. Para WebSockets, este é o número total de bytes recebidos do cliente na conexão.

sent_bytes

O tamanho da resposta, em bytes, enviada ao cliente (solicitante). Para solicitações HTTP, isso inclui os cabeçalhos. Para WebSockets, este é o número total de bytes enviados ao cliente na conexão.

"solicitação"

A linha de solicitação do cliente entre aspas duplas e registrada no seguinte formato: método HTTP + protocol://host:port/uri + versão HTTP. O load balancer preserva o URL enviado pelo cliente, da forma como se encontra, ao gravar o URI da solicitação. Ele não define o tipo de conteúdo para o arquivo do log de acesso. Ao processar esse campo, considere como o cliente enviou o URL.

"user_agent"

Uma string usuário-agente que identifica o cliente que originou a solicitação entre aspas duplas. A string consiste em um ou mais identificadores de produto, produto[/versão]. Se a string tiver mais de 8 KB, ela ficará truncada.

ssl_cipher

[Listener HTTPS] A cifra do SSL. Esse valor é definido como -, se o listener não for um listener HTTPS.

ssl_protocol

[Listener HTTPS] O protocolo SSL. Esse valor é definido como -, se o listener não for um listener HTTPS.

target_group_arn

O Nome de recurso da Amazon (ARN) do grupo de destino.

"trace_id"

O conteúdo do cabeçalho X-Amzn-Trace-Id em aspas duplas.

"domain_name"

[Listener HTTPS] O domínio SNI fornecido pelo cliente durante o handshake do TLS em aspas duplas. Esse valor será definido como - se o cliente não oferecer suporte a SNI ou o domínio não corresponder a um certificado e o certificado padrão for apresentado ao cliente.

"chosen_cert_arn"

[Listener HTTPS] O ARN do certificado apresentado ao cliente em aspas duplas. Esse valor é configurado como session-reused se a sessão for reutilizada. Esse valor é definido como -, se o listener não for um listener HTTPS.

matched_rule_priority

O valor de prioridade da regra que corresponde à solicitação. Se uma regra corresponde, este é um valor de 1 a 50.000. Se nenhuma regra corresponde e a ação padrão for executada, o valor é 0. Se ocorrer um erro durante a avaliação de regras, ele é definido como -1. Para qualquer outro erro, ele é definido como -.

request_creation_time

A hora em que o load balancer recebeu a solicitação do cliente, no formato ISO 8601.

"actions_executed"

As ações executadas ao processar a solicitação em aspas duplas. Esse valor é uma lista separada por vírgulas que pode incluir os valores descritos em Ações executadas. Se nenhuma ação foi executada, como para uma solicitação malformada, esse valor será definido como -.

"redirect_url"

O URL do destino do redirecionamento para o cabeçalho de localização da resposta HTTP, entre aspas duplas. Se nenhuma ação de redirecionamento foi realizada, o valor é definido como -.

"error_reason"

O código de motivo, entre aspas duplas. Se a solicitação falhou, esse é um dos códigos de erro descritas em Códigos de motivo de erro. Se as ações realizadas não incluírem uma ação de autenticação ou o destino não for uma função do Lambda, esse valor será definido como -.

"target:port_list"

Uma lista delimitada por espaços de endereços IP e portas para os destinos que processaram esta solicitação, entre aspas duplas. Atualmente, essa lista pode conter um item e corresponde ao campo target:port.

Se o cliente não enviar uma solicitação completa, o load balancer não poderá despachar a solicitação a um destino e esse valor será definido como -.

Se o destino for uma função Lambda, esse valor é definido como -.

Se a solicitação for bloqueada por AWS WAF, este valor será definido como - e o valor do elb_status_code será definido como 403.

"target_status_code_list"

Uma lista delimitada por espaços de códigos de status das respostas dos destinos, entre aspas duplas. Atualmente, essa lista pode conter um item e corresponde ao campo target_status_code.

Esse valor só será registrado se tiver sido estabelecida uma conexão ao destino e o destino tiver enviado uma resposta. Caso contrário, ele será definido como -.

"classification"

A classificação para mitigação de dessincronização, entre aspas duplas. Se a solicitação não estiver em conformidade com a RFC 7230, os valores possíveis são Aceitável, Ambíguo e Severo.

Se a solicitação estiver em conformidade com a RFC 7230, esse valor será definido como -.

"classification_reason"

O código de motivo da classificação, entre aspas duplas. Se a solicitação não estiver em conformidade com a RFC 7230, esse é um dos códigos de classificação descritos em Motivos de classificação. Se a solicitação estiver em conformidade com a RFC 7230, esse valor será definido como -.

conn_trace_id

O ID de rastreabilidade da conexão é um ID opaco exclusivo usado para identificar cada conexão. Depois que uma conexão for estabelecida com um cliente, as solicitações subsequentes desse cliente conterão esse ID em suas respectivas entradas de log de acesso. Esse ID atua como uma chave estrangeira para criar um link entre os logs de conexão e acesso.

Ações executadas

O load balancer armazena as ações executadas no campo actions_executed do log de acesso.

  • authenticate: o balanceador de carga validou a sessão, autenticou o usuário e adicionou as informações do usuário aos cabeçalhos da solicitação, conforme especificado pela configuração da regra.

  • fixed-response: o balanceador de carga emitiu uma resposta fixa, conforme especificado pela configuração da regra.

  • forward: o balanceador de carga encaminhou a solicitação para um destino, conforme especificado pela configuração da regra.

  • redirect: o balanceador de carga redirecionou a solicitação para outro URL, conforme especificado pela configuração da regra.

  • waf: o balanceador de carga encaminhou a solicitação ao AWS WAF para determinar se a solicitação deve ser encaminhada para o destino. Se esta é a ação final, o AWS WAF determinou que o pedido deve ser rejeitado. Por padrão, as solicitações rejeitadas pelo AWS WAF serão registradas como "403" no campo elb_status_code. Quando o AWS WAF estiver configurado para rejeitar solicitações com um código de resposta personalizado, o campo elb_status_code refletirá o código de resposta configurado.

  • waf-failed: o balanceador de carga tentou encaminhar a solicitação ao AWS WAF, mas esse processo falhou.

Motivos de classificação

Se uma solicitação não estiver em conformidade com a RFC 7230, o balanceador de carga armazenará um dos seguintes códigos no campo classification_reason do log de acesso. Para ter mais informações, consulte Modo de mitigação de dessincronização.

Código Descrição Classificação

AmbiguousUri

O URI de solicitação contém caracteres de controle.

Ambíguo

BadContentLength

O cabeçalho Content-Length (Comprimento de conteúdo) contém um valor que não pode ser analisado ou não é um número válido.

Grave

BadHeader

Um cabeçalho contém um caractere nulo ou retorno de carro.

Grave

BadTransferEncoding

O cabeçalho Transfer-Encoding (Codificação de transferência) contém um valor inválido.

Grave

BadUri

O URI de solicitação contém um caractere nulo ou retorno de carro.

Grave

BadMethod

O método de solicitação está malformado.

Grave

BadVersion

A versão da solicitação está malformada.

Grave

BothTeClPresent

A solicitação contém um cabeçalho Transfer-Coding (Codificação de transferência) e um cabeçalho Content-Length (Comprimento de conteúdo).

Ambíguo

DuplicateContentLength

Há vários cabeçalhos Content-Length (Comprimento de conteúdo) com o mesmo valor.

Ambíguo

EmptyHeader

Um cabeçalho está vazio ou há uma linha com apenas espaços.

Ambíguo

GetHeadZeroContentLength

Há um cabeçalho Content-Length (Comprimento de conteúdo) com um valor de 0 para uma solicitação GET ou HEAD.

Aceitável

MultipleContentLength

Há vários cabeçalhos Content-Length (Comprimento de conteúdo) com valores diferentes.

Grave

MultipleTransferEncodingChunked

Há vários cabeçalhos Transfer-Coding (Codificação de transferência): cabeçalhos em bloco.

Grave

NonCompliantHeader

Um cabeçalho contém um caractere não ASCII ou de controle.

Aceitável

NonCompliantVersion

A versão de solicitação contém um valor incorreto.

Aceitável

SpaceInUri

O URI de solicitação contém um espaço que não é codificado por URL.

Aceitável

SuspiciousHeader

Há um cabeçalho que pode ser normalizado para Transfer-Enconding (Codificação de transferência) ou Content-Length (Comprimento de conteúdo) usando técnicas comuns de normalização de texto.

Ambíguo

UndefinedContentLengthSemantics

Há um cabeçalho Content-Length definido para uma solicitação GET ou HEAD.

Ambíguo

UndefinedTransferEncodingSemantics

Há um cabeçalho Transfer-Encoding definido para uma solicitação GET ou HEAD.

Ambíguo

Códigos de motivo de erro

Se o load balancer não puder concluir uma ação de autenticação, ele armazenará um dos seguintes códigos de motivo no campo error_reason do log de acesso. O load balancer também incrementa a métrica correspondente do CloudWatch. Para ter mais informações, consulte Autenticar usuários usando um Application Load Balancer.

Código Descrição Métrica

AuthInvalidCookie

O cookie de autenticação não é válido.

ELBAuthFailure

AuthInvalidGrantError

O código de concessão de autorização do endpoint de token não é válido.

ELBAuthFailure

AuthInvalidIdToken

O token de ID não é válido.

ELBAuthFailure

AuthInvalidStateParam

O parâmetro de estado não é válido.

ELBAuthFailure

AuthInvalidTokenResponse

A resposta do endpoint de token não é válida.

ELBAuthFailure

AuthInvalidUserinfoResponse

A resposta do endpoint de informações do usuário não é válida.

ELBAuthFailure

AuthMissingCodeParam

A resposta de autenticação do endpoint de autorização não possui um parâmetro de consulta denominado "code".

ELBAuthFailure

AuthMissingHostHeader

A resposta de autenticação do endpoint de autorização não possui um campo de cabeçalho de host.

ELBAuthError

AuthMissingStateParam

A resposta de autenticação do endpoint de autorização não possui um parâmetro de consulta denominado "state".

ELBAuthFailure

AuthTokenEpRequestFailed

Há uma resposta de erro (não 2XX) do endpoint de token.

ELBAuthError

AuthTokenEpRequestTimeout

O load balancer não consegue se comunicar com o endpoint de token.

ELBAuthError

AuthUnhandledException

O load balancer encontrou uma exceção não gerenciada.

ELBAuthError

AuthUserinfoEpRequestFailed

Há uma resposta de erro (não 2XX) do endpoint de informações do usuário do IdP.

ELBAuthError

AuthUserinfoEpRequestTimeout

O load balancer não consegue se comunicar com o endpoint de informações do usuário do IdP.

ELBAuthError

AuthUserinfoResponseSizeExceeded

O tamanho das solicitações retornadas pelo IdP excedeu 11K bytes.

ELBAuthUserClaimsSizeExceeded

Se houver falha em uma solicitação para um grupo de destino ponderado, o load balancer armazenará um dos códigos de erro a seguir no campo error_reason do log de acesso.

Código Descrição

AWSALBTGCookieInvalid

O cookie AWSALBTG, que é usado com grupos de destino ponderados, não é válido. Por exemplo, o load balancer retorna esse erro quando os valores de cookie são codificados por URL.

WeightedTargetGroupsUnhandledException

O load balancer encontrou uma exceção não gerenciada.

Se uma solicitação para uma função Lambda falhar, o load balancer armazena um dos seguintes códigos de motivo no campo error_reason do log de acesso. O load balancer também incrementa a métrica correspondente do CloudWatch. Para obter mais informações, consulte a ação Invoke (Invocar) do Lambda.

Código Descrição Métrica

LambdaAccessDenied

O load balancer não tinha permissão para invocar a função Lambda.

LambdaUserError

LambdaBadRequest

Houve falha na invocação do Lambda porque os cabeçalhos ou o corpo da solicitação do cliente não continham somente caracteres UTF-8.

LambdaUserError

LambdaConnectionError

O balanceador de carga não pode se conectar ao Lambda.

LambdaInternalError

LambdaConnectionTimeout

A tentativa de conexão com o Lambda esgotou o tempo limite.

LambdaInternalError

LambdaEC2AccessDeniedException

O Amazon EC2 negou acesso ao Lambda durante a inicialização da função.

LambdaUserError

LambdaEC2ThrottledException

O Amazon EC2 aplicou controle de utilização no Lambda durante a inicialização da função.

LambdaUserError

LambdaEC2UnexpectedException

O Amazon EC2 encontrou uma exceção inesperada durante a inicialização da função.

LambdaUserError

LambdaENILimitReachedException

O Lambda não conseguiu criar uma interface de rede na VPC especificada na configuração da função do Lambda porque o limite para interfaces de rede foi excedido.

LambdaUserError

LambdaInvalidResponse

A resposta da função Lambda está malformada ou não possui campos obrigatórios.

LambdaUserError

LambdaInvalidRuntimeException

Não há compatibilidade com a versão especificada do runtime do Lambda.

LambdaUserError

LambdaInvalidSecurityGroupIDException

O ID do grupo de segurança especificado na configuração da função Lambda não é válido.

LambdaUserError

LambdaInvalidSubnetIDException

O ID de sub-rede especificado na configuração da função Lambda não é válido.

LambdaUserError

LambdaInvalidZipFileException

O Lambda não conseguiu descompactar o arquivo zip da função especificada.

LambdaUserError

LambdaKMSAccessDeniedException

O Lambda não conseguiu descriptografar variáveis de ambiente porque o acesso à chave do KMS foi negado. Verifique as permissões do KMS da função Lambda.

LambdaUserError

LambdaKMSDisabledException

O Lambda não conseguiu descriptografar variáveis de ambiente porque a chave do KMS especificada está desabilitada. Verifique as configurações da chave do KMS da função Lambda.

LambdaUserError

LambdaKMSInvalidStateException

O Lambda não conseguiu descriptografar variáveis de ambiente porque o estado da chave do KMS não é válido. Verifique as configurações da chave do KMS da função Lambda.

LambdaUserError

LambdaKMSNotFoundException

O Lambda não conseguiu descriptografar variáveis de ambiente porque a chave do KMS não foi encontrada. Verifique as configurações da chave do KMS da função Lambda.

LambdaUserError

LambdaRequestTooLarge

O tamanho do corpo da solicitação excedeu 1 MB.

LambdaUserError

LambdaResourceNotFound

Não foi possível encontrar a função Lambda.

LambdaUserError

LambdaResponseTooLarge

O tamanho da resposta excedeu 1 MB.

LambdaUserError

LambdaServiceException

O Lambda encontrou um erro interno.

LambdaInternalError

LambdaSubnetIPAddressLimitReachedException

O Lambda não conseguiu configurar o acesso à VPC para a função do Lambda porque há uma ou mais sub-redes sem endereços IP disponíveis.

LambdaUserError

LambdaThrottling

A função Lambda foi limitada porque houve muitas solicitações.

LambdaUserError

LambdaUnhandled

A função Lambda encontrou uma exceção não gerenciada.

LambdaUserError

LambdaUnhandledException

O load balancer encontrou uma exceção não gerenciada.

LambdaInternalError

LambdaWebsocketNotSupported

Os WebSockets não são compatíveis com o Lambda.

LambdaUserError

Se o load balancer encontrar um erro ao encaminhar solicitações para o AWS WAF, ele armazenará um dos códigos de erro a seguir no campo error_reason do log de acesso.

Código Descrição

WAFConnectionError

O load balancer não pode se conectar ao AWS WAF.

WAFConnectionTimeout

A conexão com o AWS WAF atingiu o tempo limite.

WAFResponseReadTimeout

Uma solicitação para o AWS WAF atingiu o tempo limite.

WAFServiceError

O AWS WAF retornou um erro 5XX.

WAFUnhandledException

O load balancer encontrou uma exceção não gerenciada.

Exemplo de entradas de log

A seguir estão exemplo de entradas de log. Observe que o texto aparece em várias linhas apenas para facilitar a leitura.

Entrada HTTP de exemplo

A seguir está uma entrada no log de exemplo para um listener do HTTP (porta 80 para porta 80):

http 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337262-36d228ad5d99923122bbe354" "-" "-" 0 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.1:80" "200" "-" "-"
Exemplo de entrada HTTPS

A seguir está uma entrada no log de exemplo para um listener HTTPS (porta 443 para porta 80):

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" 1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-" "10.0.0.1:80" "200" "-" "-" TID_123456
Entrada HTTP/2 de exemplo

A seguir está um exemplo de entrada de log para um fluxo de HTTP/2.

h2 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.1.252:48160 10.0.0.66:9000 0.000 0.002 0.000 200 200 5 257 "GET https://10.0.2.105:773/ HTTP/2.0" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337327-72bd00b0343d75b906739c42" "-" "-" 1 2018-07-02T22:22:48.364000Z "redirect" "https://example.com:80/" "-" "10.0.0.66:9000" "200" "-" "-"
Exemplo de entrada do WebSockets

A seguir está um exemplo de entrada de log para uma conexão do WebSockets.

ws 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:40914 10.0.1.192:8010 0.001 0.003 0.000 101 101 218 587 "GET http://10.0.0.30:80/ HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.1.192:8010" "101" "-" "-"
Exemplo de entrada protegida no WebSockets

A seguir está um exemplo de entrada de log para uma conexão protegida no WebSockets.

wss 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:44244 10.0.0.171:8010 0.000 0.001 0.000 101 101 218 786 "GET https://10.0.0.30:443/ HTTP/1.1" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.171:8010" "101" "-" "-"
Exemplo de entradas para as funções Lambda

A seguir, há um exemplo de entrada de log para uma solicitação de função Lambda que foi bem-sucedida:

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "-" "-" "-" "-" "-"

A seguir, há um exemplo de entrada de log para uma solicitação de função Lambda que não foi bem-sucedida:

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 502 - 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "LambdaInvalidResponse" "-" "-" "-" "-"

Processar arquivos de log de acesso

Os arquivos de log de acesso são compactados. Se você baixar os arquivos, deverá descompactá-los para visualizar as informações.

Se houver uma grande demanda no seu site, o load balancer poderá gerar arquivos de log com gigabytes de dados. Você pode não conseguir processar uma quantidade tão grande de dados usando o processamento linha por linha. Assim, pode ter de usar ferramentas analíticas que forneçam soluções de processamento paralelo. Por exemplo, você pode usar as ferramentas analíticas a seguir para analisar e processar logs de acesso: