Cómo Exportar Registros de Graylog

Cómo Exportar Registros de Graylog

SOC Prime Team
SOC Prime Team linkedin icon Seguir

Graylog mantiene sus mensajes en OpenSearch o Elasticsearch, por lo que tienes dos rutas. Usa la API REST de Graylog, autenticada con un token de acceso, o consulta directamente los índices del backend (graylog_* por defecto) con un script. En cualquier caso, obtienes JSON. La línea original está en message, y en full_message para algunas entradas. La exportación en la interfaz web de Graylog produce un formato que LogTotal no lee hoy. 

Graylog es una plataforma popular de gestión de registros abiertos, a menudo la primera solución de logging central que implementa un equipo. Prime Core tiene 23,274 reglas de detección para Graylog, mapeadas a 671 técnicas MITRE ATT&CK. A continuación, se explica cómo extraer mensajes, limpiarlos e investigarlos de forma gratuita en LogTotal.

Comienza Gratis

Antes de comenzar

Un token de acceso. En Graylog, abre la configuración de tu usuario y crea un token. Con la API, te autenticas como <token>:token: el token como el nombre de usuario y la palabra token como la contraseña.

Acceso al backend, si vas directamente. El clúster de OpenSearch o Elasticsearch detrás de Graylog a menudo no es accesible desde fuera. Pregunta a quien lo gestiona por una cuenta de solo lectura.

Flujos y conjuntos de índices. Graylog dirige mensajes a flujos, y los flujos se asignan a conjuntos de índices con sus propios prefijos y retención. Conoce qué conjunto de índices contiene tus datos.

Opción 1: API REST de 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

Las versiones más recientes de Graylog favorecen la API de búsqueda de Views. Para grandes exportaciones, la Opción 2 es más confiable.

Opción 2: Consultar índices del backend.

Este es el mismo enfoque que dirigimos a los índices de 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 almacena el timestamp como yyyy-MM-dd HH:mm:ss.SSS en UTC, por lo que la consulta de rango utiliza ese formato. Para un backend que ejecuta Elasticsearch, use el cliente de Elasticsearch de la misma manera.

Subir, limpiar y revisar en LogTotal

  1. Subir. Abrir logtotal.com y suelta el archivo.
  2. Limpiar. 
  3. Revisar. 

Cuando algo sale mal

SíntomaCausa probableFix
401 desde la APIAutenticación del token escrita incorrectamenteUsa <token>:token
404 en el punto de búsquedaPunto final no disponible en tu versiónUsa la Opción 2, o la API de Views
Consulta del backend no devuelve nadaPrefijo del índice incorrecto o el formato del timestampVerifica conjuntos de índices; usa yyyy-MM-dd HH:mm:ss.SSS
Backend no accesibleClúster no expuestoSolicita acceso de solo lectura o usa la API

FAQ

¿Message o full_message?

Message siempre está presente. full_message aparece para algunas entradas, como GELF, y puede contener más detalles. Exporta ambos si los tienes.

¿Esto funciona para Graylog Cloud?

La ruta de API sí. El acceso directo al backend generalmente no está disponible en planes alojados.

Únete a la plataforma Detection as Code de SOC Prime para mejorar la visibilidad de las amenazas más relevantes para tu negocio. Para ayudarte a comenzar y obtener valor inmediato, programa una reunión ahora con los expertos de SOC Prime.