

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

# Query di esempio
<a name="CWL_QuerySyntax-examples"></a>

[Questa sezione contiene un elenco di comandi di query generali e utili che è possibile eseguire nella console. CloudWatch](https://console.aws.amazon.com/cloudwatch/) Per informazioni su come eseguire un comando di query, consulta [Tutorial: Esegui e modifica una query di esempio](https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_RunSampleQuery.html) nella *Amazon CloudWatch Logs User Guide*.

Per ulteriori informazioni sulla sintassi delle query, consulta. [CloudWatch Sintassi delle interrogazioni in linguaggio Logs Insights](CWL_QuerySyntax.md)

**Topics**
+ [Query generali](#CWL_QuerySyntax-examples-general)
+ [Query per i registri di Lambda](#CWL_QuerySyntax-examples-Lambda)
+ [Query per i flussi di log Amazon VPC](#CWL_QuerySyntax-examples-VPC)
+ [Query per i registri di Route 53](#CWL_QuerySyntax-examples-Route53)
+ [Interrogazioni per i log CloudTrail](#CWL_QuerySyntax-examples-CloudTrail)
+ [Interrogazioni per Amazon API Gateway](#CWL_QuerySyntax-examples-APIGateway)
+ [Query per il gateway NAT](#CWL_QuerySyntax-examples-NATGateway)
+ [Query per i registri del server Apache](#CWL_QuerySyntax-examples-Apache)
+ [Interrogazioni per Amazon EventBridge](#CWL_QuerySyntax-examples-EventBridge)
+ [Esempi del comando parse](#CWL_QuerySyntax-examples-parse)

## Query generali
<a name="CWL_QuerySyntax-examples-general"></a>

**Trova i 25 log eventi aggiunti più di recente.**

```
fields @timestamp, @message | sort @timestamp desc | limit 25
```

**Ottieni un elenco del numero di eccezioni all'ora.** 

```
filter @message like /Exception/ 
    | stats count(*) as exceptionCount by bin(1h)
    | sort exceptionCount desc
```

**Ottieni un elenco di log eventi che non sono eccezioni.** 

```
fields @message | filter @message not like /Exception/
```

**Ottieni il log eventi più recente per ogni valore univoco del campo `server`.** 

```
fields @timestamp, server, severity, message 
| sort @timestamp asc 
| dedup server
```

**Ottieni il log eventi più recente per ogni valore univoco del campo `server` per ogni tipo di `severity`.** 

```
fields @timestamp, server, severity, message 
| sort @timestamp desc 
| dedup server, severity
```

## Query per i registri di Lambda
<a name="CWL_QuerySyntax-examples-Lambda"></a>

**Determina la quantità di memoria per la quale è stato effettuato un provisioning eccessivo.**

```
filter @type = "REPORT"
    | stats max(@memorySize / 1000 / 1000) as provisonedMemoryMB,
        min(@maxMemoryUsed / 1000 / 1000) as smallestMemoryRequestMB,
        avg(@maxMemoryUsed / 1000 / 1000) as avgMemoryUsedMB,
        max(@maxMemoryUsed / 1000 / 1000) as maxMemoryUsedMB,
        provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB
```

**Crea un report sulla latenza.**

```
filter @type = "REPORT" |
    stats avg(@duration), max(@duration), min(@duration) by bin(5m)
```

**Cerca le invocazioni lente delle funzioni ed elimina le richieste duplicate che possono derivare da nuovi tentativi o dal codice lato client. In questa query, `@duration` è espresso in millisecondi.**

```
fields @timestamp, @requestId, @message, @logStream 
| filter @type = "REPORT" and @duration > 1000
| sort @timestamp desc
| dedup @requestId 
| limit 20
```

## Query per i flussi di log Amazon VPC
<a name="CWL_QuerySyntax-examples-VPC"></a>

**Trova i primi 15 trasferimenti di pacchetti tra gli host:**

```
stats sum(packets) as packetsTransferred by srcAddr, dstAddr
    | sort packetsTransferred  desc
    | limit 15
```

**Trova i primi 15 trasferimenti di byte per gli host su una determinata sottorete.**

```
filter isIpv4InSubnet(srcAddr, "192.0.2.0/24")
    | stats sum(bytes) as bytesTransferred by dstAddr
    | sort bytesTransferred desc
    | limit 15
```

**Trova gli indirizzi IP che utilizzano UDP come protocollo di trasferimento dei dati.**

```
filter protocol=17 | stats count(*) by srcAddr
```

**Trova gli indirizzi IP in cui i record di flusso sono stati ignorati durante la finestra di acquisizione.**

```
filter logStatus="SKIPDATA"
    | stats count(*) by bin(1h) as t
    | sort t
```

**Trova un singolo record per ogni connessione, per risolvere i problemi di connettività di rete.**

```
fields @timestamp, srcAddr, dstAddr, srcPort, dstPort, protocol, bytes 
| filter logStream = 'vpc-flow-logs' and interfaceId = 'eni-0123456789abcdef0' 
| sort @timestamp desc 
| dedup srcAddr, dstAddr, srcPort, dstPort, protocol 
| limit 20
```

## Query per i registri di Route 53
<a name="CWL_QuerySyntax-examples-Route53"></a>

**Trova la distribuzione di record all'ora in base al tipo di query.**

```
stats count(*) by queryType, bin(1h)
```

**Trova i 10 resolver DNS con il più elevato numero di richieste.**

```
stats count(*) as numRequests by resolverIp
    | sort numRequests desc
    | limit 10
```

**Trova il numero di record in base a dominio e sottodominio in cui il server non è riuscito a completare la richiesta DNS.**

```
filter responseCode="SERVFAIL" | stats count(*) by queryName
```

## Interrogazioni per i log CloudTrail
<a name="CWL_QuerySyntax-examples-CloudTrail"></a>

**Trova il numero di voci di registro per ogni servizio, tipo di evento e AWS regione.**

```
stats count(*) by eventSource, eventName, awsRegion
```

**Trova gli host Amazon EC2 che sono stati avviati o interrotti in una determinata AWS regione.**

```
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
```

**Trova le AWS regioni, i nomi utente e ARNs gli utenti IAM appena creati.**

```
filter eventName="CreateUser"
    | fields awsRegion, requestParameters.userName, responseElements.user.arn
```

**Trova il numero di record in cui si è verificata un'eccezione durante il richiamo dell'API `UpdateTrail`.**

```
filter eventName="UpdateTrail" and ispresent(errorCode)
    | stats count(*) by errorCode, errorMessage
```

**Trova le voci di log in cui è stato utilizzato TLS 1.0 o 1.1**

```
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ]
| stats count(*) as numOutdatedTlsCalls by userIdentity.accountId, recipientAccountId, eventSource, eventName, awsRegion, tlsDetails.tlsVersion, tlsDetails.cipherSuite, userAgent
| sort eventSource, eventName, awsRegion, tlsDetails.tlsVersion
```

**Trova il numero di chiamate per servizio che ha utilizzato le versioni TLS 1.0 o 1.1**

```
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ]
| stats count(*) as numOutdatedTlsCalls by eventSource
| sort numOutdatedTlsCalls desc
```

## Interrogazioni per Amazon API Gateway
<a name="CWL_QuerySyntax-examples-APIGateway"></a>

Trova gli ultimi 10 errori 4XX

```
fields @timestamp, status, ip, path, httpMethod
| filter status>=400 and status<=499
| sort @timestamp desc
| limit 10
```

Identifica le 10 Amazon API Gateway richieste che richiedono più tempo nel tuo gruppo di log di accesso Amazon API Gateway 

```
fields @timestamp, status, ip, path, httpMethod, responseLatency
| sort responseLatency desc
| limit 10
```

Restituisci l'elenco dei percorsi API più comuni nel gruppo di log di accesso Amazon API Gateway 

```
stats count(*) as requestCount by path
| sort requestCount desc
| limit 10
```

Crea un report sulla latenza di integrazione per il gruppo di log di accesso Amazon API Gateway 

```
filter status=200
| stats avg(integrationLatency), max(integrationLatency), 
min(integrationLatency) by bin(1m)
```

## Query per il gateway NAT
<a name="CWL_QuerySyntax-examples-NATGateway"></a>

Se noti costi superiori al normale nella tua AWS fattura, puoi utilizzare CloudWatch Logs Insights per trovare i principali contributori. Per ulteriori informazioni sui seguenti comandi di query, vedi [Come posso trovare i principali contributori al traffico attraverso il gateway NAT nel mio VPC](https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-traffic-sources-nat-gateway/)? nella pagina di supporto AWS premium.

**Nota**  
Nei seguenti comandi di query, sostituisci "x.x.x.x" con l'IP privato del gateway NAT e "y.y" con i primi due ottetti dell'intervallo CIDR VPC.

**Trova le istanze che inviano più traffico attraverso il gateway NAT.**

```
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
```

**Determina il traffico da e verso le istanze nei gateway NAT.**

```
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'xxx.xx.xx.xx' and dstAddr like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
```

**Determina le destinazioni Internet con cui le istanze del VPC comunicano più spesso per caricamenti e download.**

*****Per i caricamenti*****

```
filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
```

*****Per i download*****

```
filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
```

## Query per i registri del server Apache
<a name="CWL_QuerySyntax-examples-Apache"></a>

È possibile utilizzare CloudWatch Logs Insights per interrogare i log del server Apache. Per ulteriori informazioni sulle seguenti domande, consulta [Semplificazione dei log del server Apache con CloudWatch Logs Insights](https://aws.amazon.com/blogs/mt/simplifying-apache-server-logs-with-amazon-cloudwatch-logs-insights/) nel blog Cloud Operations & Migrations. AWS 

**Trova i campi più pertinenti in modo da poter rivedere i log di accesso e verificare la presenza di traffico nel percorso */admin* dell'applicazione.**

```
fields @timestamp, remoteIP, request, status, filename| sort @timestamp desc
| filter filename="/var/www/html/admin"
| limit 20
```

**Trova il numero di richieste GET univoche che hanno effettuato l'accesso alla pagina principale con il codice di stato "200" (operazione riuscita).**

```
fields @timestamp, remoteIP, method, status
| filter status="200" and referrer= http://34.250.27.141/ and method= "GET"
| stats count_distinct(remoteIP) as UniqueVisits
| limit 10
```

**Trova il numero di volte in cui il servizio Apache è stato riavviato.**

```
fields @timestamp, function, process, message
| filter message like "resuming normal operations"
| sort @timestamp desc
| limit 20
```

## Interrogazioni per Amazon EventBridge
<a name="CWL_QuerySyntax-examples-EventBridge"></a>

Ottieni il numero di EventBridge eventi raggruppati per tipo di dettaglio dell'evento

```
fields @timestamp, @message
| stats count(*) as numberOfEvents by `detail-type`
| sort numberOfEvents desc
```

## Esempi del comando parse
<a name="CWL_QuerySyntax-examples-parse"></a>

**Utilizza un'espressione glob per estrarre i campi `@user`, `@method` e `@latency` dal campo di log `@message` e restituire la latenza media per ogni combinazione univoca di `@method` e `@user`.** 

```
parse @message "user=*, method:*, latency := *" as @user,
    @method, @latency | stats avg(@latency) by @method,
    @user
```

**Utilizza un'espressione regolare per estrarre i campi temporanei `@user2`, `@method2` e `@latency2` dal campo di log `@message` e restituire la latenza media per ogni combinazione univoca di `@method2` e `@user2`.**

```
parse @message /user=(?<user2>.*?), method:(?<method2>.*?),
    latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, 
    @user2
```

**Estrae i campi `loggingTime`, `loggingType` e `loggingMessage`, filtra per log eventi che contengono le stringhe `ERROR` o `INFO` e quindi mostra solo i campi `loggingMessage` e `loggingType` per gli eventi che contengono una stringa `ERROR`.**

```
FIELDS @message
    | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage
    | FILTER loggingType IN ["ERROR", "INFO"]
    | DISPLAY loggingMessage, loggingType = "ERROR" as isError
```