

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à.

# Interrogazione dei log con Logs Insights CloudWatch
<a name="sal-cw-querying-insights"></a>

CloudWatch Logs Insights ti consente di cercare e analizzare in modo interattivo i dati dei log di accesso al server. Le query vengono eseguite sul gruppo di log in cui vengono recapitati i log e restituiscono i risultati in pochi secondi.

**Nota**  
Per interrogare i log distribuiti a un bucket generico Amazon S3, consulta. [Esecuzione di query sui log degli accessi per le richieste tramite Amazon Athena](using-s3-access-logs-to-identify-requests.md#querying-s3-access-logs-for-requests) Per interrogare il mirror delle tabelle S3 con SQL, vedi. [Interrogazione dei log di accesso nelle tabelle S3](sal-cw-querying-s3tables.md)

## Nozioni di base
<a name="sal-cw-insights-getting-started"></a>

1. Apri la CloudWatch console all'indirizzo. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Nel riquadro di navigazione, scegli **Logs**, quindi **Logs** Insights.

1. Seleziona il gruppo di log di accesso al server dal selettore del gruppo di log.

1. Scegli un intervallo di tempo per la tua richiesta.

1. Inserisci una query e scegli **Esegui interrogazione**.

## Analisi del traffico
<a name="sal-cw-insights-traffic"></a>

Le seguenti domande consentono di comprendere il volume delle richieste e i modelli di traffico.

**Example Volume delle richieste nel tempo**  

```
stats count(*) as requests by bin(5m) as interval
| sort interval asc
```

**Example Combinazione di richieste per tipo di operazione**  

```
stats count(*) as cnt by operation
| sort cnt desc
```

**Example Traffico per secchio**  

```
stats count(*) as requests, sum(bytes_sent_size) as bytes_out by bucket_arn
| sort requests desc
```

## Risoluzione degli errori
<a name="sal-cw-insights-errors"></a>

Le seguenti interrogazioni consentono di identificare e diagnosticare gli errori.

**Example Ripartizione del tasso di errore**  

```
filter http_status >= 400
| stats count(*) as error_count by http_status, error_code, operation
| sort error_count desc
```

**Example 403 Richieste di accesso negato**  

```
filter http_status = 403
| stats count(*) as denied_count by key_name, remote_ip, requester
| sort denied_count desc
```

**Example 404 Richieste non trovate**  

```
filter http_status = 404
| stats count(*) as miss_count by key_name, error_code, remote_ip
| sort miss_count desc
```

**Example 503 SlowDown (limitazione) eventi**  

```
filter http_status = 503
| stats count(*) as throttle_count by key_name, remote_ip
| sort throttle_count desc
```

## Modelli di accesso
<a name="sal-cw-insights-access"></a>

Le seguenti domande ti aiutano a capire chi accede ai tuoi dati e in che modo.

**Example Traffico per IP di origine**  

```
stats count(*) as total_requests,
  sum(http_status >= 400) as errors,
  sum(bytes_sent_size) as bytes_transferred
  by remote_ip
| sort total_requests desc
```

**Example Operazioni per richiedente**  

```
stats count(*) as requests by requester, operation
| sort requests desc
```

**Example Chiavi più utilizzate**  

```
filter operation like /REST\.(GET|PUT)\.OBJECT/
| stats count(*) as access_count, sum(bytes_sent_size) as bytes_out by key_name
| sort access_count desc
| limit 10
```

## Analisi della latenza
<a name="sal-cw-insights-latency"></a>

Le seguenti query consentono di identificare le richieste lente e le tendenze di latenza.

**Example Latenza per tipo di operazione**  

```
filter operation like /REST\.(GET|PUT)\.OBJECT/
| stats avg(total_duration) as avg_ms,
  pct(total_duration, 50) as p50_ms,
  pct(total_duration, 95) as p95_ms,
  max(total_duration) as max_ms,
  count(*) as requests
  by operation
```

**Example Tasti più lenti per latenza p95**  

```
filter operation like /REST\.GET\.OBJECT/
| stats avg(total_duration) as avg_ms,
  pct(total_duration, 95) as p95_ms,
  count(*) as requests
  by key_name
| sort p95_ms desc
| limit 10
```

**Example Latenza nel tempo**  

```
filter operation like /REST\.(GET|PUT)\.OBJECT/
| stats avg(total_duration) as avg_ms, pct(total_duration, 95) as p95_ms by bin(5m) as interval
| sort interval asc
```

## Attribuzione dei costi
<a name="sal-cw-insights-cost"></a>

Le seguenti domande consentono di comprendere il trasferimento dei dati e identificare i fattori di costo.

**Example Trasferimento dei dati per operazione**  

```
filter operation like /REST\.(GET|PUT|DELETE)\.OBJECT/
| stats sum(bytes_sent_size) as total_bytes_out,
  sum(object_size) as total_object_bytes,
  count(*) as request_count
  by operation
| sort total_bytes_out desc
```

**Example Oggetti più grandi serviti**  

```
filter operation like /REST\.GET\.OBJECT/ and bytes_sent_size > 0
| stats max(object_size) as max_size, avg(object_size) as avg_size, count(*) as reads by key_name
| sort max_size desc
| limit 10
```

## Analisi della sicurezza
<a name="sal-cw-insights-security"></a>

Le seguenti interrogazioni consentono di rilevare modelli di accesso sospetti.

**Example IP con tassi di errore elevati**  

```
stats count(*) as total,
  sum(http_status >= 400) as errors
  by remote_ip
| filter errors > 10
| sort errors desc
```

**Example Tentativi di accesso falliti per chiave**  

```
filter http_status >= 400
| stats count(*) as attempts by remote_ip, key_name, operation, http_status
| sort attempts desc
| limit 20
```

**Example Distribuzione della versione TLS**  

```
stats count(*) as cnt by tls_version
| sort cnt desc
```