Erstellen der Tabelle für ALB-Zugriffsprotokolle - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen der Tabelle für ALB-Zugriffsprotokolle

  1. Kopieren Sie die folgende CREATE TABLE-Anweisung, fügen Sie sie in den Abfrage-Editor der Athena-Konsole ein und ändern Sie sie dann nach Bedarf für Ihre eigenen Anforderungen an die Protokolleinträge. Weitere Informationen zu den ersten Schritten mit der Athena-Konsole finden Sie unter Erste Schritte. Ersetzen Sie den Pfad in der LOCATION-Klausel durch den Speicherort Ihres Amazon S3-Zugriffsprotokollordners. Weitere Informationen zum Speicherort der Zugriffsprotokolldatei finden Sie unter Zugriffsprotokoll-Dateien im Benutzerhandbuch für Application Load Balancer.

    Informationen zu den einzelnen Protokolldateien-Feldern finden Sie unter Zugriffsprotokoll-Einträge im Benutzerhandbuch für Application Load Balancer.

    Anmerkung

    Die folgende CREATE TABLE-Beispielanweisung enthält die kürzlich hinzugefügten Spalten classification, classification_reason und conn_trace_id ('Verfolgungs-ID' oder TID). Um eine Tabelle für Application Load Balancer-Zugriffsprotokolle zu erstellen, die diese Einträge nicht enthalten, entfernen Sie die entsprechenden Spalten aus der CREATE TABLE-Anweisung und ändern Sie den regulären Ausdruck entsprechend.

    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/'
    Anmerkung

    Wir empfehlen, das Muster ?( .*)? am Ende des input.regex-Parameters immer beizubehalten, um künftige Protokolleinträge zu verarbeiten, falls neue ALB-Protokollfelder hinzugefügt werden.

  2. Führen Sie die Abfrage in der Athena-Konsole aus. Nach Beendigung der Abfrage registriert Athena die alb_access_logs-Tabelle, sodass Sie die Daten zum Ausgeben von Abfragen nutzen können.