Journaux d'accès 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 d'accès pour votre Application Load Balancer

Elastic Load Balancing fournit des journaux d'accès qui capturent des informations détaillées sur les demandes envoyées à votre équilibreur de charge. Chaque journal contient des informations comme l'heure à laquelle la demande a été reçue, l'adresse IP du client, les latences, les chemins de demande et les réponses du serveur. Vous pouvez utiliser ces journaux d'accès pour analyser les modèles de trafic et résoudre des problèmes.

Les journaux d'accès est une fonctionnalité facultative d'Elastic Load Balancing qui est désactivée par défaut. Après avoir activé les journaux d'accès 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 d'accès à 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.

Fichiers journaux d'accès

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 d'accès respectent le format suivant :

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

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 du 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://my-bucket/my-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

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

s3://my-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

Vous pouvez stocker vos fichiers journaux dans votre compartiment aussi longtemps que vous le souhaitez, mais vous pouvez également définir des règles de cycle de vie Amazon S3 pour archiver ou supprimer automatiquement les fichiers journaux. Pour plus d'informations, consultez la section Gestion du cycle de vie des objets dans le Guide de l'utilisateur Amazon Simple Storage Service.

Entrées des journaux d'accès

Elastic Load Balancing journalise les demandes envoyées à l'équilibreur de charge, y compris les demandes qui n'ont jamais atteint les cibles. Par exemple, si un client envoie une demande incorrecte ou qu'il n'existe aucune cible saine pour répondre à cette demande, la demande est quand même consignée. Elastic Load Balancing n'enregistre pas les demandes de surveillance de l'état.

Chaque entrée du journal contient les détails d'une seule demande (ou connexion dans le cas de WebSockets) envoyée à l'équilibreur de charge. En WebSockets effet, une entrée n'est écrite qu'après la fermeture de la connexion. Si la connexion mise à niveau ne peut pas être établie, l'entrée est identique à celle correspondant à une demande HTTP ou HTTPS.

Important

Elastic Load Balancing consigne les demandes dans la mesure du possible. Il est recommandé d'utiliser les journaux d'accès pour comprendre la nature des demandes, et non comme comptabilisation complète de toutes les demandes.

Syntaxe

Le tableau suivant décrit les champs d'une entrée de journal d'accès, dans l'ordre. Tous les champs sont délimités par des espaces. Lorsque de nouveaux champs sont insérés, ils sont ajoutés à la fin de l'entrée de journal. Vous devez ignorer les champs situés à la fin de l'entrée de journal que vous n'attendiez pas.

Champ Description

type

Type de demande ou de connexion. Les valeurs possibles sont les suivantes (ignorer les autres valeurs) :

  • http – HTTP

  • https – HTTP sur TLS

  • h2 – HTTP/2 sur TLS

  • grpcs – gRPC sur TLS

  • ws — WebSockets

  • wss— WebSockets via TLS

time

Date et heure auxquelles l'équilibreur de charge a envoyé une demande au client, au format ISO 8601. Car WebSockets c'est le moment où la connexion est fermée.

elb

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 (/).

client:port

Adresse IP et port du client demandeur. S'il y a un proxy devant l'équilibreur de charge, ce champ contient l'adresse IP du proxy.

target:port

Adresse IP et port de la cible qui a traité cette demande.

Si le client n'a pas envoyé de demande complète, l'équilibreur de charge ne peut pas envoyer la demande à une cible, et cette valeur est définie sur -.

Si la cible est une fonction Lambda, cette valeur est définie sur -.

Si la demande est bloquée par AWS WAF, cette valeur est définie sur - et la valeur de elb_status_code est définie sur 403.

request_processing_time

Le temps total écoulé (en secondes, avec une précision de l'ordre de la milliseconde) entre le moment où l'équilibreur de charge a reçu la demande et le moment où il l'a envoyée à une cible.

Cette valeur est définie sur -1 si l'équilibreur de charge ne peut pas envoyer la demande à une cible. Cela peut se produire si la cible ferme la connexion avant la fin du délai d'inactivité ou si le client envoie une demande incorrecte.

Cette valeur peut également être définie sur -1 si la cible enregistrée ne répond pas avant le délai d'inactivité.

Si cette fonction AWS WAF est activée pour votre Application Load Balancer ou si le type de cible est une fonction Lambda, le temps nécessaire au client pour envoyer les données requises pour les requêtes POST est pris en compte. request_processing_time

target_processing_time

Durée totale écoulée (en secondes, avec une précision à la milliseconde) entre le moment où l'équilibreur de charge a envoyé la demande à une cible et celui où la cible a commencé à envoyer les en-têtes de réponse.

Cette valeur est définie sur -1 si l'équilibreur de charge ne peut pas envoyer la demande à une cible. Cela peut se produire si la cible ferme la connexion avant la fin du délai d'inactivité ou si le client envoie une demande incorrecte.

Cette valeur peut également être définie sur -1 si la cible enregistrée ne répond pas avant le délai d'inactivité.

Si cette option n' AWS WAF est pas activée pour votre Application Load Balancer, le temps nécessaire au client pour envoyer les données requises pour les requêtes POST est pris en compte. target_processing_time

response_processing_time

Durée totale écoulée (en secondes, avec une précision à la milliseconde) entre le moment où l'équilibreur de charge a reçu l'en-tête de réponse de la cible et celui où il a commencé à envoyer la réponse au client. Cette durée inclut le temps en file d'attente sur l'équilibreur de charge et le temps d'acquisition de la connexion entre l'équilibreur de charge et le client.

Cette valeur est définie sur -1 si l'équilibreur de charge ne reçoit pas de réponse d'une cible. Cela peut se produire si la cible ferme la connexion avant la fin du délai d'inactivité ou si le client envoie une demande incorrecte.

elb_status_code

Code d'état de la réponse de l'équilibreur de charge.

target_status_code

Code d'état de la réponse de la cible. Cette valeur est enregistrée uniquement si une connexion a été établie avec la cible et que la cible a envoyé une réponse. Sinon, elle est définie sur ‑.

received_bytes

Taille de la demande, en octets, reçue du client (demandeur). Pour les demandes HTTP, cela inclut les en-têtes. Car WebSockets il s'agit du nombre total d'octets reçus du client lors de la connexion.

sent_bytes

Taille de la réponse, en octets, envoyée au client (demandeur). Pour les demandes HTTP, cela inclut les en-têtes. Car WebSockets il s'agit du nombre total d'octets envoyés au client lors de la connexion.

"de la demande"

Ligne de demande du client, placée entre guillemets et consignée au format suivant : méthode HTTP + protocole://hôte:port/URI + version HTTP. L'équilibreur de charge conserve en l'état l'URL envoyée par le client lors de l'enregistrement de l'URI de la demande. Il ne définit pas le type de contenu pour le fichier journal d'accès. Lorsque vous traitez ce champ, tenez compte de la façon dont le client a envoyé l'URL.

"user_agent"

Chaîne Agent-Utilisateur qui identifie le client qui a envoyé la demande, placée entre guillemets. La chaîne se compose d'un ou plusieurs identificateurs, et du produit/[version]. Si la chaîne dépasse 8 Ko, elle est tronquée.

ssl_cipher

[Ecouteur HTTPS/] Chiffrement SSL. Cette valeur est définie comme - si l’écouteur n’est pas un écouteur HTTPS.

ssl_protocol

[Ecouteur HTTPS/] Protocole SSL. Cette valeur est définie comme - si l’écouteur n’est pas un écouteur HTTPS.

target_group_arn

L'Amazon Resource Name (ARN) du groupe cible.

"trace_id"

Contenu de l'en-tête X-Amzn-Trace-Id, placé entre guillemets.

"domain_name"

[Écouteur HTTPS] Domaine SNI fourni par le client lors de la liaison TLS, placé entre guillemets. Cette valeur est définie sur - si le client ne prend pas en charge SNI ou si le domaine ne correspond pas à un certificat et que le certificat par défaut est présenté au client.

"chosen_cert_arn"

[Écouteur HTTPS] ARN du certificat présenté au client, placé entre guillemets. Cette valeur est définie sur session-reused si la session est réutilisée. Cette valeur est définie comme - si l’écouteur n’est pas un écouteur HTTPS.

matched_rule_priority

Valeur de priorité de la règle qui correspondait à la demande. Si une règle correspondait, il s'agit d'une valeur comprise entre 1 et 50 000. Si aucune règle ne correspondait et que l'action par défaut a été exécutée, cette valeur est définie sur 0. Si une erreur se produit au cours de l'évaluation des règles, cette valeur est définie sur -1. Pour les autres erreurs, elle est définie sur -.

request_creation_time

Date et heure auxquelles l'équilibreur de charge a reçu les demandes, au format ISO 8601.

"actions_executed"

Actions réalisées lors du traitement de la demande, placées entre guillemets. Cette valeur est une liste séparée par des virgules qui peut inclure les valeurs décrites dans Actions prises. Si aucune action n'a été effectuée, comme pour une demande incorrecte, cette valeur est définie sur -.

"redirect_url"

URL de la cible de redirection pour l'en-tête d'emplacement de la réponse HTTP, indiquée entre guillemets. Si aucune action de redirection n'a été effectuée, cette valeur est définie sur -.

"error_reason"

Le code de motif d’erreur, placé entre guillemets. Si la demande a échoué, il s'agit de l'un des codes d'erreur décrits dans Codes de motif d'erreur. Si les actions effectuées ne comportent pas d'action d'authentification ou si la cible n'est pas une fonction Lambda, cette valeur est définie comme -.

« target:port_list »

Liste d'adresses IP et de ports séparés par des espaces pour les cibles ayant cette demande, entre guillemets doubles. Actuellement, cette liste peut contenir un élément et correspond au champ target:port.

Si le client n'a pas envoyé de demande complète, l'équilibreur de charge ne peut pas envoyer la demande à une cible, et cette valeur est définie sur -.

Si la cible est une fonction Lambda, cette valeur est définie sur -.

Si la demande est bloquée par AWS WAF, cette valeur est définie sur - et la valeur de elb_status_code est définie sur 403.

« target_status_code_list »

Liste de codes d'état séparés par des espaces provenant des réponses des cibles, entre guillemets doubles. Actuellement, cette liste peut contenir un élément et correspond au champ target_status_code.

Cette valeur est enregistrée uniquement si une connexion a été établie avec la cible et que la cible a envoyé une réponse. Sinon, elle est définie sur ‑.

« classification »

La classification pour l'atténuation de la désynchronisation, entre guillemets doubles. Si la demande n'est pas conforme à RFC 7230, les valeurs possibles sont Acceptable, Ambigu et Severe.

Si la demande est conforme à RFC 7230, cette valeur est définie sur -.

"classification_reason"

Le code de raison de la classification, entre guillemets. Si la demande n'est pas conforme à RFC 7230, il s'agit de l'un des codes de classification décrits dans Motifs de classification. Si la demande est conforme à RFC 7230, cette valeur est définie sur -.

conn_trace_id

L'identifiant de traçabilité de la 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 contiendront cet identifiant dans leurs entrées de journal d'accès respectives. Cet ID agit comme une clé étrangère pour créer un lien entre les journaux de connexion et d'accès.

Actions prises

L'équilibreur de charge stocke les actions qu'il prend dans le champ actions_executed du journal d'accès.

  • authenticate – L'équilibreur de charge a validé la session, authentifié l'utilisateur et ajouté les informations utilisateur aux en-têtes de la demande, comme spécifié par la configuration de la règle.

  • fixed-response – L'équilibreur de charge a envoyé une réponse fixe, comme spécifié par la configuration de la règle.

  • forward – L'équilibreur de charge a transféré la demande à une cible, comme spécifié par la configuration de la règle.

  • redirect – L'équilibreur de charge a redirigé la demande vers une autre URL, comme spécifié par la configuration de la règle.

  • waf – L'équilibreur de charge a transmis la demande à AWS WAF pour déterminer si la demande doit être transmise à la cible. S'il s'agit de l'action finale, AWS WAF déterminez que la demande doit être rejetée.

  • waf-failed— L'équilibreur de charge a tenté de transférer la demande à AWS WAF, mais le processus a échoué.

Motifs de classification

Si une demande n'est pas conforme à RFC 7230, l'équilibreur de charge stocke l'un des codes suivants dans le champ classification_reason du journal d'accès. Pour plus d’informations, consultez Mode d'atténuation de désynchronisation.

Code Description Classification

AmbiguousUri

L'URI de requête contient des caractères de contrôle.

Ambigu

BadContentLength

L'en-tête Content-Length contient une valeur qui ne peut pas être analysée ou n'est pas un nombre valide.

Sévère

BadHeader

Un en-tête contient un caractère nul ou un retour chariot.

Sévère

BadTransferEncoding

L'en-tête Transfer-Encoding contient une valeur incorrecte.

Sévère

BadUri

L'URI de la requête contient un caractère nul ou un retour chariot.

Sévère

BadMethod

La méthode de la requête est mal formée.

Sévère

BadVersion

La version de la requête est mal formée.

Sévère

BothTeClPresent

La requête contient à la fois un en-tête Transfer-Encoding et un en-tête Content-Length.

Ambigu

DuplicateContentLength

Il existe plusieurs en-têtes Content-Length avec la même valeur.

Ambigu

EmptyHeader

Un en-tête est vide ou il y a une ligne avec seulement des espaces.

Ambigu

GetHeadZeroContentLength

Il existe un en-tête Content-Length avec une valeur de 0 pour une requête GET ou HEAD.

Acceptable

MultipleContentLength

Il existe plusieurs en-têtes Content-Length avec des valeurs différentes.

Sévère

MultipleTransferEncodingChunked

Il existe plusieurs en-têtes segmentés Transfer-Encoding:.

Sévère

NonCompliantHeader

Un en-tête contient un caractère non ASCII ou de contrôle.

Acceptable

NonCompliantVersion

La version de requête contient une valeur incorrecte.

Acceptable

SpaceInUri

L'URI de la requête contient un espace qui n'est pas encodé par URL.

Acceptable

SuspiciousHeader

Il existe un en-tête qui peut être normalisé en Transfer-Encoding ou Content-Length à l'aide de techniques de normalisation de texte courantes.

Ambigu

UndefinedContentLengthSemantics

Un en-tête Content-Length est défini pour une demande GET ou HEAD.

Ambigu

UndefinedTransferEncodingSemantics

Un en-tête Transfer-Encoding est défini pour une demande GET ou HEAD.

Ambigu

Codes de motif d'erreur

Si l’équilibreur de charge ne peut pas achever une action d’authentification, il stocke l'un des codes de motif suivants dans le champ error_reason du journal d'accès. L'équilibreur de charge incrémente également la métrique correspondante CloudWatch . Pour plus d’informations, consultez Authentification des utilisateurs à l'aide d'un Application Load Balancer.

Code Description Métrique

AuthInvalidCookie

Le cookie dauthentification n’est pas valable.

ELBAuthFailure

AuthInvalidGrantError

Le code d’octroi d’autorisation du point de terminaison de jeton n’est pas valable.

ELBAuthFailure

AuthInvalidIdToken

Le jeton d’identification n’est pas valable.

ELBAuthFailure

AuthInvalidStateParam

Le paramètre d’état n’est pas valable.

ELBAuthFailure

AuthInvalidTokenResponse

La réponse du point de terminaison de jeton n’est pas valable.

ELBAuthFailure

AuthInvalidUserinfoResponse

La réponse du point de terminaison d’information utilisateur n’est pas valable.

ELBAuthFailure

AuthMissingCodeParam

Il manque à la réponse d'authentification du point de terminaison d'autorisation un paramètre de requête nommé 'code'.

ELBAuthFailure

AuthMissingHostHeader

Il manque à la réponse d'authentification du point de terminaison d'autorisation un champ d’en-tête d’hôte.

ELBAuthError

AuthMissingStateParam

Il manque à la réponse d'authentification du point de terminaison d'autorisation un paramètre de requête nommé 'état'.

ELBAuthFailure

AuthTokenEpRequestFailed

Il y a une réponse d'erreur (non-2XX) à partir du point de terminaison de jeton.

ELBAuthError

AuthTokenEpRequestTimeout

L'équilibreur de charge ne peut pas communiquer avec le point de terminaison de jeton.

ELBAuthError

AuthUnhandledException

L’équilibreur de charge a rencontré une exception non gérée.

ELBAuthError

AuthUserinfoEpRequestFailed

Il y a une réponse d'erreur (non-2XX) à partir du point de terminaison d’information utilisateur IdP.

ELBAuthError

AuthUserinfoEpRequestTimeout

L'équilibreur de charge ne peut pas communiquer avec le point de terminaison d’information utilisateur IdP.

ELBAuthError

AuthUserinfoResponseSizeExceeded

La taille des réclamations renvoyées par l’IdP est supérieure à 11 ko.

ELBAuthUserClaimsSizeExceeded

Si une demande à un groupe cible pondéré échoue, l'équilibreur de charge stocke un des codes d’erreur suivants dans le champ error_reason du journal d'accès.

Code Description

AWSALBTGCookieInvalid

Le AWSALBTG cookie, qui est utilisé avec des groupes cibles pondérés, n'est pas valide. Par exemple, l'équilibreur de charge renvoie cette erreur lorsque les valeurs de cookie sont codées par URL.

WeightedTargetGroupsUnhandledException

L’équilibreur de charge a rencontré une exception non gérée.

Si une demande à une fonction Lambda échoue, l'équilibreur de charge stocke l'un des codes de motif suivants dans le champ error_reason du journal d'accès. L'équilibreur de charge incrémente également la métrique correspondante CloudWatch . Pour plus d'informations, consultez l'action Lambda Invoke.

Code Description Métrique

LambdaAccessDenied

L'équilibreur de charge n'est pas autorisé à appeler la fonction Lambda.

LambdaUserError

LambdaBadRequest

L'invocation Lambda a échoué, car les en-têtes ou le corps de la requête du client ne contenaient pas uniquement des caractères UTF-8.

LambdaUserError

LambdaConnectionError

L'équilibreur de charge ne peut pas se connecter à Lambda.

LambdaInternalError

LambdaConnectionTimeout

Une tentative de connexion à Lambda a expiré.

LambdaInternalError

LambdaEC2AccessDeniedException

Amazon EC2 ne peut pas accéder à Lambda lors de l'initialisation de la fonction.

LambdaUserError

LambdaEC2ThrottledException

Amazon EC2 a limité Lambda lors de l'initialisation de la fonction.

LambdaUserError

LambdaEC2UnexpectedException

Amazon EC2 a rencontré une exception inattendue lors de l'initialisation de la fonction.

LambdaUserError

LambdaENILimitReachedException

Lambda n'a pas pu créer une interface réseau dans le VPC spécifié dans la configuration de la fonction Lambda, car la limite des interfaces réseau a été dépassé.

LambdaUserError

LambdaInvalidResponse

La réponse de la fonction Lambda est incorrecte ou des champs obligatoires sont manquants dans celle-ci.

LambdaUserError

LambdaInvalidRuntimeException

La version spécifiée de l'exécution Lambda n'est pas prise en charge.

LambdaUserError

LambdaInvalidSecurityGroupIDException

L'ID de groupe de sécurité spécifié dans la configuration de la fonction Lambda n'est pas valide.

LambdaUserError

LambdaInvalidSubnetIDException

L'ID de sous-réseau spécifié dans la configuration de la fonction Lambda n'est pas valide.

LambdaUserError

LambdaInvalidZipFileException

Lambda n'a pas pu décompresser le fichier zip de la fonction spécifiée.

LambdaUserError

LambdaKMSAccessDeniedException

Lambda n'a pas pu déchiffrer les variables d'environnement, car l'accès à la clé KMS a été refusé. Vérifiez les autorisations KMS de la fonction Lambda.

LambdaUserError

LambdaKMSDisabledException

Lambda n'a pas pu déchiffrer les variables d'environnement, car la clé KMS spécifiée est désactivée. Vérifiez les paramètres de clé KMS de la fonction Lambda.

LambdaUserError

LambdaKMSInvalidStateException

Lambda n'a pas pu déchiffrer les variables d'environnement, car l'état de la clé KMS n'est pas valide. Vérifiez les paramètres de clé KMS de la fonction Lambda.

LambdaUserError

LambdaKMSNotFoundException

Lambda n'a pas pu déchiffrer les variables d'environnement, car la clé KMS est introuvable. Vérifiez les paramètres de clé KMS de la fonction Lambda.

LambdaUserError

LambdaRequestTooLarge

La taille du corps de la demande dépassait 1 Mo.

LambdaUserError

LambdaResourceNotFound

La fonction Lambda est introuvable.

LambdaUserError

LambdaResponseTooLarge

La taille de la réponse dépassait 1 Mo.

LambdaUserError

LambdaServiceException

Lambda a rencontré Une erreur interne.

LambdaInternalError

LambdaSubnetIPAddressLimitReachedException

Lambda n'a pas pu configurer l'accès VPC de la fonction Lambda, car un ou plusieurs sous-réseaux ne disposent pas d'adresse IP.

LambdaUserError

LambdaThrottling

La fonction Lambda a été limitée en raison d'un trop grand nombre de demandes.

LambdaUserError

LambdaUnhandled

La fonction Lambda a rencontré une exception non gérée.

LambdaUserError

LambdaUnhandledException

L’équilibreur de charge a rencontré une exception non gérée.

LambdaInternalError

LambdaWebsocketNotSupported

WebSockets ne sont pas pris en charge avec Lambda.

LambdaUserError

Si l'équilibreur de charge rencontre une erreur lors du transfert des demandes AWS WAF, il enregistre l'un des codes d'erreur suivants dans le champ error_reason du journal d'accès.

Code Description

WAFConnectionError

L'équilibreur de charge ne peut pas se connecter à. AWS WAF

WAFConnectionTimeout

Le délai de connexion AWS WAF a expiré.

WAFResponseReadTimeout

Une demande d'expiration du AWS WAF délai imparti.

WAFServiceError

AWS WAF a renvoyé une erreur 5XX.

WAFUnhandledException

L’équilibreur de charge a rencontré une exception non gérée.

Exemple d'entrées de journal

Des modèles d'entrées de journal sont présentés ci-après : Notez que le texte s'affiche sur plusieurs lignes que pour en faciliter la lecture.

Exemple d'entrée HTTP

Voici un exemple d'entrée de journal pour un écouteur HTTP (port 80 vers port 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" "-" "-"
Exemple d'entrée HTTPS

Voici un exemple d'entrée de journal pour un écouteur HTTPS (port 443 vers port 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
Exemple d'entrée HTTP/2

Voici un exemple d'entrée de journal pour un flux 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" "-" "-"
Exemple WebSockets d'entrée

Voici un exemple d'entrée de journal pour une WebSockets connexion.

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" "-" "-"
Exemple d' WebSockets entrée sécurisée

Voici un exemple d'entrée de journal pour une WebSockets connexion sécurisée.

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" "-" "-"
Exemples d'entrées pour des fonctions Lambda

Voici un exemple d'entrée du journal pour une demande à une fonction Lambda qui a réussi :

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" "-" "-" "-" "-" "-" "-"

Voici un exemple d'entrée du journal pour une demande à une fonction Lambda qui a échoué :

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" "-" "-" "-" "-"

Traitement des fichiers journaux d'accès

Les fichiers journaux d'accès 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. Il se peut que vous ne puissiez pas traiter une telle quantité de données à l'aide du line-by-line traitement. 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 des journaux d'accès :