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
Conteúdo
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):
|
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 |
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 |
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 |
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 campoelb_status_code
. Quando o AWS WAF estiver configurado para rejeitar solicitações com um código de resposta personalizado, o campoelb_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 |
---|---|---|
|
O URI de solicitação contém caracteres de controle. |
Ambíguo |
|
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 |
|
Um cabeçalho contém um caractere nulo ou retorno de carro. |
Grave |
|
O cabeçalho Transfer-Encoding (Codificação de transferência) contém um valor inválido. |
Grave |
|
O URI de solicitação contém um caractere nulo ou retorno de carro. |
Grave |
|
O método de solicitação está malformado. |
Grave |
|
A versão da solicitação está malformada. |
Grave |
|
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 |
|
Há vários cabeçalhos Content-Length (Comprimento de conteúdo) com o mesmo valor. |
Ambíguo |
|
Um cabeçalho está vazio ou há uma linha com apenas espaços. |
Ambíguo |
|
Há um cabeçalho Content-Length (Comprimento de conteúdo) com um valor de 0 para uma solicitação GET ou HEAD. |
Aceitável |
|
Há vários cabeçalhos Content-Length (Comprimento de conteúdo) com valores diferentes. |
Grave |
|
Há vários cabeçalhos Transfer-Coding (Codificação de transferência): cabeçalhos em bloco. |
Grave |
|
Um cabeçalho contém um caractere não ASCII ou de controle. |
Aceitável |
|
A versão de solicitação contém um valor incorreto. |
Aceitável |
|
O URI de solicitação contém um espaço que não é codificado por URL. |
Aceitável |
|
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 |
|
Há um cabeçalho Content-Length definido para uma solicitação GET ou HEAD. |
Ambíguo |
|
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 |
---|---|---|
|
O cookie de autenticação não é válido. |
|
|
O código de concessão de autorização do endpoint de token não é válido. |
|
|
O token de ID não é válido. |
|
|
O parâmetro de estado não é válido. |
|
|
A resposta do endpoint de token não é válida. |
|
|
A resposta do endpoint de informações do usuário não é válida. |
|
|
A resposta de autenticação do endpoint de autorização não possui um parâmetro de consulta denominado "code". |
|
|
A resposta de autenticação do endpoint de autorização não possui um campo de cabeçalho de host. |
|
|
A resposta de autenticação do endpoint de autorização não possui um parâmetro de consulta denominado "state". |
|
|
Há uma resposta de erro (não 2XX) do endpoint de token. |
|
|
O load balancer não consegue se comunicar com o endpoint de token. |
|
|
O load balancer encontrou uma exceção não gerenciada. |
|
|
Há uma resposta de erro (não 2XX) do endpoint de informações do usuário do IdP. |
|
|
O load balancer não consegue se comunicar com o endpoint de informações do usuário do IdP. |
|
|
O tamanho das solicitações retornadas pelo IdP excedeu 11K bytes. |
|
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 |
---|---|
|
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. |
|
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 |
---|---|---|
|
O load balancer não tinha permissão para invocar a função Lambda. |
|
|
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. |
|
|
O balanceador de carga não pode se conectar ao Lambda. |
|
|
A tentativa de conexão com o Lambda esgotou o tempo limite. |
|
|
O Amazon EC2 negou acesso ao Lambda durante a inicialização da função. |
|
|
O Amazon EC2 aplicou controle de utilização no Lambda durante a inicialização da função. |
|
|
O Amazon EC2 encontrou uma exceção inesperada durante a inicialização da função. |
|
|
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. |
|
|
A resposta da função Lambda está malformada ou não possui campos obrigatórios. |
|
|
Não há compatibilidade com a versão especificada do runtime do Lambda. |
|
|
O ID do grupo de segurança especificado na configuração da função Lambda não é válido. |
|
|
O ID de sub-rede especificado na configuração da função Lambda não é válido. |
|
|
O Lambda não conseguiu descompactar o arquivo zip da função especificada. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
O tamanho do corpo da solicitação excedeu 1 MB. |
|
|
Não foi possível encontrar a função Lambda. |
|
|
O tamanho da resposta excedeu 1 MB. |
|
|
O Lambda encontrou um erro interno. |
|
|
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. |
|
|
A função Lambda foi limitada porque houve muitas solicitações. |
|
|
A função Lambda encontrou uma exceção não gerenciada. |
|
|
O load balancer encontrou uma exceção não gerenciada. |
|
|
Os WebSockets não são compatíveis com o Lambda. |
|
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 |
---|---|
|
O load balancer não pode se conectar ao AWS WAF. |
|
A conexão com o AWS WAF atingiu o tempo limite. |
|
Uma solicitação para o AWS WAF atingiu o tempo limite. |
|
O AWS WAF retornou um erro 5XX. |
|
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:
-
O Amazon Athena é um serviço de consultas interativas que facilita a análise de dados no Amazon S3 usando SQL padrão. Para obter mais informações, consulte Como consultar logs do Application Load Balancer no Guia do usuário do Amazon Athena.