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, edenyé 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.