Jak eksportować logi Graylog

Jak eksportować logi Graylog

SOC Prime Team
SOC Prime Team linkedin icon Śledź

Graylog przechowuje swoje wiadomości w OpenSearch lub Elasticsearch, więc masz dwie drogi. Użyj API REST Graylog, uwierzytelniając się za pomocą tokenu dostępu, lub bezpośrednio zapytaj indeksy backendowe (domyślnie graylog_*) za pomocą skryptu. W każdym przypadku otrzymujesz JSON. Oryginalna linia znajduje się w message, a w full_message dla niektórych danych wejściowych. Eksport w interfejsie webowym Graylog produkuje format, którego LogTotal dzisiaj nie odczytuje. 

Graylog to popularna platforma zarządzania logami, często pierwsza centralna lokalizacja logów, którą konfiguruje zespół. Prime Core ma 23 274 reguł detekcji dla Graylog, zmapowanych na 671 technik MITRE ATT&CK. Poniżej znajduje się sposób, jak wydobywać wiadomości, oczyszczać je i badać za darmo w LogTotal.

Rozpocznij za darmo

Zanim zaczniesz

Token dostępu. W Graylog otwórz ustawienia użytkownika i stwórz token. Za pomocą API, uwierzytelnij się jako <token>:token: token jako nazwa użytkownika i słowo token jako hasło.

Dostęp do backendu, jeśli pójdziesz bezpośrednio. Klastry OpenSearch lub Elasticsearch za Graylog często nie są dostępne z zewnątrz. Zapytaj osobę, która nimi zarządza, o konto tylko do odczytu.

Strumienie i zestawy indeksów. Graylog kieruje wiadomości do strumieni, a strumienie mapują się na zestawy indeksów ze swoimi prefiksami i retencją. Dowiedz się, który zestaw indeksów przechowuje twoje dane.

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

Nowe wersje Graylog preferują API Views do wyszukiwania. Dla dużych eksportów, Opcja 2 jest bardziej niezawodna.

Opcja 2: Zapytaj indeksy backendowe

To samo podejście jak przy skierowaniu do indeksów 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 przechowuje znacznik czasu jako rrrr-MM-dd HH:mm:ss.SSS w UTC, dlatego to zakres używa tego formatu. Dla backendu działającego na Elasticsearch, użyj klienta elasticsearch w ten sam sposób.

Prześlij, oczyść i sprawdź w LogTotal

  1. Prześlij. Otwórz logtotal.com i wrzuć plik. 
  2. Oczyść. 
  3. Przejrzyj. 

Gdy coś idzie nie tak

ObjawPrawdopodobna przyczynaFix
401 z APIBłędnie napisane uwierzytelnienie tokenaUżyj <token>:token
404 na końcówce wyszukiwaniaKońcówka nie jest dostępna w twojej wersjiUżyj Opcji 2 lub API Views
Zapytanie backendowe zwraca nicZły prefiks indeksu lub format znacznika czasuSprawdź zestawy indeksów; użyj rrrr-MM-dd HH:mm:ss.SSS
Backend nieosiągalnyKlaster nie jest wystawionyPoproś o dostęp tylko do odczytu lub użyj API

FAQ

Wiadomość czy full_message?

Wiadomość jest zawsze tam. full_message pojawia się dla niektórych danych wejściowych, takich jak GELF, i może zawierać więcej szczegółów. Eksportuj oba, jeśli je masz.

Czy to działa dla Graylog Cloud?

Ścieżka API działa. Bezpośredni dostęp do backendu zazwyczaj nie jest dostępny w planach hostingowych.

Dołącz do platformy Detection as Code firmy SOC Prime aby zwiększyć widoczność zagrożeń najbardziej istotnych dla Twojego biznesu. Aby pomóc Ci rozpocząć i natychmiast uzyskać wartość, umów się teraz na spotkanie z ekspertami SOC Prime.