Interrogation des journaux de l'équilibreur de charge d'application - Amazon Athena

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.

Interrogation des journaux de l'équilibreur de charge d'application

est une option d'équilibrage de charge pour Equilibreur de charge d'application qui active la distribution du trafic dans un déploiement de microservices à l'aide de conteneurs.Elastic Load Balancing L'interrogation des journaux Equilibreur de charge d'application vous permet de voir la source du trafic, la latence et les octets transférés vers et depuis les instances Elastic Load Balancing et les applications principales. Pour plus d'informations, consultez Journaux d'accès pour votre équilibreur de charge d'application dans le Guide de l'utilisateur pour les Application Load Balancers.

Prerequisites

Création de la table pour les journaux ALB

  1. Copiez et collez l'instruction CREATE TABLE suivante dans la console Athena. Remplacez les valeurs dans LOCATION 's3://your-alb-logs-directory/AWSLogs/<ACCOUNT-ID>/elasticloadbalancing/<REGION>/' par celles correspondant à l'emplacement de votre compartiment Amazon S3. Pour plus d'informations sur chaque champ, consultez Entrées de journal d'accès dans le Guide de l'utilisateur pour les Application Load Balancers.

    CREATE EXTERNAL TABLE IF NOT EXISTS alb_logs ( type string, time string, elb string, client_ip string, client_port int, target_ip string, target_port int, request_processing_time double, target_processing_time double, response_processing_time double, elb_status_code string, target_status_code string, received_bytes bigint, sent_bytes bigint, request_verb string, request_url string, request_proto string, user_agent string, ssl_cipher string, ssl_protocol string, target_group_arn string, trace_id string, domain_name string, chosen_cert_arn string, matched_rule_priority string, request_creation_time string, actions_executed string, redirect_url string, lambda_error_reason string, target_port_list string, target_status_code_list string, classification string, classification_reason string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) ([^ ]*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^\s]+?)\" \"([^\s]+)\" \"([^ ]*)\" \"([^ ]*)\"') LOCATION 's3://your-alb-logs-directory/AWSLogs/<ACCOUNT-ID>/elasticloadbalancing/<REGION>/';
  2. Exécutez la requête dans la console Athena. Une fois que la requête est terminée, Athena enregistre la table alb_logs, de telle sorte que les données soient prêtes pour que vous puissiez émettre des requêtes.

Exemples de requêtes pour les journaux ALB

La requête suivante compte le nombre de demandes HTTP GET reçues par l'équilibreur de charge et regroupées par l'adresse IP du client:

SELECT COUNT(request_verb) AS count, request_verb, client_ip FROM alb_logs GROUP BY request_verb, client_ip LIMIT 100;

Une autre requête affiche les URLs visitées par les utilisateurs du navigateur Safari :

SELECT request_url FROM alb_logs WHERE user_agent LIKE '%Safari%' LIMIT 10;

L'exemple suivant montre comment analyser les journaux par datetime :

SELECT client_ip, sum(received_bytes) FROM alb_logs WHERE parse_datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') BETWEEN parse_datetime('2018-05-30-12:00:00','yyyy-MM-dd-HH:mm:ss') AND parse_datetime('2018-05-31-00:00:00','yyyy-MM-dd-HH:mm:ss') GROUP BY client_ip;
  • Pour plus d'informations et d'exemples, consultez l'article du Centre de connaissances AWSComment puis-je analyser mes journaux d'accès de l'équilibreur de charge d'application à l'aide d'Athena ?.

  • Pour plus d'informations sur le partitionnement des journaux ALB avec Athena, consultez athena-add-partition sur GitHub.