Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Consultas de ejemplo
Esta sección contiene una lista de comandos de consulta generales y útiles que puede ejecutar en la CloudWatch consola
Para obtener más información sobre la sintaxis de las consultas, consulteCloudWatch Sintaxis de consultas de Logs Insights.
Temas
- Consultas generales
- Consultas de registros de Lambda
- Consultas para registros de VPC flujo de Amazon
- Consultas de registros de Route 53
- Consultas de registros CloudTrail
- Consultas para Amazon API Gateway
- Consultas para la NAT puerta de enlace
- Consultas para registros del servidor Apache
- Consultas para Amazon EventBridge
- Ejemplos del comando para analizar
Consultas generales
Buscar los 25 eventos de registro agregados más recientes.
fields @timestamp, @message | sort @timestamp desc | limit 25
Obtener una lista del número de excepciones por hora.
filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc
Obtener una lista de los eventos de registro que no son excepciones.
fields @message | filter @message not like /Exception/
Obtener el evento de registro más reciente para cada valor único del campo server
.
fields @timestamp, server, severity, message | sort @timestamp asc | dedup server
Obtener el evento de registro más reciente para cada valor único del campo server
para cada tipo severity
.
fields @timestamp, server, severity, message | sort @timestamp desc | dedup server, severity
Consultas de registros de Lambda
Determinar la cantidad de memoria sobreaprovisionada.
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
Crear un informe de latencia.
filter @type = "REPORT" | stats avg(@duration), max(@duration), min(@duration) by bin(5m)
Buscar invocaciones de funciones lentas y eliminar las solicitudes duplicadas que puedan surgir de los reintentos o del código del lado del cliente. En esta consulta, @duration
está en milisegundos.
fields @timestamp, @requestId, @message, @logStream | filter @type = "REPORT" and @duration > 1000 | sort @timestamp desc | dedup @requestId | limit 20
Consultas para registros de VPC flujo de Amazon
Buscar las 15 primeras transferencias de paquete en hosts:
stats sum(packets) as packetsTransferred by srcAddr, dstAddr | sort packetsTransferred desc | limit 15
Buscar las 15 primeras transferencias de bytes para los hosts de una subred determinada.
filter isIpv4InSubnet(srcAddr, "192.0.2.0/24") | stats sum(bytes) as bytesTransferred by dstAddr | sort bytesTransferred desc | limit 15
Encuentre las direcciones IP que se utilizan UDP como protocolo de transferencia de datos.
filter protocol=17 | stats count(*) by srcAddr
Buscar las direcciones IP donde los registros de flujo se omitieron durante la ventana de captura.
filter logStatus="SKIPDATA" | stats count(*) by bin(1h) as t | sort t
Buscar un registro único para cada conexión, para ayudar a solucionar problemas de conectividad de red.
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
Consultas de registros de Route 53
Buscar la distribución de registros por hora por tipo de consulta.
stats count(*) by queryType, bin(1h)
Busque los 10 DNS resolutores con el mayor número de solicitudes.
stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10
Busque el número de registros por dominio y subdominio en los que el servidor no pudo completar la DNS solicitud.
filter responseCode="SERVFAIL" | stats count(*) by queryName
Consultas de registros CloudTrail
Buscar el número de entradas de registro para cada servicio, tipo de evento y región de AWS .
stats count(*) by eventSource, eventName, awsRegion
Busca los EC2 hosts de Amazon que se iniciaron o se detuvieron en una AWS región determinada.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Busca las AWS regiones, los nombres de usuario y ARNs los IAM usuarios recién creados.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Busque el número de registros en los que se produjo una excepción al invocar el APIUpdateTrail
.
filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage
Busque las entradas de registro en las que se utilizó 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
Encuentre el número de llamadas por servicio que utilizó TLS las versiones 1.0 o 1.1
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by eventSource | sort numOutdatedTlsCalls desc
Consultas para Amazon API Gateway
Buscar los últimos 10 errores de 4XX
fields @timestamp, status, ip, path, httpMethod | filter status>=400 and status<=499 | sort @timestamp desc | limit 10
Identifique las 10 Amazon API Gateway solicitudes que llevan más tiempo ejecutándose en su grupo de registros de Amazon API Gateway acceso
fields @timestamp, status, ip, path, httpMethod, responseLatency | sort responseLatency desc | limit 10
Devuelve la lista de las API rutas más populares de tu grupo de registros de Amazon API Gateway acceso
stats count(*) as requestCount by path | sort requestCount desc | limit 10
Cree un informe de latencia de integración para su grupo de registros de Amazon API Gateway acceso
filter status=200 | stats avg(integrationLatency), max(integrationLatency), min(integrationLatency) by bin(1m)
Consultas para la NAT puerta de enlace
Si observa costos más altos de lo normal en su AWS factura, puede usar CloudWatch Logs Insights para encontrar a los principales contribuyentes. Para obtener más información sobre los siguientes comandos de consulta, consulta ¿Cómo puedo encontrar a los principales contribuyentes al tráfico a través de la NAT pasarela de mi paísVPC?
nota
En los siguientes comandos de consulta, sustituya «x.x.x.x» por la IP privada de su NAT puerta de enlace y sustituya «y.y» por los dos primeros octetos de su rango. VPC CIDR
Busca las instancias que envían más tráfico a través de tu puerta de enlace. 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
Determine el tráfico que entra y sale de las instancias de sus NAT puertas de enlace.
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 los destinos de Internet con los que tus instancias VPC se comunican con más frecuencia para realizar cargas y descargas.
Para cargas
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
Para descargas
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
Consultas para registros del servidor Apache
Puedes usar CloudWatch Logs Insights para consultar los registros del servidor Apache. Para obtener más información sobre las siguientes consultas, consulte Simplificar los registros del servidor Apache con CloudWatch Logs Insights
Buscar los campos más relevantes para que pueda revisar sus registros de acceso y comprobar si hay tráfico en la ruta /admin de su aplicación
fields @timestamp, remoteIP, request, status, filename| sort @timestamp desc | filter filename="/var/www/html/admin" | limit 20
Busque el número de GET solicitudes únicas que accedieron a su página principal con el código de estado «200" (satisfactorias).
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
Buscar el número de veces que se ha reiniciado el servicio Apache.
fields @timestamp, function, process, message | filter message like "resuming normal operations" | sort @timestamp desc | limit 20
Consultas para Amazon EventBridge
Obtenga el número de EventBridge eventos agrupados por tipo de detalle del evento
fields @timestamp, @message | stats count(*) as numberOfEvents by `detail-type` | sort numberOfEvents desc
Ejemplos del comando para analizar
Utilice una expresión glob para extraer los campos @user
, @method
y @latency
del campo de registro @message
y devolver la latencia promedio para cada combinación única de @method
y @user
.
parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user
Utilice una expresión regular para extraer los campos @user2
, @method2
y @latency2
del campo de registro @message
y devolver la latencia promedio para cada combinación única de @method2
y @user2
.
parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2
Extrae los campos loggingTime
, loggingType
y loggingMessage
, filtra hasta los eventos de registro que contienen cadenas ERROR
o INFO
y, a continuación, muestra solo los campos loggingMessage
y loggingType
para los eventos que contienen una cadena ERROR
.
FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError