Pular para o conteúdo principal

Como Efetuar Consultas (Query)

A execução de consultas, ou Query, consiste no processo técnico de interrogação da base de dados para a extração de informações específicas em meio ao grande volume de logs monitorados. Esta funcionalidade é o pilar da investigação analítica, permitindo o isolamento rápido de eventos por severidade, origem, destino ou tipo de atividade.

Antes de avançar para a sintaxe avançada, é fundamental compreender a estrutura básica de qualquer consulta: a relação Campo x Valor.

A Relação Campo x Valor

No ecossistema de monitoramento, um log bruto é transformado em dados estruturados compostos por pares de Chave (Campo) e Valor. Pense nessa relação como uma pergunta e uma resposta predefinidas:

  • Campo (ou Chave): É o identificador fixo que define a categoria do dado que foi indexado. Ele funciona como uma etiqueta universal. Exemplos: agent_name, src_ip, rule_level.

  • Valor: É o dado dinâmico contido dentro daquela etiqueta, variando a cada novo evento gerado. Exemplos: servidor01, 192.168.1.50, 12.

Ao realizar uma busca na aba Explore, você sempre informará ao Grafana qual campo deseja analisar e qual valor está procurando dentro dele, utilizando um operador de associação, o caractere dois-pontos :.

  • Sintaxe Básica: campo:valor

  • Exemplo Prático: action:deny (Neste caso, action é o campo que armazena a decisão do firewall, e deny é o valor específico que filtra apenas as conexões bloqueadas).

Compreendida essa lógica estrutural, podemos combinar múltiplos pares de campos e valores utilizando operadores lógicos e comparadores para criar filtros altamente cirúrgicos.

Operadores Lógicos e Comparadores

Para refinar os resultados e correlacionar diferentes vetores de comportamento ou ameaça, utilizam-se operadores lógicos na barra de busca. Eles definem os critérios de associação entre as regras de filtragem:

  • E (AND): Restringe a busca, exigindo que todos os critérios declarados sejam atendidos simultaneamente para que o log seja exibido.

    • Exemplo: rule_level:>=12 AND agent_name:servidor01

    • Aplicação: Filtra apenas alertas de severidade alta ou crítica que tenham ocorrido especificamente no host indicado.

  • OU (OR): Amplia a busca para incluir eventos que correspondam a qualquer um dos termos listados, funcionando como uma soma de possibilidades.

    • Exemplo: level:critical OR level:alert

    • Aplicação: Consolida logs de ambas as classificações de criticidade em uma única listagem de resultados.

  • NOT (utilizando ! ou -): Operador de exclusão. É uma ferramenta essencial para remover falsos positivos ("ruídos") ou atividades legítimas já conhecidas pela equipe.

    • Exemplo: -srcintf:Visitantes (ou !srcintf:Visitantes)

    • Aplicação: Permite analisar o tráfego geral da rede corporativa, ocultando completamente os logs gerados pela interface de rede de visitantes.

Símbolos de Comparação

Estes símbolos são aplicados estritamente a campos numéricos para filtrar faixas de valores, tais como volumetria de tráfego, portas de rede ou níveis de severidade:

  • > (Maior que)

  • < (Menor que)

  • >= (Maior ou igual a)

  • <= (Menor ou igual a)

    • Exemplo: sentbyte:>0

    • Aplicação: Isola conexões onde houve efetiva transferência de dados para fora da rede, descartando tentativas de conexões nulas ou bloqueadas na origem.

Uso de Caracteres Curinga (Wildcards)

A flexibilidade e o alcance das investigações são potencializados pelo uso de caracteres curingas, recursos que permitem representar padrões dinâmicos ou parciais de texto:

  • Asterisco (*): Representa qualquer sequência de zero ou mais caracteres. É um recurso indispensável para buscas onde parte da informação é variável ou desconhecida.

    • Exemplo 1: url:http* (Captura tanto tráfego que inicia com HTTP quanto com HTTPS).

    • Exemplo 2: data_office365_UserId:*@dominio.com.br (Isola as ações de todos os usuários pertencentes exclusivamente ao domínio institucional, independentemente do nome do usuário).

Contexto Temporal

A eficácia de qualquer consulta está diretamente vinculada ao Intervalo de Tempo selecionado. Os dados exibidos em tela são sempre relativos à janela temporal escolhida. O intervalo de tempo padrão pode ser gerenciado de forma global no canto superior direito do Dashboard ou do ambiente Explore:

Por padrão, todos os painéis herdam e seguem o intervalo de tempo global definido no Dashboard. A única exceção ocorre quando há uma sobrescrita estática de tempo configurada especificamente para um painel. Nesses cenários, o painel exibirá um ícone de relógio indicando que aquela métrica possui uma janela de tempo fixa e independente.