Graylog speichert seine Nachrichten in OpenSearch oder Elasticsearch, sodass Sie zwei Möglichkeiten haben. Verwenden Sie die Graylog REST-API, die mit einem Zugriffstoken authentifiziert ist, oder fragen Sie die Backend-Indizes (standardmäßig graylog_*) direkt mit einem Skript ab. So oder so erhalten Sie JSON. Die ursprüngliche Zeile befindet sich in message und bei einigen Eingaben in full_message. Der Export in der Graylog-Weboberfläche erzeugt ein Format, das LogTotal heute nicht lesen kann.
Graylog ist eine beliebte Open-Source-Log-Management-Plattform und häufig die erste zentrale Logging-Lösung, die ein Team einrichtet. Prime Core hat 23.274 Erkennungsregeln für Graylog, die 671 MITRE ATT&CK Techniken zugeordnet sind. Nachfolgend wird beschrieben, wie Sie Nachrichten exportieren, bereinigen und kostenlos in LogTotal untersuchen können.
Bevor Sie beginnen
Ein Zugriffstoken. Öffnen Sie in Graylog die Einstellungen Ihres Benutzers und erstellen Sie ein Token. Bei der API authentifizieren Sie sich als <token>:token: das Token als Benutzernamen und das Wort token als Passwort.
Backend-Zugriff, falls Sie direkt darauf zugreifen. Der OpenSearch- oder Elasticsearch-Cluster hinter Graylog ist von außen oft nicht erreichbar. Bitten Sie den Betreiber um ein Nur-Lese-Konto.
Streams und Index-Sets. Graylog leitet Nachrichten in Streams weiter, und Streams werden Index-Sets mit eigenen Präfixen und Aufbewahrungszeiten zugeordnet. Wissen Sie, welches Index-Set Ihre Daten enthält.
Option 1: Graylog REST-API
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
Neuere Graylog-Versionen bevorzugen die Views-Such-API. Für große Exporte ist Option 2 zuverlässiger.
Option 2: Backend-Indizes abfragen
Dies ist derselbe Ansatz, wie wir ihn auf Graylogs Indizes angewendet haben:
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 speichert den Zeitstempel als yyyy-MM-dd HH:mm:ss.SSS in UTC, weshalb der Bereich dieses Format verwendet. Für ein Backend, das Elasticsearch ausführt, verwenden Sie den Elasticsearch-Client auf die gleiche Weise.
Hochladen, bereinigen und überprüfen in LogTotal
- Hochladen. Öffnen logtotal.com und legen Sie die Datei ab.
- Bereinigen.
- Überprüfen.
Wenn etwas schiefgeht
| Symptom | Wahrscheinliche Ursache | Fix |
|---|---|---|
| 401 von der API | Token-Authentifizierung falsch geschrieben | Verwenden Sie <token>:token |
| 404 am Such-Endpunkt | Endpunkt in Ihrer Version nicht verfügbar | Verwenden Sie Option 2 oder die Views-API |
| Backend-Abfrage liefert nichts | Falsches Index-Präfix oder falsches Zeitstempelformat | Prüfen Sie die Index-Sets; verwenden Sie yyyy-MM-dd HH:mm:ss.SSS |
| Backend nicht erreichbar | Cluster nicht exponiert | Fragen Sie nach Nur-Lese-Zugriff oder nutzen Sie die API |
FAQ
Nachricht oder full_message?
Message ist immer vorhanden. full_message erscheint für einige Eingaben, z. B. GELF, und kann mehr Details enthalten. Exportieren Sie beide, wenn Sie sie haben.
Funktioniert das für Graylog Cloud?
Der API-Weg funktioniert. Direkter Backend-Zugriff ist bei gehosteten Diensten in der Regel nicht verfügbar.