

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
<a name="CWL_QuerySyntax-examples"></a>

Esta sección contiene una lista de comandos de consulta generales y útiles que puede ejecutar en la [CloudWatchconsola](https://console.aws.amazon.com/cloudwatch/). Para obtener información sobre cómo ejecutar un comando de consulta, consulte el [Tutorial: Ejecutar y modificar una consulta de ejemplo](https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_RunSampleQuery.html) en la *Guía del usuario de Amazon CloudWatch Logs*.

Para obtener más información sobre la sintaxis de la consulta, consulte [CloudWatch Registra la sintaxis de consulta del lenguaje Insights](CWL_QuerySyntax.md).

**Topics**
+ [Consultas generales](#CWL_QuerySyntax-examples-general)
+ [Consultas de registros de Lambda](#CWL_QuerySyntax-examples-Lambda)
+ [Consultas de registros de flujo de Amazon VPC](#CWL_QuerySyntax-examples-VPC)
+ [Consultas de registros de Route 53](#CWL_QuerySyntax-examples-Route53)
+ [Consultas de CloudTrail registros](#CWL_QuerySyntax-examples-CloudTrail)
+ [Consultas para Amazon API Gateway](#CWL_QuerySyntax-examples-APIGateway)
+ [Consultas para la puerta de enlace NAT](#CWL_QuerySyntax-examples-NATGateway)
+ [Consultas para registros del servidor Apache](#CWL_QuerySyntax-examples-Apache)
+ [Consultas para Amazon EventBridge](#CWL_QuerySyntax-examples-EventBridge)
+ [Ejemplos del comando para analizar](#CWL_QuerySyntax-examples-parse)

## Consultas generales
<a name="CWL_QuerySyntax-examples-general"></a>

**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
<a name="CWL_QuerySyntax-examples-Lambda"></a>

**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
<a name="CWL_QuerySyntax-examples-VPC"></a>

**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
<a name="CWL_QuerySyntax-examples-Route53"></a>

**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
<a name="CWL_QuerySyntax-examples-CloudTrail"></a>

**Busque el número de entradas de registro para cada servicio, tipo de evento y AWS región.**

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

**Busque los hosts de Amazon EC2 que se iniciaron o se detuvieron en una región determinada AWS .**

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

**Busque las AWS regiones, los nombres de usuario y los usuarios ARNs 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
<a name="CWL_QuerySyntax-examples-APIGateway"></a>

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

Devolver la lista de las rutas de API más populares de su grupo de registro de acceso de  Amazon API Gateway 

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

Crear un informe de latencia de integración para su grupo de registro de acceso de  Amazon API Gateway 

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

## Consultas para la puerta de enlace NAT
<a name="CWL_QuerySyntax-examples-NATGateway"></a>

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, consulte [¿Cómo puedo encontrar los principales contribuyentes al tráfico a través de la puerta de enlace NAT en mi VPC?](https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-traffic-sources-nat-gateway/) en la página AWS de soporte premium.

**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
<a name="CWL_QuerySyntax-examples-Apache"></a>

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](https://aws.amazon.com/blogs/mt/simplifying-apache-server-logs-with-amazon-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
```

**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
<a name="CWL_QuerySyntax-examples-EventBridge"></a>

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
<a name="CWL_QuerySyntax-examples-parse"></a>

**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
```