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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Logs de acesso do 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.

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

Os custos de armazenamento do Amazon S3 são cobrados de você, mas não será cobrada a 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, consulteDefinição de preço 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.

prefixo

O prefixo (hierarquia lógica) no bucket. Se você não especificar um prefixo, os logs serão colocados no nível raiz do bucket. O prefixo especificado não deve incluir AWSLogs. Adicionamos a parte do nome do arquivo que começa com AWSLogs após o nome do bucket e o prefixo 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, um horário de término de 20140215T2340Z contém entradas para solicitações feitas entre 23:35 e 23:40 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.

A seguir está um exemplo de nome de arquivo de log:

s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2016/05/01/123456789012_elasticloadbalancing_us-east-2_net.app.my-loadbalancer.1234567890abcdef_20140215T2340Z_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 as solicitações enviadas ao balanceador de carga, incluindo 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 solicitações de verificação de integridade.

Cada entrada de registro contém os detalhes de uma única solicitação (ou conexão) no caso de WebSockets) feito para o balanceador de carga. Para WebSockets, uma entrada é gravada somente depois de a conexão ser encerrada. 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

type

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 sobre TLS

  • h2— HTTP/2 sobre TLS

  • grpcs— gRPC sobre TLS

  • ws — WebSockets

  • wss— WebSockets sobre TLS

time

A hora em que o load balancer gerou uma resposta para o cliente, no formato ISO 8601. Para WebSockets, este é 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 decorrido (em segundos, com precisão de milissegundos) desde o momento em que o balanceador de carga recebeu a solicitação até o momento em que enviou a solicitação para 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 configurado como –1 se o destino registrado não responder antes do tempo limite de inatividade.

SeAWS WAFestá habilitado para o seu Application Load Balancer, o tempo necessário para o cliente enviar os dados necessários para solicitações POST é contadorequest_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.

SeAWS WAFnão está habilitado para o seu Application Load Balancer, o tempo necessário para o cliente enviar os dados necessários para solicitações POST é contadotarget_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á configurado como -1 se o load balancer não conseguir enviar 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.

elb_status_code

O código de status de resposta do load balancer.

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 para o cliente na conexão.

"solicitação"

A linha de solicitação do cliente, entre aspas duplas e registrada usando o seguinte formato: Método HTTP + protocolo: //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 tomadas. 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 -.

“classificação”

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

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

“classification_reason”

O código do 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 emMotivos de classificação. Se a solicitação estiver em conformidade com a RFC 7230, esse valor será definido como -.

Ações tomadas

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 paraAWS WAFpara 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.

  • waf-failed— O balanceador de carga tentou encaminhar a solicitação paraAWS WAF, mas esse processo falhou.

Motivos de classificação

Se uma solicitação não estiver em conformidade com o RFC 7230, o balanceador de carga armazenará um dos códigos a seguir no campo classification_reason do log de acesso. Para obter mais informações, consulteModo de mitigação da 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

Não há cabeçalho Content-Length (Comprimento de conteúdo) definido para uma solicitação GET ou HEAD.

Ambíguo

UndefinedTransferEncodingSemantics

Não há cabeçalho Transfer-Encoding definido para 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 balanceador de carga também incrementa o correspondente CloudWatch Métrico do. Para obter mais informações, consulteAutenticar 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 AWSALBTG O cookie, que é usado com grupos-alvo 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 balanceador de carga também incrementa o correspondente CloudWatch Métrico do. 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 atingiu o tempo limite.

LambdaInternalError

LambdaEC2AccessDeniedException

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

LambdaUserError

LambdaEC2ThrottledException

O Amazon EC2 limitou o 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 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

A versão especificada do tempo de execução do Lambda não é suportada.

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 decifrar variáveis de ambiente porque o acesso à chave KMS foi negado. Verifique as permissões do KMS da função Lambda.

LambdaUserError

LambdaKMSDisabledException

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

LambdaUserError

LambdaKMSInvalidStateException

O Lambda não conseguiu decifrar variáveis de ambiente porque o estado da chave 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 uma ou mais sub-redes não têm 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

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" "-" "-"

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 WebSockets Entrada

Este é um exemplo de entrada de log de um WebSockets conexão.

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: Protegido WebSockets Entrada

Este é um exemplo de entrada de log de um WebSocketsconexão.

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ê abrir os arquivos usando o console do Amazon S3, eles serão descompactados, e as informações serão exibidas. 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. Talvez você não seja capaz de processar uma quantidade tão grande de dados usando line-by-line Processamento do. 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: