Come posso utilizzare le query di CloudWatch Logs Insights con il mio flusso di log VPC?

Ultimo aggiornamento: 07/04/2022

Desidero utilizzare le query di Amazon CloudWatch Logs Insights per elaborare i flussi di log di Amazon Virtual Private Cloud (Amazon VPC) che si trovano in un gruppo di registri. In che modo posso farlo?

Breve descrizione

Dopo aver attivato i flussi di log VPC destinati a CloudWatch Logs, viene visualizzato un flusso di registri per ogni interfaccia di rete elastica. CloudWatch Logs Insights è uno strumento di query in grado di eseguire query complesse su registri eventi archiviati in gruppi di registri. Se si verifica un problema, puoi utilizzare CloudWatch Logs Insights per identificare le potenziali cause e convalidare le correzioni implementate.

Per informazioni sui tipi di registro supportati, consulta Supported logs and discovered fields (Registri supportati e campi rilevati).

Risoluzione

Esegui una query

Per eseguire una query, effettua le seguenti operazioni:

1.    Apri la console di CloudWatch.

2.    Seleziona Logs (Registri) e poi Logs Insights (Informazioni dettagliate sui registri).

3.    Nel pannello di controllo di Logs Insights (Informazioni dettagliate sui registri), seleziona il gruppo di registri per il quale desideri analizzare e visualizzare i dati.

4.    È possibile creare una query oppure eseguire una delle query di esempio fornite per i flussi di log VPC. Se stai creando una query personalizzata, inizia consultando i tutorial forniti nella documentazione di Amazon CloudWatch. Per informazioni sulla sintassi delle query, consulta CloudWatch Logs Insights query syntax (Sintassi delle query di CloudWatch Logs Insights).

5.    Seleziona History (Cronologia) per visualizzare le query eseguite in precedenza. È possibile eseguire nuovamente le query dalla scheda History (Cronologia).

6.    Per esportare i risultati, seleziona Export results (Esporta risultati) e successivamente scegli un formato.

Query di esempio

Scenario 1

Hai un server Web, un server delle applicazioni e un server DB. L'applicazione non funziona come previsto. Ad esempio, stai ricevendo un errore di timeout o HTTP 503 e stai cercando di determinare la causa dell'errore.

Esempio di variabili:

  • Il campo Action (Azione) è impostato su "REJECT" (RIFIUTA) in modo che vengano restituite solo le connessioni rifiutate.
  • La query include solo reti interne.
  • L'elenco degli IP dei server mostra sia le connessioni in entrata che in uscita (srcAddr e dstAddr).
  • Il campo Limit (Limite) è impostato su 5 in modo che vengano mostrate solo le prime cinque voci.
  • IP del server Web: 10.0.0.4
  • IP del server dell'app: 10.0.0.5
  • IP del server DB: 10.0.0.6
filter(
action="REJECT" and
dstAddr like   /^(10\.|192\.168\.)/and
srcAddrlike   /^(10\.|192\.168\.)/ and
(
srcAddr = "10.0.0.4" or
dstAddr = "10.0.0.4" or
srcAddr = "10.0.0.5" or
dstAddr = "10.0.0.5" or
srcAddr = "10.0.0.6" or
dstAddr = "10.0.0.6" or
)
)|
stats count(*) as records by srcAddr,dstAddr,dstPort,protocol |
sort records desc |
limit 5

Scenario 2

Si verificano timeout intermittenti su una determinata interfaccia di rete elastica. La seguente query verifica la presenza di eventuali rifiuti sull'interfaccia di rete elastica per un determinato periodo di tempo.

fields @timestamp, interfaceId, srcAddr, dstAddr, action
| filter (interfaceId = 'eni-05012345abcd' and action = 'REJECT')
| sort @timestamp desc
| limit 5

Scenario 3

Il seguente esempio di query analizza i flussi di log VPC per produrre un report su una specifica interfaccia di rete elastica. La query controlla la quantità di traffico che viene inviato a diverse porte.

fields @timestemp, @message
 | stats count(*) as records by dstPort, srcAddr, dstAddr as Destination
 | filter interfaceId="eni-05012345abcd"
 | filter dstPort="80" or dstPort="443" or dstPort="22" or dstPort="25"
 | sort HitCount desc
 | limit 10

Scenario 4

La seguente query filtra i flussi di log VPC per elencare gli indirizzi IP che stanno tentando di connettersi con un IP o un CIDR specifico nel VPC.

Per un IP specifico:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter srcAddr like "172.31."

Per un CIDR specifico:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter isIpv4InSubnet(srcAddr,"172.31.0.0/16)

Nota: per ulteriori query di esempio, consulta Query di esempio.


Analyzing log data with CloudWatch Insights (Analisi dei dati di registro con CloudWatch Logs Insights)

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?