Kibana Kql Exemplos

🔍 Kibana KQL - Exemplos de Queries

Guia de exemplos práticos de queries KQL (Kibana Query Language) para análise de logs no ecossistema C-Suite.


📋 Sintaxe Básica KQL

Operadores


🔍 Exemplos de Queries

1. Buscar Erros do csuite-auth

Query Original:

service_name: "csuite-auth" AND log_level: "ERROR"

KQL Correto:

service_name: "csuite-auth" and log_level: "ERROR"

Ou (se os campos forem diferentes):

agent.name: "*csuite-auth*" and log.level: "error"

Variações:

# Erros e warnings
service_name: "csuite-auth" and (log_level: "ERROR" or log_level: "WARN")

# Erros nas últimas 1 hora
service_name: "csuite-auth" and log_level: "ERROR"

2. Buscar Logs do Traefik

Query Original:

container.image.name: "traefik*"

KQL Correto:

container.image.name: traefik*

Ou:

container.image.name: *traefik*

Variações:

# Apenas Traefik
container.image.name: traefik*

# Traefik ou qualquer container com "traefik" no nome
container.image.name: *traefik*

# Logs de containers Docker
container.id: *

3. Buscar Timeouts

Query Original:

message: "*timeout*"

KQL Correto:

message: *timeout*

Ou (busca mais específica):

message: *timeout* or message: *Timeout* or message: *TIMEOUT*

Variações:

# Timeout em qualquer campo
*timeout*

# Timeout no message ou log
(message: *timeout* or log: *timeout*)

# Timeout E erro
*timeout* and log.level: error

🎯 Queries Úteis para C-Suite

Logs de Erro por Serviço

# Erros do csuite-auth
agent.name: *csuite-auth* and log.level: error

# Erros do csuite-executive
agent.name: *csuite-executive* and log.level: error

# Erros do csuite-context
agent.name: *csuite-context* and log.level: error

# Todos os erros
log.level: error

Logs por Container

# Traefik
container.image.name: traefik*

# Filebeat
container.image.name: *filebeat*

# Elasticsearch
container.image.name: *elasticsearch*

# ClickHouse
container.image.name: *clickhouse*

# PostgreSQL
container.image.name: *postgres*

Buscar por Padrões

# Timeouts
*timeout*

# Conexões recusadas
*connection refused* or *Connection refused*

# Erros 404
*404* or status: 404

# Erros 500
*500* or status: 500

# Autenticação falhou
*auth* and (fail* or error* or denied*)

# Database errors
*database* and (error* or fail* or timeout*)

Filtrar por Tempo e Nível

# Erros nas últimas 15 minutos
log.level: error and @timestamp >= now()-15m

# Warnings nas últimas 1 hora
log.level: warn and @timestamp >= now()-1h

# Erros críticos hoje
log.level: error and @timestamp >= now()-1d

Combinar Múltiplas Condições

# Erros do Traefik relacionados a SSL
container.image.name: traefik* and log.level: error and (*ssl* or *certificate*)

# Timeouts em serviços C-Suite
agent.name: *csuite* and *timeout*

# Erros de banco de dados
(*database* or *mysql* or *postgres*) and (error* or fail*)

# Problemas de conexão
(*connection* or *connect*) and (refused* or timeout* or failed*)

📊 Queries para Análise

Top Erros

log.level: error

Depois, agrupe por agent.name ou container.image.name

Logs por Serviço

agent.name: *

Agrupe por agent.name para ver distribuição

Logs por Nível

log.level: *

Agrupe por log.level para ver distribuição de níveis

Atividade por Container

container.id: *

Agrupe por container.image.name para ver atividade


🔧 Dicas Avançadas

Busca Case-Insensitive

# KQL é case-insensitive por padrão
log.level: error
log.level: ERROR
log.level: Error
# Todos funcionam igual

Wildcards

# Qualquer coisa antes de "auth"
*auth

# Qualquer coisa depois de "csuite"
csuite*

# Qualquer coisa com "error" no meio
*error*

# Múltiplos wildcards
*timeout*error*

Negação

# Tudo exceto erros
not log.level: error

# Tudo exceto Traefik
not container.image.name: traefik*

# Erros que não são de timeout
log.level: error and not *timeout*

Agrupamento com Parênteses

# Erros OU warnings do csuite-auth
agent.name: *csuite-auth* and (log.level: error or log.level: warn)

# Timeout OU connection refused
(*timeout* or *connection refused*)

# Erros de auth OU database
(*auth* or *database*) and error*

📝 Exemplos Práticos

1. Monitorar Erros Críticos

log.level: error and @timestamp >= now()-1h

2. Analisar Problemas de Rede

(*timeout* or *connection refused* or *network error*) and @timestamp >= now()-24h

3. Verificar Autenticação

*auth* and (fail* or error* or denied* or invalid*)

4. Monitorar Performance

(*slow* or *timeout* or *latency*) and log.level: warn

5. Análise de Containers

container.image.name: *csuite* and log.level: error

🎯 Campos Úteis para Filtrar

Campos de Tempo

Campos de Agente

Campos de Container

Campos de Log

Campos Customizados


💡 Dicas de Performance

  1. Use filtros de tempo: Sempre filtre por @timestamp para melhor performance
  2. Seja específico: Queries mais específicas são mais rápidas
  3. Use campos indexados: Campos como log.level são mais rápidos que buscar em message
  4. Evite wildcards no início: *timeout é mais lento que timeout*

🔗 Recursos


Última atualização: 2025-12-06

🔊 Text-to-Speech

1.0x
1.0
Pronto para reproduzir