

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 di accesso nelle tabelle S3
<a name="sal-cw-querying-s3tables"></a>

Quando abiliti l'integrazione con Amazon S3 Tables, Amazon CloudWatch Logs invia i log di accesso al server in formato Apache Iceberg al bucket di tabelle gestito. `aws-cloudwatch` Poiché i dati sono in formato Iceberg, puoi interrogarli con qualsiasi strumento che supporti Apache Iceberg, tra cui:
+ **Amazon Athena**: esegui query SQL direttamente dalla console Athena utilizzando il catalogo S3 Tables.
+ **Amazon SageMaker Unified Studio**: utilizza l'editor SQL integrato per interrogare i dati di log insieme ad altri carichi di lavoro di analisi.
+ **Amazon Redshift**: interroga le tabelle Iceberg tramite Redshift Spectrum o integrazione diretta.
+ **Apache Spark su Amazon EMR**: usa Spark SQL o l' DataFrame API con il connettore Iceberg.
+ **Open-source strumenti**: qualsiasi strumento che supporti il catalogo REST di Apache Iceberg, come Trino, DuckDB o. PyIceberg

**Nota**  
Per interrogare i log in modo interattivo in CloudWatch Logs Insights (senza SQL), vedi. [Interrogazione dei log con Logs Insights CloudWatch](sal-cw-querying-insights.md)

## Prerequisiti
<a name="sal-cw-s3tables-prerequisites"></a>

Prima di poter interrogare i log di accesso in S3 Tables, devi completare quanto segue:

1. **Abilita l'integrazione con S3 Tables.** Per informazioni, consulta [Abilitazione dell'integrazione con S3 Tables (opzionale)](sal-cw-enabling.md#sal-cw-tables-integration).

1. **Abilita l'integrazione di S3 Tables con i servizi di analisi.** **Nella console Amazon S3, accedi a **Table bucket** e scegli Abilita integrazione.** Questo crea il catalogo `s3tablescatalog` federato in Data Catalog e rende le tabelle visibili ai servizi di analisi. Per impostazione predefinita, l'accesso è controllato tramite le autorizzazioni IAM. Facoltativamente, puoi utilizzarlo AWS Lake Formation per un controllo granulare degli accessi. Per ulteriori informazioni, consulta [Integrazione delle tabelle S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) con i servizi di analisi. AWS 

1. **Attendi che i dati vengano compilati.** I dati vengono in genere visualizzati entro un'ora dalla prima consegna a CloudWatch Logs.

## Connessione ad Amazon Athena
<a name="sal-cw-s3tables-athena-setup"></a>

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

1. Nell'editor di query, seleziona il catalogo **Amazon S3 Tables** dal menu a discesa delle origini dati.

1. Le tabelle di log vengono visualizzate nell'elenco del database sotto lo spazio dei `logs` nomi.

Il nome della tabella per i log di accesso al server è. `amazon_s3__server_access` Il riferimento completo alla tabella è:

```
"s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
```

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

**Example Volume delle richieste nel tempo**  

```
SELECT date_trunc('minute', request_time) AS interval,
  COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY date_trunc('minute', request_time)
ORDER BY interval ASC;
```

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

```
SELECT operation, COUNT(*) AS cnt
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY operation
ORDER BY cnt DESC;
```

**Example Traffico per secchio**  

```
SELECT bucket_arn, COUNT(*) AS requests, SUM(bytes_sent_size) AS bytes_out
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY bucket_arn
ORDER BY requests DESC;
```

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

**Example Ripartizione del tasso di errore**  

```
SELECT http_status, error_code, operation, COUNT(*) AS error_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status >= 400
GROUP BY http_status, error_code, operation
ORDER BY error_count DESC;
```

**Example 403 Richieste di accesso negato**  

```
SELECT key_name, remote_ip, requester, COUNT(*) AS denied_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status = 403
GROUP BY key_name, remote_ip, requester
ORDER BY denied_count DESC;
```

**Example 404 Richieste non trovate**  

```
SELECT key_name, error_code, remote_ip, COUNT(*) AS miss_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status = 404
GROUP BY key_name, error_code, remote_ip
ORDER BY miss_count DESC;
```

**Example 503 SlowDown (limitazione) eventi**  

```
SELECT key_name, remote_ip, COUNT(*) AS throttle_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status = 503
GROUP BY key_name, remote_ip
ORDER BY throttle_count DESC;
```

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

**Example Traffico per IP di origine**  

```
SELECT remote_ip,
  COUNT(*) AS total_requests,
  SUM(CASE WHEN http_status >= 400 THEN 1 ELSE 0 END) AS errors,
  SUM(bytes_sent_size) AS bytes_transferred
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY remote_ip
ORDER BY total_requests DESC;
```

**Example Operazioni per richiedente**  

```
SELECT requester, operation, COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY requester, operation
ORDER BY requests DESC;
```

**Example Chiavi più utilizzate**  

```
SELECT key_name, COUNT(*) AS access_count, SUM(bytes_sent_size) AS bytes_out
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT')
GROUP BY key_name
ORDER BY access_count DESC
LIMIT 10;
```

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

**Example Latenza per tipo di operazione**  

```
SELECT operation,
  AVG(total_duration) AS avg_ms,
  APPROX_PERCENTILE(total_duration, 0.5) AS p50_ms,
  APPROX_PERCENTILE(total_duration, 0.95) AS p95_ms,
  MAX(total_duration) AS max_ms,
  COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT')
GROUP BY operation;
```

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

```
SELECT key_name,
  AVG(total_duration) AS avg_ms,
  APPROX_PERCENTILE(total_duration, 0.95) AS p95_ms,
  COUNT(*) AS requests
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation = 'REST.GET.OBJECT'
GROUP BY key_name
ORDER BY p95_ms DESC
LIMIT 10;
```

**Example Latenza nel tempo**  

```
SELECT date_trunc('minute', request_time) AS interval,
  AVG(total_duration) AS avg_ms,
  APPROX_PERCENTILE(total_duration, 0.95) AS p95_ms
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT')
GROUP BY date_trunc('minute', request_time)
ORDER BY interval ASC;
```

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

**Example Trasferimento dei dati per operazione**  

```
SELECT operation,
  SUM(bytes_sent_size) AS total_bytes_out,
  SUM(object_size) AS total_object_bytes,
  COUNT(*) AS request_count
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation IN ('REST.GET.OBJECT', 'REST.PUT.OBJECT', 'REST.DELETE.OBJECT')
GROUP BY operation
ORDER BY total_bytes_out DESC;
```

**Example Oggetti più grandi serviti**  

```
SELECT key_name, MAX(object_size) AS max_size, AVG(object_size) AS avg_size, COUNT(*) AS reads
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE operation = 'REST.GET.OBJECT' AND bytes_sent_size > 0
GROUP BY key_name
ORDER BY max_size DESC
LIMIT 10;
```

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

**Example IP con alti tassi di errore**  

```
SELECT remote_ip,
  COUNT(*) AS total,
  SUM(CASE WHEN http_status >= 400 THEN 1 ELSE 0 END) AS errors
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY remote_ip
HAVING SUM(CASE WHEN http_status >= 400 THEN 1 ELSE 0 END) > 10
ORDER BY errors DESC;
```

**Example Tentativi di accesso falliti per chiave**  

```
SELECT remote_ip, key_name, operation, http_status, COUNT(*) AS attempts
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
WHERE http_status >= 400
GROUP BY remote_ip, key_name, operation, http_status
ORDER BY attempts DESC
LIMIT 20;
```

**Example Distribuzione della versione TLS**  

```
SELECT tls_version, COUNT(*) AS cnt
FROM "s3tablescatalog/aws-cloudwatch"."logs"."amazon_s3__server_access"
GROUP BY tls_version
ORDER BY cnt DESC;
```

## Utilizzo di agenti AI per interrogare i log di accesso ai server Amazon S3
<a name="sal-cw-s3tables-ai-agents"></a>

MCP-compatible Gli agenti AI possono scoprire le tabelle S3 che contengono i log di accesso ai server Amazon S3, generare query SQL e analizzare i risultati. Poiché i log di accesso al server Amazon S3 vengono esportati come tabelle Iceberg nel bucket di tabelle, gli agenti possono interrogarli tramite lo stesso catalogo S3 `aws-cloudwatch` Tables che usi con Amazon Athena, Amazon EMR, Amazon Redshift o qualsiasi altro strumento. Iceberg-compatible 

L'[Agent Toolkit for AWS fornisce competenze che forniscono agli agenti procedure convalidate per](https://github.com/aws/agent-toolkit-for-aws) lavorare con i dati. AWS L'abilità [Querying CloudWatch Logs system tables](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/system-table-skills/querying-aws-cloudwatch) esegue query SQL sui dati di CloudWatch log esportati in S3 Tables, inclusi i log di accesso al server Amazon S3 nel bucket di tabelle. `aws-cloudwatch` Per utilizzarla, scarica la skill dal repository e aggiungila alla directory delle competenze del tuo agente. GitHub 

Ad esempio, puoi chiedere a un agente di mostrare i primi 10 indirizzi IP di origine in base al numero di richieste nei log di accesso al server S3 nelle ultime 24 ore. L'agente utilizza l'abilità per individuare la tabella dei log degli accessi ed eseguire la query in Athena.