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
Questa sezione contiene un elenco di comandi di query generali e utili che è possibile eseguire nella console. CloudWatch
Per ulteriori informazioni sulla sintassi delle query, consulta. CloudWatch Sintassi delle query di Logs Insights
Argomenti
Query generali
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
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
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
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
Trova il numero di voci di log per ogni servizio, tipo di evento e Regione AWS .
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 gli ARN degli 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
Domande per Amazon API Gateway
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ù popolari nel tuo Amazon API Gateway gruppo di log di accesso
stats count(*) as requestCount by path | sort requestCount desc | limit 10
Crea un rapporto sulla latenza di integrazione per il tuo gruppo di log di Amazon API Gateway accesso
filter status=200 | stats avg(integrationLatency), max(integrationLatency), min(integrationLatency) by bin(1m)
Query per il gateway NAT
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
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
È 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
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
Richieste per Amazon EventBridge
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
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