Logs de acesso do seu Classic 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 Classic 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. É possível 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 que é desabilitado por padrão. Depois que os logs de acesso para seu balanceador de carga forem habilitados, o Elastic Load Balancing capturará os logs e os armazenará no bucket do Amazon S3 que você especificar. Você pode desativar o registro de acesso a qualquer momento.

Cada arquivo de log de acesso é automaticamente criptografado usando SSE-S3 antes de ser armazenado no bucket do S3 e descriptografado quando você o acessar. Não é necessário realizar nenhuma ação. A criptografia e a descriptografia são realizadas de forma transparente. Cada arquivo de log é criptografado com uma chave exclusiva, que por sua vez é criptografada com uma chave KMS que é rotacionada regularmente. Para obter mais informações, consulte Proteção de dados usando criptografia no lado do servidor com chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3) no Manual do usuário do Amazon Simple Storage Service.

Não há cobrança adicional pelos logs de acesso. Os custos de armazenamento do Amazon S3 serã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, consulte Definiçã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 no intervalo especificado por você. Você pode especificar um intervalo de publicação de 5 minutos ou 60 minutos quando habilitar o log de acesso para seu load balancer. Por padrão, o Elastic Load Balancing publica logs em um intervalo de 60 minutos. Se o intervalo for definido para 5 minutos, os logs serão publicados às 1:05, 1:10, 1:15 e assim por diante. O início da entrega do log é atrasado em até 5 minutos se o intervalo for definido para 5 minutos, e em até 15 minutos se o intervalo for definido como 60 minutos. Você pode modificar o intervalo de publicação a qualquer momento.

O load balancer pode distribuir vários logs para o mesmo período. Isso normalmente acontece se o site tiver alto tráfego, vários nós do load balancer e um curto intervalo de publicação de log.

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_load-balancer-name_end-time_ip-address_random-string.log
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 AWS conta 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-name

O nome do balanceador de carga.

end-time

A data e a hora em que o intervalo de registro terminou. Por exemplo, a hora de fim de 20140215T2340Z contém entradas para solicitações feitas entre 23:35 e 23:40, se o intervalo de publicação for de 5 minutos.

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 “my-app”:

s3://my-loadbalancer-logs/my-app/AWSLogs/123456789012/elasticloadbalancing/us-west-2/2018/02/15/123456789012_elasticloadbalancing_us-west-2_my-loadbalancer_20180215T2340Z_172.160.001.192_20sg8hgm.log

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

s3://my-loadbalancer-logs/AWSLogs/123456789012/elasticloadbalancing/us-west-2/2018/02/15/123456789012_elasticloadbalancing_us-west-2_my-loadbalancer_20180215T2340Z_172.160.001.192_20sg8hgm.log

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, inclusive aquelas que nunca chegaram às instâncias backend. Por exemplo: se um cliente enviar uma solicitação mal formada ou se não houver instâncias íntegras para responder, as solicitações ainda assim são registradas.

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

Cada entrada de log contém os detalhes de uma única solicitação feita para o load balancer. Todos os campos na entrada de log são delimitados por espaços. Cada entrada no arquivo de log tem o seguinte formato:

timestamp elb client:port backend:port request_processing_time backend_processing_time response_processing_time elb_status_code backend_status_code received_bytes sent_bytes "request" "user_agent" ssl_cipher ssl_protocol

A tabela a seguir descreve os campos de uma entrada no log de acesso.

Campo Descrição

horário

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

elb

O nome do load balancer

client:port

O endereço IP e porta do cliente solicitante.

backend:port

O endereço IP e porta da instância registrada que processou essa solicitação.

Se o load balancer não puder enviar a solicitação a uma instância registrada, ou se a instância fechar a conexão antes de uma resposta ser enviada, esse valor será definido como -.

Esse valor também pode ser configurado como - se a instância registrada não responder antes do tempo limite de inatividade.

request_processing_time

[Listener do HTTP] O tempo total, em segundos, decorrido do momento em que o load balancer recebeu a solicitação até que foi enviado a uma instância registrada.

[Listener do TCP] O tempo total, em segundos, decorrido do momento em que o load balancer aceitou uma conexão TCP/SSL de um cliente até o momento em que o load balancer envia o primeiro byte de dados a uma instância.

Esse valor será configurado como -1 se o load balancer não conseguir despachar a solicitação a uma instância registrada. Isso pode acontecer se a instância registrada fechar a conexão antes do tempo limite de inatividade ou se o cliente enviar uma solicitação malformada. Além disso, para listeners de TCP, isso pode acontecer se o cliente estabelecer uma conexão com o load balancer, mas não envia dado algum.

Esse valor também pode ser configurado como -1 se a instância registrada não responder antes do tempo limite de inatividade.

backend_processing_time

[Listener do HTTP] O tempo total, em segundos, decorrido desde momento em que o load balancer envia a solicitação até uma instância registrada, até que a instância comece a enviar os cabeçalhos de resposta.

[Listener do TCP] O tempo total, em segundos, decorrido para o load balancer estabelecer uma conexão com êxito com uma instância registrada.

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

Esse valor também pode ser configurado como -1 se a instância registrada não responder antes do tempo limite de inatividade.

response_processing_time

[Listener do HTTP] O tempo total decorrido (em segundos) desde o momento em que o load balancer recebeu o cabeçalho de resposta da instância registrada 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.

[Listener do TCP] O tempo total decorrido (em segundos) desde o momento em que o load balancer recebeu o primeiro byte da instância registrada até que ele começou a enviar a resposta ao cliente.

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

Esse valor também pode ser configurado como -1 se a instância registrada não responder antes do tempo limite de inatividade.

elb_status_code

[Listener do HTTP] O código de status da resposta do load balancer.

backend_status_code

[Listener do HTTP] O código de status de resposta da instância registrada.

received_bytes

O tamanho da solicitação, em bytes, recebida do cliente (solicitante).

[Listener do HTTP] O valor inclui o corpo da solicitação, mas não os cabeçalhos.

[Listener do TCP] O valor inclui o corpo da solicitação e os cabeçalhos.

sent_bytes

O tamanho da resposta, em bytes, enviada ao cliente (solicitante).

[Listener do HTTP] O valor inclui o corpo da resposta, mas não os cabeçalhos.

[Listener do TCP] O valor inclui o corpo da solicitação e os cabeçalhos.

request

A linha de solicitação do cliente entre aspas duplas e registradas no seguinte formato: método HTTP + Protocolo://Cabeçalho do host:porta + Caminho + 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.

[Listener do TCP] O URL é três traços, cada um separado por um espaço, terminando com um espaço ("- - - ").

user_agent

[Listener do HTTP/HTTPS] Uma string usuário-agente que identifica o cliente que originou a solicitação. 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/SSL] A cifra do SSL. Esse valor só será registrado se a conexão SSL/TLS de entrada tiver sido estabelecida após uma negociação bem-sucedida. Caso contrário, o valor será configurado como -.

ssl_protocol

[Listener HTTPS/SSL] O protocolo SSL. Esse valor só será registrado se a conexão SSL/TLS de entrada tiver sido estabelecida após uma negociação bem-sucedida. Caso contrário, o valor será configurado como -.

Exemplos

Entrada HTTP de exemplo

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

2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000073 0.001048 0.000057 200 200 0 29 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.38.0" - -
Entrada HTTPS de exemplo

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

2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000086 0.001048 0.001337 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.38.0" DHE-RSA-AES128-SHA TLSv1.2
Entrada TCP de exemplo

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

2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.001069 0.000028 0.000041 - - 82 305 "- - - " "-" - -
Entrada SSL de exemplo

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

2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.001065 0.000015 0.000023 - - 57 502 "- - - " "-" ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2

Processando logs de acesso

Se houver uma grande demanda no seu site, o load balancer poderá gerar arquivos de log com gigabytes de dados. Talvez você não consiga processar uma quantidade tão grande de dados usando o line-by-line processamento. 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: