Les access logs fournissent des informations détaillées sur les requêtes envoyées à vos load balancers.

Par défaut, les access logs sont désactivés. Vous pouvez les activer ou désactiver à tout moment. Pour en savoir plus, voir Activer ou désactiver les access logs pour vos load balancers.



Informations générales

Les access logs sont publiés dans des fichiers logs dans un bucket OUTSCALE Object Storage (OOS). Pour activer les access logs, vous devez spécifier le nom du bucket OOS dans lequel le load balancer peut les publier. Pour en savoir plus, voir À propos du stockage objet et Activer ou désactiver les access logs pour vos load balancers.

Le load balancer et le bucket OOS doivent être situés dans la même Région, mais peuvent appartenir à des comptes différents. Dans ce cas, vous devez accorder au load balancer les droits d'accès au bucket OOS. Pour en savoir plus, voir Configurer l'ACL d'un bucket.



Fichiers logs

Le load balancer publie un fichier log dans le bucket OOS toutes les 5 ou 60 minutes (par défaut, 60 minutes). Vous pouvez modifier cet intervalle à tout moment. Pour en savoir plus, voir Activer ou désactiver les access logs pour vos load balancers.

Les fichiers logs sont automatiquement nommés selon le format suivant :

bucket[/prefix]/OWSLogs/account-id/lbu/region/yyyy/mm/dd/account-id_lbu_region_load-balancer-name_end-time_ip-address_random-string.log 

Ce format se compose des éléments suivants :

  • bucket : Le nom du bucket OOS dans lequel les access logs sont publiés.
  • prefix : Le chemin d'accès du répertoire dans le bucket OOS pour les access logs. Si aucun chemin d'accès n'est spécifié, ils sont publiés au niveau root du bucket.

  • account-id : L'ID du compte du propriétaire du load balancer.
  • region : La Région dans laquelle le load balancer et le bucket OOS sont situés. 
  • yyyy/mm/dd : La date de publication du fichier log. 
  • load-balancer-name : Le nom du load balancer qui a publié le fichier log.
  • end-time : La date et l'heure de fin de l'intervalle de publication. Par exemple, un fichier log daté 20170210T1940Z contient les access logs logs entre 19:35 et 19:40 si l'intervalle est de 5 minutes.
  • ip-address : L'adresse IP du load balancer qui a traité la requête. Pour un load balancer interne, son adresse IP privée.
  • random-string : Une chaîne de caractères aléatoire générée par le système.



Entrées logs

Dans un fichier log, chaque entrée log correspond à une seule requête envoyée au load balancer. Ceci inclut également les requêtes qui n'ont jamais atteint d'instance back-end, telles que les requêtes mal formées ou les requêtes auxquelles aucune instance saine ne peut répondre.

Les entrées logs utilisent le format suivant :

  • Pour les protocoles HTTP et HTTPS

    timelog lbu user:port backend:port total_time/request_time/wait_time/connection_time/server_response_time lbu_state_code request_size response_size "request" "user_agent" ssl_cipher ssl_protocol 


  • Pour les protocoles TCP et SSL

    timelog lbu user:port backend:port total_time/wait_time/connection_time lbu_state_code request_size response_size "request" "user_agent" ssl_cipher ssl_protocol 



Les champs des entrées logs dépendent du protocole de routage du listener (HTTP, HTTPS, TCP, SSL). Ils sont séparés par un espace, excepté les champs de durée qui sont séparés par une barre oblique. Pour en savoir plus, voir À propos des load balancers.

Les champs suivants sont disponibles :  

timelog

La date et l'heure à laquelle le load balancer a reçu la requête de l'utilisateur (par exemple 20170210T1940Z).

lbu

Le nom du load balancer qui a reçu la requête de l'utilisateur.

user:port

L'adresse IP et le port utilisés par l'utilisateur pour se connecter au load balancer.

backend:port
              

L'adresse IP et le port de l'instance back-end qui a traité la requête.

Cette valeur peut être :

  • "" si l'utilisateur a envoyé une requête incomplète, que le load balancer ne peut donc distribuer à aucune instance back-end.
  • "-1" si l'instance back-end ne répond pas avant le délai d'expiration.
total_time

La durée totale de traitement de la requête par le load balancer.

Cette durée correspond au temps écoulé entre :

  • Le moment où l'utilisateur envoie la requête au load balancer
  • Le moment où le load balancer renvoie la réponse à l'utilisateur.
request_time

(Listeners HTTP uniquement) La durée totale de réception de la requête de l'utilisateur par le load balancer.

Cette durée correspond au temps écoulé entre :

  • Le moment où le load balancer accepte la connexion de l'utilisateur
  • Le moment où le load balancer reçoit la dernière en-tête HTTP de réponse.

La valeur "-1" signifie que le load balancer n'a jamais reçu la ligne vide indiquant la fin des en-têtes, par exemple lorsque l'utilisateur est déconnecté prématurément.

wait_time

La durée totale d'attribution d'un créneau de connexion à la requête.

Cette durée inclut l'attente au serveur et à l'instance back-end. Elle dépend de la taille de la file d'attente, et du temps nécessaire aux serveur pour traiter les requêtes précédentes.

La valeur "-1" signifie que la requête a été annulée avant d'atteindre la file d'attente, par exemple lorsqu'elle est invalide ou refusée.

connection_time

La durée totale d'établissement de la connexion TCP à l'instance back-end par le load balancer.

Cette durée correspond au temps écoulé entre :

  • Le moment où le load balancer envoie la requête de connexion, ou le paquet TCP SYN
  • Le moment où l'instance back-end accepte la requête de connexion, ou renvoie le paquet SYN/ACK.

La valeur "-1" signifie que la connexion n'a jamais été établie.

server_response_time

(Listeners HTTP uniquement) La durée totale de réponse par l'instance back-end.

Cette durée correspond au temps écoulé entre :

  • Le moment où le load balancer établit une connexion TCP avec l'instance back-end
  • Le moment où l'instance back-end renvoie ses en-têtes de réponse complètes.

La valeur "-1" signifie que le load balancer n'a jamais reçu la ligne vide indiquant la fin des en-têtes, par exemple lorsque l'instance back-end est déconnectée avant la fin du traitement de la requête.

lbu_state_code

(Listeners HTTP uniquement) Le code HTTP de la réponse du load balancer.

request_size

La taille de la requête reçue de l'utilisateur, en octets.

Cette valeur inclut :

  • (Listeners HTTP/HTTPS) Le corps de la requête sans les en-têtes.
  • (Listeners TCP/SSL) Le corps de la requête avec les en-têtes.
response_size

La taille de la réponse renvoyée à l'utilisateur, en octets.

Cette valeur inclut :

  • (Listeners HTTP/HTTPS) Le corps de la requête sans les en-têtes.
  • (Listeners TCP/SSL) Le corps de la requête avec les en-têtes.
request

La requête de l'utilisateur, entre guillemets et au format suivant :

Méthode HTTP + Protocole://Host en-tête:port + chemin d'accès + version HTTP

(Listeners TCP) L'URL est remplacée par trois tirets séparés par un espace, et suivis d'un espace (- - - ).

user_agent

(Listeners HTTP/HTTPS uniquement) Une chaîne de caractères qui identifie l'utilisateur, entre guillemets.

Cette chaîne contient un ou plusieurs identifiants produit, au format suivant : produit[/version].

Au-delà de 8 Kio, la chaîne est tronquée.

ssl_cipher

(Listeners HTTPS/SSL uniquement) Le chiffrement SSL.

Ce champ apparaît uniquement si la connexion SSL/TLS entrante a été établie après une negotiation réussie. Sinon, sa valeur est "-".

ssl_protocol

(Listeners HTTPS/SSL uniquement) Le protocole SSL.

Ce champ apparaît uniquement si la connexion SSL/TLS entrante a été établie après une negotiation réussie. Sinon, sa valeur est "-".