Création de la table des journaux d’accès ALB
-
Copiez et collez l’instruction
CREATE TABLEsuivante dans l’éditeur de requêtes de la console Athena, puis modifiez-la selon vos besoins en matière d’entrée de journal. Pour plus d'informations sur le démarrage avec la console Athena, veuillez consulter la rubrique Premiers pas. Remplacez le chemin indiqué dans la clauseLOCATIONpar l’emplacement du dossier de vos journaux d’accès Amazon S3. Pour plus d’informations sur l’emplacement des fichiers journaux d’accès, consultez Access log files dans le Guide d’utilisation des équilibreurs de charge Application Load Balancer.Pour plus d’informations sur chaque champ des fichiers journaux, consultez la rubrique Access log entries dans le Guide d’utilisation des équilibreurs de charge Application Load Balancer.
Note
L’exemple d’instruction
CREATE TABLEsuivant inclut les colonnes récemment ajoutéesclassification,classification_reasonetconn_trace_id(« ID de traçabilité » ou TID). Pour créer une table pour les journaux d’accès Application Load Balancer qui ne contiennent pas ces entrées, supprimez les colonnes correspondantes de l’instructionCREATE TABLEet modifiez l’expression régulière en conséquence.CREATE EXTERNAL TABLE IF NOT EXISTS alb_access_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 int, 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, conn_trace_id 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://amzn-s3-demo-bucket/access-log-folder-path/'Note
Nous suggérons que le modèle
à la fin du paramètre?( .*)?input.regexreste toujours en place pour gérer les futures entrées de journaux au cas où de nouveaux champs de journaux ALB seraient ajoutés. -
Exécutez la requête dans la console Athena. Une fois que la requête est terminée, Athena enregistre la table
alb_access_logs, de telle sorte que les données soient prêtes pour que vous puissiez émettre des requêtes.