Creazione della tabella per l’accesso ALB ai log - Amazon Athena

Creazione della tabella per l’accesso ALB ai log

  1. Copiare e incollare la seguente dichiarazione CREATE TABLE nell'editor di query della console Athena, quindi modificarla se necessario in base alle esigenze di immissione dei log. Per informazioni sull'utilizzo della console Athena, consulta Inizia a usare. Sostituire il percorso nella clausola LOCATION con la propria posizione della cartella del log di accesso di Amazon S3. Per ulteriori informazioni sulla posizione da cui accedere al file del log, consultare Accedere a file di log nella Guida per l'utente di Application Load Balancer.

    Per ulteriori informazioni su ciascun campo, consultare Voci del log di accesso nella Guida per l'utente per Application Load Balancer.

    Nota

    L'istruzione di esempio seguente CREATE TABLE include le colonne classification, classification_reason e conn_trace_id ('ID tracciabilità' o TID). Per creare una tabella per i log di accesso di Application Load Balancer che non contengono queste voci, rimuovere le due colonne corrispondenti dall'istruzione CREATE TABLE e modificare l’espressione regolare di conseguenza.

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

    Suggeriamo che lo schema ?( .*)? alla fine del parametro input.regex rimanga sempre invariato per gestire le future voci del log nel caso in cui vengano aggiunti nuovi campi di log ALB.

  2. Eseguire la query nella console Athena. Una volta completata la query, Athena registra la tabella alb_access_logs, rendendo i dati in essa contenuti pronti per l'esecuzione di query.