As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como usar padrões de filtros para fazer a correspondência de termos em eventos de log JSON
Use padrões de filtro JSON quando seus registros estiverem estruturados no formato JSON. Esses padrões permitem segmentar campos e valores específicos em objetos JSON, tornando-os ideais para:
Registros de aplicativos: segmente tipos de eventos IDs, usuários ou códigos de erro específicos
AWS registros de serviço: filtro CloudTrail, registros de fluxo de VPC ou outros registros estruturados AWS
Microsserviços: monitore aplicativos em contêineres que geram JSON estruturado
Por exemplo, use { $.eventType = "UpdateTrail" }
para encontrar CloudTrail eventos específicos ou { $.sourceIPAddress != 123.123.* }
para identificar tráfego de intervalos de IP inesperados.
Expanda as seções a seguir e navegue pelas guias para ver exemplos que mostram como criar padrões de filtro JSON para cenários de monitoramento comuns, desde padrões básicos de condição única até expressões compostas complexas.
Os exemplos a seguir mostram como usar padrões de filtro com eventos de log JSON em cenários comuns de monitoramento e solução de problemas. Cada exemplo inclui a sintaxe do padrão de filtro e casos de uso práticos em que você o aplicaria.
Esses padrões funcionam com qualquer registro formatado em JSON de aplicativos, AWS serviços, contêineres ou sistemas personalizados. Você pode usá-los com filtros métricos para criar CloudWatch métricas, filtros de assinatura para encaminhar registros para outros serviços ou Live Tail para monitorar registros em tempo real.
Se você testar um padrão de filtro de exemplo com o evento de log JSON de exemplo, deverá inserir o log JSON de exemplo em uma única linha.
Exemplo de evento de log JSON para teste:
{
"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
-
Acompanhe tipos de eventos específicos nos registros do seu aplicativo JSON para monitorar o comportamento do sistema.
Padrão de filtro:
{ $.eventType = "UpdateTrail" }
Casos de uso:
Monitoramento de aplicativos: acompanhe ações específicas do usuário ou eventos do sistema
Análise de negócios: conte ocorrências de tipos específicos de eventos
Solução de problemas: concentre-se em operações específicas ao investigar problemas
Esse padrão funciona com qualquer registro JSON contendo um campo eventType, como:
Registros do aplicativo: {"eventType": "UserLogin", "userId": "123"}
Registros do sistema: {"eventType": "ConfigUpdate", "component": "database"}
Registros da API: {"eventType": "UpdateTrail", "source": "cloudtrail"}
- Block suspicious IP addresses
-
Identifique o tráfego que não corresponde aos padrões de endereço IP esperados para o monitoramento de segurança.
Padrão de filtro:
{ $.sourceIPAddress != 123.123.* }
Casos de uso:
Monitoramento de segurança: encontre solicitações de intervalos de IP inesperados
Controle de acesso: monitore o tráfego fora da sua rede corporativa
Detecção de ameaças: identifique possíveis tentativas de acesso não autorizado
- Track specific application events
-
Monitore valores específicos em matrizes JSON para rastrear o comportamento do aplicativo e as ações do usuário.
Padrão de filtro:
{ $.arrayKey[0] = "value" }
Casos de uso:
Rastreamento do comportamento do usuário: monitore ações específicas do usuário nos registros do aplicativo
Uso de recursos: acompanhe quando recursos específicos do aplicativo são usados
Análise de erros: encontre registros com categorias de erro específicas em matrizes
- Find events using pattern matching
-
Use padrões regex para encontrar eventos com correspondência flexível para valores de campo.
Padrão de filtro:
{ $.eventType = %Trail% }
Casos de uso:
Rastreamento flexível de eventos: encontre todos os eventos que contêm padrões de texto específicos
Monitoramento de API: acompanhe famílias de APIs sem especificar nomes exatos
Análise de registros: pesquise correspondências parciais em nomes ou descrições de eventos
- Monitor application data with wildcards
-
Use curingas e regex para encontrar padrões específicos em qualquer elemento da matriz.
Padrão de filtro:
{ $.arrayKey[*] = %val.{2}% }
Casos de uso:
Validação de dados: encontre matrizes contendo valores que correspondam a padrões específicos
Filtragem de conteúdo: monitore o conteúdo gerado pelo usuário para padrões específicos
Garantia de qualidade: acompanhe a conformidade do formato de dados nos registros do aplicativo
- Track network traffic patterns
-
Monitore endereços IP dentro de intervalos específicos usando padrões de regex e curingas.
Padrão de filtro:
{ $.* = %111\.111\.111\.1[0-9]{1,2}% }
Casos de uso:
Monitoramento de rede: rastreie o tráfego de sub-redes IP específicas
Análise de segurança: monitore o acesso de intervalos de rede específicos
Balanceamento de carga: analise a distribuição do tráfego em intervalos de IP
Cotas
É possível usar no máximo um seletor de curinga em um seletor de propriedades.
- Handle JSON properties with special characters
-
Acesse propriedades JSON que contêm pontos ou outros caracteres especiais em seus nomes.
Padrão de filtro:
{ $.['cluster.name'] = "c" }
Casos de uso:
Monitoramento do Kubernetes: rastreie nomes de clusters em registros de contêineres
Rastreamento de configuração: monitore as configurações com nomes de propriedades pontilhados
Integração de terceiros: manipule registros de sistemas usando convenções de nomenclatura especiais
- Find null or missing values
-
Monitore dados ausentes ou valores nulos que possam indicar problemas no aplicativo.
Padrão de filtro:
{ $.SomeObject IS NULL }
Casos de uso:
Monitoramento da qualidade de dados: encontre registros com campos obrigatórios ausentes
Depuração de aplicativos: monitore quando os dados esperados não estão presentes
Detecção de erros: monitore respostas incompletas da API ou consultas ao banco de dados
- Detect missing configuration fields
-
Encontre registros que não tenham totalmente os campos esperados, o que pode indicar problemas de configuração.
Padrão de filtro:
{ $.SomeOtherObject NOT EXISTS }
Casos de uso:
Validação da configuração: garanta que todos os campos obrigatórios estejam presentes nos registros
Monitoramento de API: acompanhe solicitações ou respostas incompletas
Monitoramento do pipeline de dados: encontre registros sem os campos de esquema esperados
No momento, não há compatibilidade com as variáveis IS NOT
e EXISTS
.
Use expressões compostas quando precisar combinar várias condições usando os operadores lógicos AND (“&&”) e OR (“||”). Esses padrões ajudam você a criar regras de monitoramento sofisticadas que exigem que vários critérios sejam atendidos ou acionados em qualquer uma das várias condições.
As expressões compostas suportam parênteses (“()”) e seguem a ordem padrão das operações: () > && > ||. Use esses padrões quando filtros simples de condição única não forem suficientes para suas necessidades de monitoramento.
Exemplo de evento de log JSON para teste:
{
"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
-
Acompanhe quando usuários específicos realizam ações específicas combinando a identificação do usuário com o monitoramento de ações.
Padrão de filtro:
{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }
Casos de uso:
Auditoria de segurança: monitore quando usuários administradores específicos acessam recursos confidenciais
Monitoramento de conformidade: garanta que determinados usuários realizem somente ações aprovadas
Análise do comportamento do usuário: monitore as correlações entre atributos e ações do usuário
- Alert on any suspicious activity
-
Crie um amplo monitoramento que seja acionado quando ocorrer qualquer uma das várias condições preocupantes.
Padrão de filtro:
{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }
Casos de uso:
Monitoramento de segurança: alerte quando usuários específicos estiverem ativos OU quando ocorrerem padrões de dados incomuns
Integridade do sistema: monitore qualquer uma das várias condições de erro diferentes
Alertas flexíveis: crie regras abrangentes para vários cenários preocupantes
- Require multiple conditions for alerts
-
Reduza os falsos positivos exigindo que várias condições específicas sejam atendidas antes de acionar alertas.
Padrão de filtro:
{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }
Casos de uso:
Alerta de alta confiança: alerta somente quando vários indicadores suspeitos se alinham
Regras de negócios complexas: monitore cenários que exigem vários critérios
Redução de ruído: evite alertas de eventos isolados únicos
Cotas
É possível usar no máximo um seletor de curinga em um seletor de propriedades e até três seletores de curinga em um padrão de filtro com expressões compostas.
- Monitor failed correlation attempts
-
Monitore quando as relações esperadas entre os campos de dados não coincidem, o que pode indicar problemas de qualidade dos dados.
Padrão de filtro:
{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }
Casos de uso:
Validação de dados: encontre registros em que os campos relacionados não correspondam aos padrões esperados
Integridade do sistema: monitore a corrupção de dados ou problemas de sincronização
Garantia de qualidade: acompanhe quando os relacionamentos de dados se rompem