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 la consulta, consulte CloudWatch Registra la sintaxis de consulta del idioma Insights.
Temas
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 de registros de flujo de Amazon VPC
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
Buscar las direcciones IP que 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)
Buscar los 10 solucionadores de DNS con el mayor número de solicitudes.
stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10
Buscar el número de registros por dominio y subdominio donde el servidor no pudo completar la solicitud de DNS.
filter responseCode="SERVFAIL" | stats count(*) by queryName
Consultas de CloudTrail registros
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"
Busque las AWS regiones, los nombres de usuario y ARNs los usuarios de IAM recién creados.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Buscar el número de registros en los que se ha producido una excepción al invocar a la API UpdateTrail
.
filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage
Buscar entradas de registro en las que se usó 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
Buscar la cantidad de llamadas por servicio que usaron las versiones de TLS 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 rutas de API más populares de tu grupo de registros de Amazon API Gateway acceso
stats count(*) as requestCount by path | sort requestCount desc | limit 10
Crea un informe de latencia de integración para tu grupo de registros de Amazon API Gateway acceso
filter status=200 | stats avg(integrationLatency), max(integrationLatency), min(integrationLatency) by bin(1m)
Consultas para la puerta de enlace NAT
Si observas costes más altos de lo normal en tu AWS factura, puedes usar CloudWatch Logs Insights para encontrar a los principales contribuyentes. Para obtener más información sobre los siguientes comandos de consulta, consulte ¿Cómo puedo encontrar los principales contribuyentes al tráfico a través de la puerta de enlace NAT en mi VPC?
nota
En los siguientes comandos de consulta, sustituya “x.x.x.x” por la IP privada de la puerta de enlace NAT y sustituya “y.y” por los dos primeros octetos del rango CIDR de la VPC.
Buscar las instancias que envían más tráfico a través de su puerta de enlace de 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
Determinar el tráfico de entrada y salida de las instancias de las puertas de enlace de 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
Determinar los destinos de Internet con los que las instancias de la VPC se comunican con mayor frecuencia para las 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
Puede 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
Buscar el número de solicitudes GET únicas que han accedido a su página principal con el código de estado “200” (correcta).
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