View a markdown version of this page

Journaux de connexion pour votre application Load Balancer - Elastic Load Balancing

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Journaux de connexion pour votre application Load Balancer

Elastic Load Balancing fournit des journaux de connexion qui capturent des informations détaillées sur les demandes envoyées à votre équilibreur de charge. Chaque journal contient des informations telles que l'adresse IP et le port du client, le port de l'écouteur, le chiffrement et le protocole TLS utilisés, la latence du handshake TLS, l'état de la connexion et les détails du certificat client. Vous pouvez utiliser ces journaux de connexion pour analyser les modèles de demandes et résoudre les problèmes.

Les journaux de connexion sont une fonctionnalité facultative d'Elastic Load Balancing qui est désactivée par défaut. Une fois que vous avez activé les journaux de connexion pour votre équilibreur de charge, Elastic Load Balancing capture les journaux et les stocke dans le compartiment Amazon S3 que vous spécifiez, sous forme de fichiers compressés. Vous pouvez désactiver les journaux de connexion à tout moment.

Les coûts de stockage pour Amazon S3 vous sont facturés, mais pas la bande passante utilisée par Elastic Load Balancing pour envoyer les fichiers journaux à Amazon S3. Pour plus d'informations sur les coûts de stockage, consultez Tarification Amazon S3.

Important

Alors que les journaux « existants » traditionnels (décrits dans cette section) restent disponibles, Application Load Balancer propose désormais des options de journalisation améliorées via CloudWatch Logs. CloudWatch Les journaux offrent des options de livraison plus flexibles, notamment vers Amazon CloudWatch Logs, Amazon Data Firehose et Amazon Simple Storage Service. Pour configurer ces options de journalisation améliorées, consultez l'onglet Intégrations de votre équilibreur de charge. Pour plus d'informations sur CloudWatch les journaux, consultezCloudWatch Journaux pour l'équilibreur de charge de votre application.

Fichiers journaux de connexion

Elastic Load Balancing publie un fichier journal pour chaque nœud d'équilibreur de charge toutes les 5 minutes. La diffusion de journaux est cohérente à terme. L'équilibreur de charge peut fournir plusieurs journaux pour la même période. Cela se produit généralement si le site connaît un trafic dense.

Les noms de fichiers des journaux de connexion utilisent le format suivant :

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

Nom du compartiment S3.

prefix

(Facultatif) Préfixe (hiérarchie logique) pour le compartiment. Le préfixe que vous spécifiez ne doit pas inclure la chaîne AWSLogs. Pour plus d'informations, consultez Organisation des objets à l'aide de préfixes.

AWSLogs

Nous ajoutons la partie du nom de fichier commençant par AWSLogs après le nom du compartiment et le préfixe facultatif que vous avez spécifié.

aws-account-id

L'identifiant de AWS compte du propriétaire.

region

Région pour votre équilibreur de charge et le compartiment S3.

aaaa/mm/jj

Date à laquelle le journal a été fourni.

load-balancer-id

ID de ressource de l'équilibreur de charge. Si l'ID de ressource contient des barres obliques (/), elles sont remplacées par des points (.).

end-time

Date et heure auxquelles l'intervalle de journalisation a pris fin. Par exemple, une heure de fin de 20140215T2340Z contient des entrées pour les demandes effectuées entre 23 h 35 et 23 h 40 en heure UTC ou en heure zoulou.

ip-address

Adresse IP du nœud d'équilibreur de charge qui a traité la demande. Pour un équilibreur de charge, il s'agit d'une adresse IP privée.

random-string

Chaîne aléatoire générée par le système.

Voici un exemple de nom de fichier journal avec un préfixe :

s3://amzn-s3-demo-logging-bucket/logging-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

Voici un exemple de nom de fichier journal sans préfixe :

s3://amzn-s3-demo-logging-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

Vous pouvez stocker les fichiers journaux dans votre bucket indéfiniment. Vous pouvez également définir des règles de cycle de vie d'Amazon S3 pour archiver ou supprimer les fichiers journaux automatiquement. Pour plus d'informations, consultez la section Gestion du cycle de vie des objets dans le guide de l'utilisateur Amazon S3.

Entrées du journal de connexion

Chaque tentative de connexion est associée à une entrée dans un fichier journal de connexion. La façon dont les demandes des clients sont envoyées dépend de la persistance ou de la non-persistance de la connexion. Les connexions non persistantes font l'objet d'une seule demande, qui crée une entrée unique dans le journal des accès et le journal des connexions. Les connexions persistantes comportent plusieurs demandes, ce qui crée plusieurs entrées dans le journal des accès et une entrée unique dans le journal des connexions.

Syntaxe

Le tableau suivant décrit les champs d'une entrée du journal des connexions, dans l'ordre. Tous les champs sont délimités par des espaces. Lorsque nous ajoutons un nouveau champ, nous l'ajoutons à la fin de l'entrée du journal. Alors que nous nous préparons à publier un nouveau champ, il est possible que vous voyiez un « - » supplémentaire à la fin avant que le champ ne soit publié. Assurez-vous de configurer l'analyse des journaux pour qu'elle s'arrête après le dernier champ documenté, et de mettre à jour l'analyse des journaux après la publication d'un nouveau champ.

Champ (position) Description

horodatage (1)

Heure, au format ISO 8601, à laquelle l'équilibreur de charge a réussi ou n'a pas réussi à établir une connexion.

adres_IP du client (2)

Adresse IP du client demandeur.

port_client (3)

Le port du client demandeur.

port_écouteur (4)

Port de l'écouteur de l'équilibreur de charge recevant la demande du client.

protocole tls_( 5)

[Écouteur HTTPS] SSL/TLS Protocole utilisé lors des poignées de main. Ce champ est configuré - pour les SSL/TLS non-demandes.

tls_cipher (6)

[Écouteur HTTPS] SSL/TLS Protocole utilisé lors des poignées de main. Ce champ est configuré - pour les SSL/TLS non-demandes.

tls_handshake_latency (7)

[Écouteur HTTPS] Le temps total en secondes, avec une précision de la milliseconde, qui s'est écoulé lors de l'établissement d'une poignée de main réussie. Ce champ est défini dans les - cas suivants :

  • La demande entrante n'est pas une SSL/TLS demande.

  • La poignée de main n'est pas établie correctement.

leaf_client_cert_subject (8)

[Écouteur HTTPS] Nom du sujet du certificat client Leaf. Ce champ est défini dans les - cas suivants :

  • La demande entrante n'est pas une SSL/TLS demande.

  • L'écouteur de l'équilibreur de charge n'est pas configuré avec mTLS activé.

  • Le serveur n'est pas en mesure d'obtenir load/parse le certificat client Leaf.

leaf_client_cert_validity (9)

[Écouteur HTTPS] La validité, avec not-before et not-after au format ISO 8601, du certificat client Leaf. Ce champ est défini dans les - cas suivants :

  • La demande entrante n'est pas une SSL/TLS demande.

  • L'écouteur de l'équilibreur de charge n'est pas configuré avec mTLS activé.

  • Le serveur n'est pas en mesure d'obtenir load/parse le certificat client Leaf.

numéro de série leaf_client_cert_serial_number (10)

[Écouteur HTTPS] Numéro de série du certificat client Leaf. Ce champ est défini dans les - cas suivants :

  • La demande entrante n'est pas une SSL/TLS demande.

  • L'écouteur de l'équilibreur de charge n'est pas configuré avec mTLS activé.

  • Le serveur n'est pas en mesure d'obtenir load/parse le certificat client Leaf.

tls_verify_status (11)

[Écouteur HTTPS] État de la demande de connexion. Cette valeur est utilisée Success si la connexion est établie avec succès. En cas d'échec de connexion, la valeur estFailed:$error_code.

conn_trace_id (12)

L'identifiant de traçabilité de connexion est un identifiant opaque unique utilisé pour identifier chaque connexion. Une fois la connexion établie avec un client, les demandes suivantes de ce client contiennent cet identifiant dans leurs entrées de journal d'accès respectives. Cet identifiant fait office de clé étrangère pour créer un lien entre les journaux de connexion et d'accès.

tls_keyexchange (13)

[Écouteur HTTPS] L'échange de clés utilisé lors des poignées de main pour TLS ou. PQ-TLS Ce champ est configuré - pour les SSL/TLS non-demandes.

Elbe (14)

ID de ressource de l'équilibreur de charge. Si vous analysez des entrées de journaux d'accès, notez que les ID de ressource peuvent contenir des barres obliques (/).

adresse_IP (15)

Adresse IP du nœud d'équilibreur de charge qui a traité la demande. Pour un équilibreur de charge, il s'agit d'une adresse IP privée.

Codes de motif d'erreur

Si l'équilibreur de charge ne parvient pas à établir de connexion, il enregistre l'un des codes de motif suivants dans le journal des connexions.

Code Description

ClientCertMaxChainDepthExceeded

La profondeur maximale de la chaîne de certificats clients a été dépassée

ClientCertMaxSizeExceeded

La taille maximale du certificat client a été dépassée

ClientCertCrlHit

Le certificat client a été révoqué par l'autorité de certification

ClientCertCrlProcessingError

Erreur de traitement de la CRL

ClientCertUntrusted

Le certificat client n'est pas fiable

ClientCertNotYetValid

Le certificat client n'est pas encore valide

ClientCertExpired

Le certificat client a expiré

ClientCertTypeUnsupported

Le type de certificat client n'est pas pris en charge

ClientCertInvalid

Le certificat client n'est pas valide

ClientCertPurposeInvalid

L'objectif du certificat client n'est pas valide

ClientCertRejected

Le certificat client est rejeté par une validation personnalisée du serveur

UnmappedConnectionError

Erreur de connexion d'exécution non mappée

ClientCertIncompatible

Le certificat client n'est pas compatible avec la politique de sécurité de l'écouteur choisie

Exemple d'entrées de journal

Voici des exemples d'entrées de journal de connexion. Notez que l'exemple de texte apparaît sur plusieurs lignes uniquement pour en faciliter la lecture.

Voici un exemple d'entrée de journal pour une connexion réussie avec un écouteur HTTPS avec le mode de vérification TLS mutuel activé sur le port 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 TID_3180a73013c8ca4bac2f731159d4b0fe

Voici un exemple d'entrée de journal pour une connexion échouée avec un écouteur HTTPS avec le mode de vérification TLS mutuel activé sur le port 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 TID_1c71a68d70587445ad5127ff8b2687d7

Traitement des fichiers journaux de connexion

Les fichiers journaux de connexion sont compressés. Si vous ouvrez les fichiers à l'aide de la console Amazon S3, ils sont décompressés et les informations s'affichent. Si vous téléchargez les fichiers, vous devez les décompresser pour afficher les informations.

Si la demande est importante sur votre site web, votre équilibreur de charge peut générer des fichiers journaux avec des gigaoctets de données. Vous pouvez ne pas être en mesure de traiter une telle quantité de données à l'aide d'un traitement ligne par ligne. Vous devrez donc peut-être utiliser des outils d'analyse qui proposent des solutions de traitement en parallèle. Par exemple, vous pouvez utiliser les outils d'analyse suivants pour analyser et traiter les journaux de connexion :

  • Amazon Athena est un service de requête interactif qui facilite l'analyse des données dans Amazon S3 à l'aide du langage SQL standard.

  • Loggly

  • Splunk

  • Sumo Logic