Come Esportare i Log di Graylog

Come Esportare i Log di Graylog

SOC Prime Team
SOC Prime Team linkedin icon Segui

Graylog memorizza i suoi messaggi in OpenSearch o Elasticsearch, quindi hai due possibilità. Usa l’API REST di Graylog, autenticata con un token di accesso, o interroga direttamente gli indici di backend (graylog_* di default) con uno script. In entrambi i modi ottieni JSON. La linea originale è in message, e in full_message per alcuni input. L’esportazione nell’interfaccia web di Graylog produce un formato che LogTotal non legge oggi. 

Graylog è una piattaforma popolare per la gestione centralizzata dei log, spesso il primo sistema di logging centrale che un team implementa. Prime Core ha 23.274 regole di rilevamento per Graylog, mappate su 671 tecniche MITRE ATT&CK. Di seguito come estrarre messaggi, pulirli e analizzarli gratuitamente in LogTotal.

Inizia Gratis

Prima di iniziare

Un token di accesso. In Graylog, apri le impostazioni del tuo utente e crea un token. Con l’API, ti autentichi come <token>:token: il token come nome utente e la parola token come password.

Accesso al backend, se procedi direttamente. Il cluster OpenSearch o Elasticsearch dietro Graylog spesso non è raggiungibile dall’esterno. Chiedi a chi lo gestisce per un account di sola lettura.

Stream e set di indici. Graylog indirizza i messaggi in stream, e gli stream mappano ai set di indici con i propri prefissi e durata di conservazione. Scopri quale set di indici contiene i tuoi dati.

Opzione 1: API REST di 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

Le versioni più recenti di Graylog prediligono l’API di ricerca “Views”. Per grandi esportazioni, l’Opzione 2 è più affidabile.

Opzione 2: Interrogare gli indici di backend

Questo è lo stesso approccio che puntiamo sugli indici di 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 memorizza il timestamp come yyyy-MM-dd HH:mm:ss.SSS in UTC, motivo per cui il range usa quel formato. Per un backend che esegue Elasticsearch, usa il client elasticsearch nello stesso modo.

Carica, pulisci e analizza in LogTotal

  1. Carica. Apri logtotal.com e inserisci il file.
  2. Pulisci. 
  3. Analizza. 

Quando qualcosa va storto

SintomoProbabile causaFix
401 dall’APIAutenticazione token scritta maleUsa <token>:token
404 sull’endpoint di ricercaEndpoint non disponibile nella tua versioneUsa l’Opzione 2, o l’API “Views”
La query di backend non restituisce nullaPrefisso indice sbagliato o formato timestamp erratoControlla i set di indici; usa yyyy-MM-dd HH:mm:ss.SSS
Backend non raggiungibileCluster non espostoChiedi accesso di sola lettura, o usa l’API

FAQ

Message o full_message?

Message è sempre presente. full_message appare per alcuni input, come GELF, e può contenere più dettagli. Esporta entrambi se li hai.

Funziona per Graylog Cloud?

Il percorso API sì. L’accesso diretto al backend di solito non è disponibile sui piani ospitati.

Unisciti alla piattaforma Detection as Code di SOC Prime per migliorare la visibilità sulle minacce più rilevanti per il tuo business. Per aiutarti a iniziare e aumentare immediatamente il valore, prenota ora un incontro con gli esperti di SOC Prime.