Consultas de ejemplo - Amazon CloudWatch Logs

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 información sobre cómo ejecutar un comando de consulta, consulte el Tutorial: Ejecutar y modificar una consulta de ejemplo en la Guía del usuario de Amazon CloudWatch Logs.

Para obtener más información sobre la sintaxis de las consultas, consulteCloudWatch Sintaxis de consultas de Logs Insights.

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? en la página de asistencia AWS premium.

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 en el blog AWS Cloud Operations & Migrations.

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 loggingTimeloggingType 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