Como Exportar Logs do Graylog

Como Exportar Logs do Graylog

SOC Prime Team
SOC Prime Team linkedin icon Seguir

O Graylog mantém suas mensagens no OpenSearch ou Elasticsearch, então você tem duas rotas. Use a API REST do Graylog, autenticada com um token de acesso, ou consulte os índices de backend (graylog_* por padrão) diretamente com um script. De qualquer forma, você obtém JSON. A linha original está em message, e em full_message para algumas entradas. A exportação na interface web do Graylog produz um formato que o LogTotal não lê atualmente. 

Graylog é uma plataforma popular de gestão de logs abertos, muitas vezes o primeiro log central que uma equipe configura. Prime Core tem 23.274 regras de detecção para Graylog, mapeadas para 671 técnicas MITRE ATT&CK. Abaixo está como extrair mensagens, sanitizá-las e investigá-las gratuitamente no LogTotal.

Comece Gratuitamente

Antes de começar

Um token de acesso. No Graylog, abra as configurações do seu usuário e crie um token. Com a API, você se autentica como <token>:token: o token como nome de usuário e a palavra token como a senha.

Acesso ao backend, se você for diretamente. O cluster do OpenSearch ou Elasticsearch por trás do Graylog muitas vezes não é acessível de fora. Peça a quem gerencia isso uma conta de leitura apenas.

Streams e conjuntos de índices. O Graylog direciona mensagens para streams, e os streams mapeiam para conjuntos de índices com seus próprios prefixos e retenção. Saiba qual conjunto de índice contém os seus dados.

Opção 1: API REST do Graylog

GL="https://graylog.example.com"

curl -sS -u "$GL_TOKEN:token" -H 'Accept: application/json' -G "$GL/api/search/universal/absolute"
--data-urlencode 'query=source:web-03'
--data-urlencode 'from=2026-10-19T00:00:00.000Z'
--data-urlencode 'to=2026-10-20T00:00:00.000Z'
--data-urlencode 'limit=10000'
| jq -c '.messages[].message' > graylog_web03_1019.jsonl

Versões mais recentes do Graylog favorecem a API de pesquisa Views. Para exportações grandes, a Opção 2 é mais confiável.

Opção 2: Consultar os índices de backend

Esta é a mesma abordagem que apontamos para os índices do Graylog:

import json, os
from opensearchpy import OpenSearch, helpers

client = OpenSearch("https://opensearch.example.com:9200",
http_auth=("reader", os.environ["OS_PASSWORD"]), verify_certs=True)
query = {"query": {"bool": {"filter": [
{"term": {"source": "web-03"}},
{"range": {"timestamp": {"gte": "2026-10-19 00:00:00.000", "lt": "2026-10-20 00:00:00.000"}}},
]}}}

with open("graylog_web03_1019.jsonl", "w") as out:
for hit in helpers.scan(client, index="graylog_*", query=query, size=1000):
out.write(json.dumps(hit["_source"]) + "n")

Graylog armazena timestamp como yyyy-MM-dd HH:mm:ss.SSS em UTC, razão pela qual o intervalo usa esse formato. Para um backend rodando Elasticsearch, use o cliente elasticsearch da mesma forma.

Envie, sanitise e reveja no LogTotal

  1. Faça o upload. Abra logtotal.com e solte o arquivo.
  2. Sanitizar. 
  3. Revisar. 

Quando algo dá errado

SintomaCausa provávelFix
401 da APIAutenticação de token escrita erradaUse <token>:token
404 no endpoint de buscaEndpoint não disponível na sua versãoUse a Opção 2, ou a API de Views
Consulta de backend não retorna nadaPrefixo de índice errado, ou o formato de timestampVerifique conjuntos de índices; use yyyy-MM-dd HH:mm:ss.SSS
Backend não acessívelCluster não expostoPeça acesso somente leitura, ou use a API

FAQ

Message ou full_message?

Message está sempre presente. full_message aparece para algumas entradas, como GELF, e pode conter mais detalhes. Exporte os dois se você os tiver.

Isso funciona para Graylog Cloud?

A rota da API sim. O acesso direto ao backend geralmente não está disponível em planos hospedados.

Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e gerar valor imediato, agende uma reunião agora com os especialistas da SOC Prime.