

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Eseguire query su log Classic Load Balancer
<a name="elasticloadbalancer-classic-logs"></a>

Usa i log di Classic Load Balancer per analizzare e comprendere i modelli di traffico da e verso le istanze di Elastic Load Balancing e le applicazioni di back-end. È possibile visualizzare sorgente di traffico, latenza e byte trasferiti.

Prima di analizzare i log di Elastic Load Balancing, configurali affinché siano salvati nel bucket Amazon S3 di destinazione. Per ulteriori informazioni, consulta la sezione relativa all'[accesso ai log di Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html).

**Per creare la tabella per i log di Elastic Load Balancing**

1. Copiare e incollare la seguente istruzione DDL nella console Athena. Controlla la [sintassi ](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/access-log-collection.html#access-log-entry-format)dei record di log di Elastic Load Balancing. Potrebbe essere necessario aggiornare la seguente query per includere le colonne e la sintassi Regex per la versione più recente del record. 

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS elb_logs (
    
    timestamp string,
    elb_name string,
    request_ip string,
    request_port int,
    backend_ip string,
    backend_port int,
    request_processing_time double,
    backend_processing_time double,
    client_response_time double,
    elb_response_code string,
    backend_response_code string,
    received_bytes bigint,
    sent_bytes bigint,
    request_verb string,
    url string,
    protocol string,
    user_agent string,
    ssl_cipher string,
    ssl_protocol 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.-]*)$'
   )
   LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/AWS_account_ID/elasticloadbalancing/';
   ```

1. Modifica il bucket Amazon S3 `LOCATION` per specificare la destinazione dei tuoi log di Elastic Load Balancing.

1. Eseguire la query nella console Athena. Una volta completata la query, Athena registra la tabella `elb_logs`, rendendo i dati in essa contenuti pronti per le query. Per ulteriori informazioni, consulta [Query di esempio](#query-elb-classic-example).

## Query di esempio
<a name="query-elb-classic-example"></a>

Eseguire una query simile all'esempio seguente. In tale query sono elencati i server di applicazioni di back-end che hanno restituito un codice di risposta di errore `4XX` o `5XX`. Utilizza l'operatore `LIMIT` per limitare il numero di log di cui eseguire la query alla volta.

```
SELECT
 timestamp,
 elb_name,
 backend_ip,
 backend_response_code
FROM elb_logs
WHERE backend_response_code LIKE '4%' OR
      backend_response_code LIKE '5%'
LIMIT 100;
```

Utilizza una successiva query per sommare il tempo di risposta di tutte le transazioni raggruppate in base all'indirizzo IP del back-end e al nome dell'istanza Elastic Load Balancing.

```
SELECT sum(backend_processing_time) AS
 total_ms,
 elb_name,
 backend_ip
FROM elb_logs WHERE backend_ip <> ''
GROUP BY backend_ip, elb_name
LIMIT 100;
```

Per ulteriori informazioni, consulta la sezione relativa all'[analisi dei dati su S3 utilizzando Athena](https://aws.amazon.com/blogs/big-data/analyzing-data-in-s3-using-amazon-athena/).