Uso de patrones de filtro para hacer coincidir los términos en eventos de registro JSON - 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.

Uso de patrones de filtro para hacer coincidir los términos en eventos de registro JSON

Usa patrones de filtro JSON cuando tus registros estén estructurados en formato JSON. Estos patrones te permiten segmentar campos y valores específicos dentro de los objetos JSON, lo que los hace ideales para:

  • Registros de aplicaciones: diríjase a tipos de eventos IDs, usuarios o códigos de error específicos

  • AWS registros de servicio: filtros CloudTrail, registros de flujo de VPC u otros registros estructurados AWS

  • Microservicios: supervise las aplicaciones en contenedores que generan JSON estructurado

Por ejemplo, utilícelo { $.eventType = "UpdateTrail" } para buscar CloudTrail eventos específicos o { $.sourceIPAddress != 123.123.* } para identificar el tráfico de rangos de IP inesperados.

Amplíe las siguientes secciones y explore las pestañas para ver ejemplos que muestran cómo crear patrones de filtro JSON para escenarios de monitoreo comunes, desde patrones básicos de una sola condición hasta expresiones compuestas complejas.

Los siguientes ejemplos muestran cómo utilizar los patrones de filtro con los eventos de registro de JSON en situaciones comunes de supervisión y solución de problemas. Cada ejemplo incluye la sintaxis del patrón de filtro y casos de uso prácticos en los que podría aplicarlo.

Estos patrones funcionan con cualquier registro con formato JSON de aplicaciones, AWS servicios, contenedores o sistemas personalizados. Puedes usarlos con filtros de métricas para crear CloudWatch métricas, filtros de suscripción para enrutar los registros a otros servicios o Live Tail para monitorear los registros en tiempo real.

nota

Si prueba un patrón de filtro de ejemplo con el evento de registro JSON de ejemplo, debe ingresar el registro JSON de ejemplo en una sola línea.

Ejemplo de evento de registro JSON para realizar pruebas:

{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null, "cluster.name": "c" }
Monitor application events by type

Realice un seguimiento de tipos de eventos específicos en los registros de su aplicación JSON para supervisar el comportamiento del sistema.

Patrón de filtro:

{ $.eventType = "UpdateTrail" }

Casos de uso:

  • Supervisión de aplicaciones: realice un seguimiento de las acciones específicas del usuario o los eventos del sistema

  • Análisis empresarial: cuente las incidencias de determinados tipos de eventos

  • Solución de problemas: céntrese en operaciones específicas cuando investigue los problemas

Este patrón funciona con cualquier registro JSON que contenga un campo EventType, como:

  • Registros de aplicaciones: {"eventType": "UserLogin", "userId": "123"}

  • Registros del sistema: {"eventType": "ConfigUpdate", "component": "database"}

  • Registros de API: {"eventType": "UpdateTrail", "source": "cloudtrail"}

Block suspicious IP addresses

Identifique el tráfico que no coincide con los patrones de direcciones IP esperados para la supervisión de la seguridad.

Patrón de filtro:

{ $.sourceIPAddress != 123.123.* }

Casos de uso:

  • Supervisión de la seguridad: encuentre solicitudes de rangos de IP inesperados

  • Control de acceso: supervise el tráfico fuera de su red corporativa

  • Detección de amenazas: identifique posibles intentos de acceso no autorizado

Track specific application events

Supervise valores específicos en las matrices JSON para realizar un seguimiento del comportamiento de las aplicaciones y de las acciones de los usuarios.

Patrón de filtro:

{ $.arrayKey[0] = "value" }

Casos de uso:

  • Seguimiento del comportamiento de los usuarios: supervise las acciones específicas de los usuarios en los registros de las aplicaciones

  • Uso de funciones: haga un seguimiento de cuándo se utilizan funciones específicas de la aplicación

  • Análisis de errores: busque registros con categorías de error específicas en las matrices

Find events using pattern matching

Utilice patrones de expresiones regulares para buscar eventos con coincidencias flexibles para los valores de los campos.

Patrón de filtro:

{ $.eventType = %Trail% }

Casos de uso:

  • Seguimiento flexible de eventos: encuentre todos los eventos que contengan patrones de texto específicos

  • Supervisión de API: rastrea las familias de API sin especificar nombres exactos

  • Análisis de registros: busca coincidencias parciales en los nombres o descripciones de los eventos

Monitor application data with wildcards

Usa caracteres comodín y expresiones regulares para encontrar patrones específicos en cualquier elemento de la matriz.

Patrón de filtro:

{ $.arrayKey[*] = %val.{2}% }

Casos de uso:

  • Validación de datos: busque matrices que contengan valores que coincidan con patrones específicos

  • Filtrado de contenido: supervisa el contenido generado por los usuarios para detectar patrones específicos

  • Control de calidad: realice un seguimiento del cumplimiento del formato de datos en todos los registros de las aplicaciones

Track network traffic patterns

Supervise las direcciones IP dentro de rangos específicos mediante patrones de expresiones regulares y caracteres comodín.

Patrón de filtro:

{ $.* = %111\.111\.111\.1[0-9]{1,2}% }

Casos de uso:

  • Supervisión de la red: rastrea el tráfico de subredes IP específicas

  • Análisis de seguridad: supervise el acceso desde rangos de red particulares

  • Equilibrio de carga: analice la distribución del tráfico en los rangos de IP

nota

Cuotas

Solo puede utilizar un selector de caracteres comodín en un selector de propiedades.

Handle JSON properties with special characters

Acceda a las propiedades de JSON que contienen puntos u otros caracteres especiales en sus nombres.

Patrón de filtro:

{ $.['cluster.name'] = "c" }

Casos de uso:

  • Supervisión de Kubernetes: rastrea los nombres de los clústeres en los registros de los contenedores

  • Seguimiento de la configuración: supervise la configuración con nombres de propiedades punteados

  • Integración con terceros: gestione los registros de los sistemas mediante convenciones de nomenclatura especiales

Find null or missing values

Supervise si faltan datos o si hay valores nulos que puedan indicar problemas con la aplicación.

Patrón de filtro:

{ $.SomeObject IS NULL }

Casos de uso:

  • Supervisión de la calidad de los datos: busque registros en los que falten campos obligatorios

  • Depuración de aplicaciones: realiza un seguimiento de los casos en los que los datos esperados no están presentes

  • Detección de errores: supervisa las respuestas de la API o las consultas a la base de datos incompletas

Detect missing configuration fields

Busca registros a los que les falten por completo los campos esperados, lo que puede indicar problemas de configuración.

Patrón de filtro:

{ $.SomeOtherObject NOT EXISTS }

Casos de uso:

  • Validación de la configuración: asegúrese de que todos los campos obligatorios estén presentes en los registros

  • Supervisión de la API: realiza un seguimiento de las solicitudes o respuestas incompletas

  • Supervisión de la canalización de datos: encuentra registros a los que les faltan los campos de esquema esperados

nota

Las variables IS NOT y EXISTS no se admiten actualmente.

Utilice expresiones compuestas cuando necesite combinar varias condiciones mediante los operadores lógicos AND («&&») y OR («||»). Estos patrones le ayudan a crear reglas de monitoreo sofisticadas que requieren que se cumplan varios criterios o que se activan en cualquiera de las diversas condiciones.

Las expresiones compuestas admiten paréntesis («()») y siguen un orden de operaciones estándar: () > && > ||. Utilice estos patrones cuando los filtros simples de una sola condición no sean suficientes para sus necesidades de monitoreo.

Ejemplo de evento de registro JSON para realizar pruebas:

{ "user": { "id": 1, "email": "John.Stiles@example.com" }, "users": [ { "id": 2, "email": "John.Doe@example.com" }, { "id": 3, "email": "Jane.Doe@example.com" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ] }
Monitor specific user actions

Realice un seguimiento de cuándo determinados usuarios realizan determinadas acciones combinando la identificación del usuario con la supervisión de las acciones.

Patrón de filtrado:

{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }

Casos de uso:

  • Auditoría de seguridad: haga un seguimiento de cuándo determinados usuarios administradores acceden a recursos confidenciales

  • Supervisión del cumplimiento: asegúrese de que determinados usuarios solo realicen acciones aprobadas

  • Análisis del comportamiento de los usuarios: supervise las correlaciones entre los atributos y las acciones de los usuarios

Alert on any suspicious activity

Cree un monitoreo amplio que se active cuando se produzca alguna de varias condiciones preocupantes.

Patrón de filtro:

{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }

Casos de uso:

  • Supervisión de la seguridad: alerta cuando hay usuarios específicos activos O cuando se producen patrones de datos inusuales

  • Estado del sistema: supervise cualquiera de las diferentes condiciones de error

  • Alertas flexibles: cree reglas generales para varios escenarios preocupantes

Require multiple conditions for alerts

Reduzca los falsos positivos exigiendo que se cumplan varias condiciones específicas antes de activar las alertas.

Patrón de filtro:

{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }

Casos de uso:

  • Alertas de alta confianza: solo avisan cuando se alinean varios indicadores sospechosos

  • Reglas empresariales complejas: supervise los escenarios que requieren varios criterios

  • Reducción del ruido: evite las alertas de eventos únicos y aislados

nota

Cuotas

Solo puede usar un selector de comodín en un selector de propiedades y hasta tres selectores de comodín en un patrón de filtro con expresiones compuestas.

Monitor failed correlation attempts

Realice un seguimiento de los casos en que las relaciones esperadas entre los campos de datos no coinciden, lo que puede indicar problemas de calidad de los datos.

Patrón de filtro:

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

Casos de uso:

  • Validación de datos: busque registros en los que los campos relacionados no coincidan con los patrones esperados

  • Integridad del sistema: supervise la corrupción de los datos o los problemas de sincronización

  • Control de calidad: controle cuándo se rompen las relaciones de datos