Registros de conexão para 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á.

Registros de conexão para seu Application Load Balancer

O Elastic Load Balancing fornece registros de conexão que capturam informações detalhadas sobre solicitações enviadas ao seu load balancer. Cada registro contém informações como o endereço IP e a porta do cliente, a porta do ouvinte, a TLS cifra e o protocolo usados, a latência do TLS handshake, o status da conexão e os detalhes do certificado do cliente. Você pode usar esses registros de conexão para analisar padrões de solicitação e solucionar problemas.

Os registros de conexão são um recurso opcional do Elastic Load Balancing que está desativado por padrão. Depois de habilitar os registros de conexão para seu load balancer, o Elastic Load Balancing captura os logs e os armazena no bucket do Amazon S3 que você especificar, como arquivos compactados. Você pode desativar os registros de conexão 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 de log de conexão

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 registros de conexão usam o seguinte formato:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/conn_log.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 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-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 ou no horário Zulu. UTC

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://my-bucket/my-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/conn_log.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://my-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/conn_log.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 de log de conexão

Cada tentativa de conexão tem uma entrada em um arquivo de log de conexão. A forma como as solicitações do cliente são enviadas é determinada pela conexão ser persistente ou não persistente. As conexões não persistentes têm uma única solicitação, que cria uma única entrada no log de acesso e no log de conexão. As conexões persistentes têm várias solicitações, o que cria várias entradas no registro de acesso e uma única entrada no registro de conexão.

Sintaxe

As entradas do registro de conexão usam o seguinte formato:

[timestamp] [client_ip] [client_port] [listener_port] [tls_protocol] [tls_cipher] [tls_handshake_latency] [leaf_client_cert_subject] [leaf_client_cert_validity] [leaf_client_cert_serial_number] [tls_verify_status]

A tabela a seguir descreve os campos de uma entrada de registro de conexão, 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

timestamp

A hora, no formato ISO 8601, em que o balanceador de carga estabeleceu ou falhou em estabelecer uma conexão.

client_ip

O endereço IP do cliente solicitante.

porta_cliente

A porta do cliente solicitante.

porta_ouvinte

A porta do ouvinte do balanceador de carga que recebe a solicitação do cliente.

tls_protocol

[HTTPSlistener] O TLS protocoloSSL/usado durante apertos de mão. Esse campo está definido como - para TLS solicitações que não sejam SSL /.

tls_cipher

[HTTPSlistener] O TLS protocoloSSL/usado durante apertos de mão. Esse campo está definido como - para TLS solicitações que não sejam SSL /.

latência tls_handshake_

[HTTPSouvinte] O tempo total em segundos, com precisão de milissegundos, decorreu ao estabelecer um aperto de mão bem-sucedido. Esse campo é definido para - quando:

  • A solicitação recebida não é uma TLS solicitação SSL /.

  • O aperto de mão não foi estabelecido com sucesso.

leaf_client_cert_subject

[HTTPSouvinte] O nome do assunto do certificado de cliente folha. Esse campo é definido para - quando:

  • A solicitação recebida não é uma TLS solicitação SSL /.

  • O ouvinte do balanceador de carga não está configurado com m ativado. TLS

  • O servidor não consegue carregar/analisar o certificado do cliente leaf.

leaf_client_cert_validity

[HTTPSouvinte] A validade, com not-before e not-after no formato ISO 8601, do certificado de cliente folha. Esse campo é definido para - quando:

  • A solicitação recebida não é uma TLS solicitação SSL /.

  • O ouvinte do balanceador de carga não está configurado com m ativado. TLS

  • O servidor não consegue carregar/analisar o certificado do cliente leaf.

número de série leaf_client_cert_

[HTTPSouvinte] O número de série do certificado de cliente Leaf. Esse campo é definido para - quando:

  • A solicitação recebida não é uma TLS solicitação SSL /.

  • O ouvinte do balanceador de carga não está configurado com m ativado. TLS

  • O servidor não consegue carregar/analisar o certificado do cliente leaf.

tls_verify_status

[HTTPSouvinte] O status da solicitação de conexão. Esse valor é Success se a conexão for estabelecida com sucesso. Em uma conexão malsucedida, o valor éFailed:$error_code.

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 registro de acesso. Esse ID atua como uma chave estrangeira para criar um link entre os registros de conexão e acesso.

Códigos de motivo de erro

Se o balanceador de carga não conseguir estabelecer uma conexão, ele armazenará um dos seguintes códigos de motivo no registro de conexão.

Código Descrição

ClientCertMaxChainDepthExceeded

A profundidade máxima da cadeia de certificados do cliente foi excedida

ClientCertMaxSizeExceeded

O tamanho máximo do certificado do cliente foi excedido

ClientCertCrlHit

O certificado do cliente foi revogado pela CA

ClientCertCrlProcessingError

CRLerro de processamento

ClientCertUntrusted

O certificado do cliente não é confiável

ClientCertNotYetValid

O certificado do cliente ainda não é válido

ClientCertExpired

O certificado do cliente está expirado

ClientCertTypeUnsupported

O tipo de certificado de cliente não é suportado

ClientCertInvalid

O certificado do cliente é inválido

ClientCertRejected

O certificado do cliente é rejeitado pela validação personalizada do servidor

UnmappedConnectionError

Erro de conexão de tempo de execução não mapeado

Exemplo de entradas de log

Veja a seguir exemplos de entradas de registro de conexão.

Veja a seguir um exemplo de entrada de registro para uma conexão bem-sucedida com um HTTPS ouvinte com o modo de TLS verificação mútua habilitado na porta 443:

2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 4.036 "CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z FEF257372D5C14D4 Success

Veja a seguir um exemplo de entrada de registro para uma falha na conexão com um HTTPS ouvinte com o modo de TLS verificação mútua habilitado na porta 443. :

2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 - "CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z FEF257372D5C14D4 Failed:ClientCertUntrusted

Processando arquivos de log de conexão

Os arquivos de log de conexão 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 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 seguintes ferramentas analíticas para analisar e processar registros de conexão:

  • O Amazon Athena é um serviço de consulta interativo que facilita a análise de dados no Amazon S3 usando o padrão. SQL

  • Loggly

  • Splunk

  • Sumo logic