View a markdown version of this page

Interrogazione dei log con Logs Insights CloudWatch - Amazon Simple Storage Service

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

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 Per interrogare il mirror delle tabelle S3 con SQL, vedi. Interrogazione dei log di accesso nelle tabelle S3

Nozioni di base

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

  2. Nel riquadro di navigazione, scegli Logs, quindi Logs Insights.

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

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

  5. Inserisci una query e scegli Esegui interrogazione.

Analisi del traffico

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

Esempio Volume delle richieste nel tempo
stats count(*) as requests by bin(5m) as interval | sort interval asc
Esempio Combinazione di richieste per tipo di operazione
stats count(*) as cnt by operation | sort cnt desc
Esempio Traffico per secchio
stats count(*) as requests, sum(bytes_sent_size) as bytes_out by bucket_arn | sort requests desc

Risoluzione degli errori

Le seguenti interrogazioni consentono di identificare e diagnosticare gli errori.

Esempio Ripartizione del tasso di errore
filter http_status >= 400 | stats count(*) as error_count by http_status, error_code, operation | sort error_count desc
Esempio 403 Richieste di accesso negato
filter http_status = 403 | stats count(*) as denied_count by key_name, remote_ip, requester | sort denied_count desc
Esempio 404 Richieste non trovate
filter http_status = 404 | stats count(*) as miss_count by key_name, error_code, remote_ip | sort miss_count desc
Esempio 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

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

Esempio 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
Esempio Operazioni per richiedente
stats count(*) as requests by requester, operation | sort requests desc
Esempio 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

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

Esempio 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
Esempio 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
Esempio 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

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

Esempio 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
Esempio 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

Le seguenti interrogazioni consentono di rilevare modelli di accesso sospetti.

Esempio 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
Esempio 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
Esempio Distribuzione della versione TLS
stats count(*) as cnt by tls_version | sort cnt desc