Registros de conexión para su Application Load Balancer - Elastic Load Balancing

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Registros de conexión para su Application Load Balancer

Elastic Load Balancing proporciona registros de conexión que capturan información detallada sobre las solicitudes enviadas al balanceador de carga. Cada registro contiene información como la dirección IP y el puerto del cliente, el puerto de escucha, el protocolo y el cifrado TLS utilizados, la latencia del protocolo de enlace TLS, el estado de la conexión y los detalles del certificado del cliente. Puede usar estos registros de conexión para analizar los patrones de solicitudes y solucionar problemas.

Los registros de conexiones son una función opcional de Elastic Load Balancing que está deshabilitada de forma predeterminada. Tras habilitar los registros de conexión para el balanceador de carga, Elastic Load Balancing captura los registros y los almacena en el bucket de Amazon S3 que especifique, como archivos comprimidos. Puede deshabilitar los registros de conexión en cualquier momento.

Se cobran los costos de almacenamiento en Amazon S3, pero no el ancho de banda que Elastic Load Balancing utilice para enviar los archivos de registros a Amazon S3. Para obtener más información acerca de los costos de almacenamiento, consulte Precios de Amazon S3.

Archivos de registro de conexiones

Elastic Load Balancing publica un archivo de registro por cada nodo del equilibrador de carga cada 5 minutos. La entrega de registros presenta consistencia final. El equilibrador de carga puede entregar varios registros para el mismo periodo. Esto suele ocurrir si el tráfico del sitio es elevado.

Los nombres de archivo de los registros de conexión utilizan el siguiente 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

Nombre del bucket de S3.

prefix

(Opcional) El prefijo (jerarquía lógica) del bucket. El prefijo que especifique no debe incluir la cadena AWSLogs. Para obtener más información, consulte Organizar objetos con prefijos.

AWSLogs

Agregamos la parte del nombre de archivo que comienza por AWSLogs después del nombre del bucket y el prefijo que especifique.

aws-account-id

El ID de AWS cuenta del propietario.

region

La región del equilibrador de carga y del bucket de S3.

aaaa/mm/dd

La fecha de entrega del log.

load-balancer-id

ID de recurso del equilibrador de carga. Si el ID de recurso contiene barras diagonales (/), estas se sustituyen por puntos (.).

end-time

La fecha y hora en que finalizó el intervalo de registro. Por ejemplo, si el valor de este campo es 20140215T2340Z, contiene las entradas correspondientes a las solicitudes realizadas entre las 23:35 y las 23:40 en la zona horaria de Zulu o UTC.

ip-address

La dirección IP del nodo del equilibrador de carga que controló la solicitud. Si se trata de un equilibrador de carga interno, es una dirección IP privada.

random-string

Una cadena generada aleatoriamente por el sistema.

A continuación, se muestra un ejemplo de nombre de archivo de registro con el prefijo:

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

A continuación, se muestra un ejemplo de nombre de archivo de registro sin un prefijo:

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

Puede almacenar los archivos de registro en su bucket durante todo el tiempo que desee, pero también puede definir reglas de ciclo de vida de Amazon S3 para archivar o eliminar archivos de registro automáticamente. Para obtener más información, consulte Administración del ciclo de vida de los objetos en la Guía del usuario de Amazon Simple Storage Service.

Entradas de registro de conexión

Cada intento de conexión tiene una entrada en un archivo de registro de conexiones. La forma en que se envían las solicitudes de los clientes depende de si la conexión es persistente o no persistente. Las conexiones no persistentes tienen una sola solicitud, lo que crea una entrada única en el registro de acceso y en el registro de conexiones. Las conexiones persistentes tienen varias solicitudes, lo que crea varias entradas en el registro de acceso y una sola entrada en el registro de conexiones.

Sintaxis

Las entradas del registro de conexiones utilizan el siguiente 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]

En la siguiente tabla se describen los campos de una entrada del registro de conexiones, en orden. Todos los campos están delimitados por espacios. Cuando se introducen campos nuevos, se añaden al final de la entrada de log. Debe hacer caso omiso de todos los campos inesperados situados al final de la entrada de log.

Campo Descripción

Marca de tiempo

La hora, en formato ISO 8601, en la que el balanceador de carga estableció correctamente o no pudo establecer una conexión.

client_ip

Dirección IP del cliente solicitante.

client_port

El puerto del cliente solicitante.

listener_port

El puerto del agente de escucha del balanceador de cargas que recibe la solicitud del cliente.

tls_protocol

[Listener HTTPS] El protocolo SSL/TLS utilizado durante los apretones de manos. Este campo está configurado para solicitudes que no son de SSL/TLS. -

tls_cipher

[Listener HTTPS] El protocolo SSL/TLS utilizado durante los apretones de manos. Este campo está configurado para solicitudes que no son de SSL/TLS. -

tls_handshake_latency

[Listener HTTPS] El tiempo total en segundos, con una precisión de milisegundos, transcurrido hasta que se estableció un apretón de manos exitoso. Este campo se establece en los siguientes casos: -

  • La solicitud entrante no es una solicitud de SSL/TLS.

  • El apretón de manos no se ha establecido correctamente.

leaf_client_cert_subject

[Listener HTTPS] El nombre del asunto del certificado de cliente Leaf. Este campo se establece en los siguientes - casos:

  • La solicitud entrante no es una solicitud de SSL/TLS.

  • El agente de escucha del balanceador de cargas no está configurado con mTLS activado.

  • El servidor no puede cargar ni analizar el certificado del cliente Leaf.

leaf_client_cert_valid

[HTTPS listener] La validez, con not-before y not-after en formato ISO 8601, del certificado de cliente Leaf. Este campo se establece en los siguientes casos: -

  • La solicitud entrante no es una solicitud de SSL/TLS.

  • El agente de escucha del balanceador de cargas no está configurado con mTLS activado.

  • El servidor no puede cargar/analizar el certificado del cliente Leaf.

leaf_client_cert_serial_number

[Listener HTTPS] El número de serie del certificado de cliente Leaf. Este campo se establece en los siguientes - casos:

  • La solicitud entrante no es una solicitud de SSL/TLS.

  • El agente de escucha del balanceador de cargas no está configurado con mTLS activado.

  • El servidor no puede cargar/analizar el certificado del cliente Leaf.

tls_verify_status

[Listener HTTPS] El estado de la solicitud de conexión. Este valor corresponde a Success si la conexión se estableció correctamente. En una conexión fallida, el valor esFailed:$error_code.

conn_trace_id

El identificador de trazabilidad de la conexión es un identificador opaco único que se utiliza para identificar cada conexión. Una vez establecida una conexión con un cliente, las solicitudes posteriores de este cliente incluirán este ID en sus respectivas entradas del registro de acceso. Este ID actúa como una clave externa para crear un enlace entre los registros de conexión y acceso.

Códigos de motivo de error

Si el balanceador de cargas no puede establecer una conexión, guarda uno de los siguientes códigos de motivo en el registro de conexiones.

Código Descripción

ClientCertMaxChainDepthExceeded

Se ha superado la profundidad máxima de la cadena de certificados de cliente

ClientCertMaxSizeExceeded

Se ha superado el tamaño máximo del certificado de cliente

ClientCertCrlHit

La CA ha revocado el certificado de cliente

ClientCertCrlProcessingError

Error al procesar la CRL

ClientCertUntrusted

El certificado del cliente no es de confianza

ClientCertNotYetValid

El certificado de cliente aún no es válido

ClientCertExpired

El certificado de cliente ha caducado

ClientCertTypeUnsupported

El tipo de certificado de cliente no es compatible

ClientCertInvalid

El certificado de cliente no es válido

ClientCertRejected

El certificado de cliente se rechaza mediante una validación de servidor personalizada

UnmappedConnectionError

Error de conexión en tiempo de ejecución no mapeado

Ejemplo de entradas de registro

A continuación se muestran ejemplos de entradas del registro de conexiones.

A continuación se muestra un ejemplo de entrada de registro para una conexión correcta con un agente de escucha HTTPS con el modo de verificación TLS mutua activado en el puerto 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

El siguiente es un ejemplo de entrada de registro para una conexión fallida con un agente de escucha HTTPS con el modo de verificación TLS mutua habilitado en el puerto 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

Procesamiento de archivos de registro de conexiones

Los archivos de registro de conexiones están comprimidos. Si abre los archivos en la consola de Amazon S3, se descomprimen y se muestra la información. Si descarga los archivos, debe descomprimirlos para ver la información.

Si existe una gran cantidad de demanda en el sitio web, el equilibrador de carga puede generar archivos registro con gigabytes de datos. Es posible que no pueda procesar una cantidad tan grande de datos mediante el line-by-line procesamiento. En tal caso, podría ser preciso utilizar herramientas de análisis que ofrezcan soluciones de procesamiento en paralelo. Por ejemplo, puede utilizar las siguientes herramientas analíticas para analizar y procesar los registros de conexiones:

  • Amazon Athena es un servicio de consultas interactivo que facilita el análisis de datos en Amazon S3 con SQL estándar.

  • Loggly

  • Splunk

  • Sumo Logic