Discover e Index Patterns
Aula 1 de 5
Instalação do Kibana
O Kibana é a interface de visualização e gerenciamento do Elastic Stack.
Instalação via Docker
docker pull docker.elastic.co/kibana/kibana:8.14.0
docker run -d --name kibana --net elastic \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://es-node:9200" \
docker.elastic.co/kibana/kibana:8.14.0
# Acessar: http://localhost:5601
Instalação via apt (Ubuntu/Debian)
sudo apt install kibana
sudo systemctl start kibana
sudo systemctl enable kibana
Elastic Cloud
# Kibana é provisionado automaticamente com o deployment Elastic Cloud
# URL: https://<deployment-id>.kibana.us-east-1.aws.cloud.es.io
Configuracao (kibana.yml)
server.port: 5601
server.host: "0.0.0.0"
server.name: "kb-platform"
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "senha_segura"
kibana.index: ".kibana"
i18n.locale: "pt-BR"
# Monitoring
monitoring.ui.container.elasticsearch.enabled: true
# Reporting
xpack.reporting.enabled: true
xpack.reporting.capture.browser.chromium.disableSandbox: false
Index Patterns
Index patterns definem quais indices do Elasticsearch o Kibana pode consultar.
Criar Index Pattern
# Via UI: Stack Management > Index Patterns > Create index pattern
# Nome: logs-* (seleciona todos indices comecando com logs-)
# Timestamp: @timestamp (para series temporais)
# Via API
POST kbn:/api/index_patterns/index_pattern
{
"index_pattern": {
"title": "logs-*",
"timeFieldName": "@timestamp"
}
}
Refresh e Scripted Fields
# Refresh field list (apos alteracoes no mapping)
POST kbn:/api/index_patterns/index_pattern/{id}/refresh_fields
# Scripted field — campo calculado no query time
PUT kbn:/api/index_patterns/index_pattern/{id}/scripted_field
{
"scripted_field": {
"name": "duracao_segundos",
"script": {
"source": "doc['duracao_ms'].value / 1000",
"lang": "painless"
},
"type": "number"
}
}
Discover — Exploracao de Dados
KQL — Kibana Query Language
# Termo livre
notebook
# Campo especifico
status: 200
# Range
duracao_ms > 1000 and duracao_ms < 5000
# Multiplos valores
status: (200 or 404)
# Negacao
not status: 500
# Wildcard
host: server-*
# Existencia
exists: error_message
# Frase
mensagem: "connection refused"
# Combinacao
status: 200 and duracao_ms > 2000
Filtros e Time Range
No Discover, use a barra de filtros para adicionar condicoes visuais:
- Clique em Add filter para criar filtros KQL ou Lucene
- Use o Time picker no canto superior direito:
- Quick select: Last 15 minutes, Last 1 hour, Today
- Relative: Last 7 days, Last 30 days
- Absolute: intervalo de datas especifico
- Saved queries: salve combinacoes de filtros frequentes
Saved Searches
# Salvar uma busca no Discover:
# 1. Configure colunas, filtros e time range
# 2. Clique em Save > Save as saved search
# 3. Reutilize em dashboards e visualizacoes
# Listar saved searches
GET kbn:/api/saved_objects/_find?type=search
Document View
Clique em qualquer documento no Discover para visualizar:
- Table view: Campos em formato tabular
- JSON view: Documento completo como indexado no ES
- Document comparison: Comparar documentos lado a lado
Lab: Configuracao do Kibana
# 1. Inicie Elasticsearch e Kibana via Docker
# 2. Crie um index pattern logs-* apontando para @timestamp
# 3. Indexe documentos de log de exemplo
# 4. No Discover:
# - Filtre por status: 500
# - Crie uma saved search "erros_servidor"
# - Adicione scripted field "duracao_segundos"
# 5. Teste KQL: status: 200 and duracao_ms > 500
curl -X POST "http://localhost:5601/api/index_patterns/index_pattern" \
-H "Content-Type: application/json" \
-d '{"index_pattern": {"title": "logs-*", "timeFieldName": "@timestamp"}}'
O Index Pattern e o ponto de partida de toda analise no Kibana — define quais dados estao disponiveis e como o tempo e interpretado.