Use um script Python curto com os auxiliares.scan do cliente oficial ou a API _search com um ponto no tempo (PIT) e search_after. Para extrações rápidas de até 10.000 linhas, ES|QL com format=json funciona diretamente a partir das Ferramentas de Desenvolvimento do Kibana. O Kibana Discover também pode gerar um relatório, mas não em um formato que o LogTotal leia atualmente. Se sua integração preservou, event.original mantém a linha de log bruta.
O Elastic é uma das bases mais comuns para análises de segurança internas, desde o Elastic Security até pilhas personalizadas. Prime Core tem 23.722 regras de detecção para o Elastic, mapeadas para 671 técnicas do MITRE ATT&CK. Abaixo está como extrair dados, sanitizá-los e investigá-los gratuitamente no LogTotal.
Antes de começar
Autenticação. Crie uma chave de API em Gerenciamento da Stack → Chaves de API com leitura e view_index_metadata nos índices que você precisa. Envie como Authorization: ApiKey <key>. Na Elastic Cloud, o endpoint do Elasticsearch está na página de visão geral da sua implantação.
Saiba onde os dados estão. As integrações do Elastic Agent escrevem para fluxos de dados nomeados logs-<dataset>-<namespace>. Logs de autenticação do Linux da integração System, por exemplo, aterrissam em logs-system.auth-default.
Verifique por event.original. Muitas integrações não mantêm a linha bruta por padrão; é uma opção “preservar evento original”. Se estiver ausente, os campos analisados são o que você tem, e isso é suficiente para um upload JSON.
Níveis de dados. Pesquisas contra níveis frios ou congelados são mais lentas. Mantenha janelas apertadas quando os dados forem antigos.
Os exemplos seguem a documentação atual do Elastic, verificada em outubro de 2026.
Opção 1: Python com helpers.scan (recomendado)
importar json, os
de elasticsearch import Elasticsearch, helpers
es = Elasticsearch("https://my-deployment.es.example.com:443", api_key=os.environ["ES_API_KEY"])
consulta = {"query": {"range": {"@timestamp": {
"gte": "2026-10-19T00:00:00Z", "lt": "2026-10-20T00:00:00Z"}}}}
com open("elastic_auth_1019.jsonl", "w") como out:
para acerto em helpers.scan(es, index="logs-system.auth-*", query=consulta, size=1000):
out.write(json.dumps(acerto["_source"]) + "n")
Para linhas brutas, escreva hit[“_source”].get(“event”, {}).get(“original”, “”) em vez do documento inteiro.
Opção 2: ES|QL para extrações rápidas
Nas Ferramentas de Desenvolvimento do Kibana:
POST /_query?format=json
{
"query": """
DE logs-system.auth-*
| WHERE @timestamp >= "2026-10-19T00:00:00Z" AND @timestamp < "2026-10-20T00:00:00Z"
| MANTER @timestamp, host.name, user.name, source.ip, message
| LIMITAR 10000
"""
}
Dois detalhes. ES|QL retorna 1.000 linhas a menos que você defina LIMIT, e ele atinge o máximo de 10.000. A resposta JSON também vem como colunas mais valores, não como registros. Para transformá-lo em um objeto por linha, salve o corpo da consulta como query.json e execute-o através do jq:
curl -sS -H "Authorization: ApiKey $ES_API_KEY" -H 'Content-Type: application/json'
"https://my-deployment.es.example.com/_query?format=json" -d @query.json
| jq -c '.columns as $c | .values[] | [$c, .] | transpose | map({(.[0].name): .[1]}) | add' > esql_1019.jsonl
Opção 3: Exportar logs da UI do Kibana (Discover)
Para investigações menores, o Kibana Discover permite encontrar, filtrar e exportar logs diretamente do navegador sem escrever scripts.
- Abra o Discover. Faça login no Kibana e navegue até Analytics → Discover, ou selecione Discover na navegação principal.
- Selecione seus dados. Escolha a visualização de dados contendo os logs que você precisa, como logs-system.auth-*. Certifique-se de que inclui os índices do Elasticsearch relevantes ou fluxos de dados.
- Defina o intervalo de tempo. Use o seletor de tempo no canto superior direito para selecionar o período de investigação. Aperte a janela para evitar exportar eventos desnecessários.
- Filtre os logs. Use a barra de pesquisa e os filtros disponíveis para isolar eventos relevantes. Por exemplo, insira event.category: authentication para focar na atividade de autenticação.
- Selecione os campos. Adicione colunas úteis como @timestamp, host.name, user.name, source.ip e message. Se disponível, inclua event.original para preservar o conteúdo bruto do log.
- Exporte os resultados. Abra Mais → Exportar → Resultados da guia como CSV (em algumas versões, Compartilhar → Relatórios CSV). Gere o relatório e baixe o arquivo CSV. Se a exportação não for baixada imediatamente, encontre-a em Gerenciamento da Stack → Relatórios.
Alternativa: Copiar logs como JSON. Para uma seleção pequena de eventos, selecione as linhas relevantes no Discover, abra o Selecionado menu, e escolha Copiar documentos como JSON. Cole o conteúdo copiado em um editor de texto e salve como um arquivo .json. Apenas os campos incluídos na seleção atual da tabela podem ser copiados.
Limitações. Relatórios CSV são destinados a exportações de tamanho moderado e têm limites de contagem de linhas e tamanho de arquivo que dependem da versão e configuração do Kibana. Exportar uma definição de sessão do Discover como JSON não exporta os eventos do log propriamente ditos.
Para o LogTotal, use um formato de log suportado. Quando JSONL é necessário, exporte os registros usando os métodos API do Python ou Elasticsearch descritos abaixo, ou converta os dados exportados em um objeto JSON por linha antes de carregá-los.
Passo 3: Carregar, sanitizar e revisar no LogTotal
- Carregar. Abra logtotal.com e largue o arquivo .jsonl.
- Sanitizar. Revise antes de continuar.
- Revise.
Quando algo dá errado
| Sintoma | Causa provável | Fix |
|---|---|---|
| 401 ou 403 | A chave da API não possui privilégios nos índices | Adicione leitura e view_index_metadata |
| Janela de resultado é muito grande | Mais de 10.000 acertos em um _search | Use helpers.scan ou PIT com search_after |
| ES|QL retorna exatamente 1.000 linhas | Limite padrão | Adicione LIMIT (máximo 10.000) |
| Sem campo event.original | A integração não o preservou | Exporte o documento analisado em vez disso |
| Timeouts | Dados antigos em níveis frios ou congelados | Aperte a janela; execute em partes |
FAQ
E sobre os alertas de segurança do Elastic?
Alertas vivem em seus próprios índices (.alerts-security.alerts-*). Exportar alertas é um trabalho diferente de exportar os logs por trás deles; para o LogTotal, exporte os logs.
Isso funciona para o OpenSearch?
A ideia é a mesma, os clientes diferem.