Użyj krótkiego skryptu Pythona z pomocnikami klienta oficjalnego.helpers.scan, lub API _search z punktem w czasie (PIT) i search_after. Dla szybkich odbiorów do 10 000 wierszy, ES|QL z format=json działa bezpośrednio z Narzędzi Deweloperskich Kibana. Kibana Discover również może wygenerować raport, ale nie w formacie, który LogTotal odczytuje dzisiaj. Jeśli twoja integracja to zachowała, event.original zawiera surową linię logu.
Elastic jest jednym z najczęściej wykorzystywanych fundamentów do bezpieczeństwa analityki własnej, od Elastic Security po samodzielnie zbudowane stosy. Prime Core ma 23 722 reguły wykrywania dla Elastic, mapowane do 671 technik MITRE ATT&CK. Poniżej pokazano, jak wydobyć dane, oczyścić je i zbadać je za darmo w LogTotal.
Zanim zaczniesz
Uwierzytelnianie. Utwórz klucz API w Stack Management → Klucze API z uprawnieniami do odczytu i view_index_metadata na indeksach, których potrzebujesz. Wyślij go jako Authorization: ApiKey <key>. W Elastic Cloud punkt końcowy Elasticsearch znajduje się na stronie przeglądu wdrożenia.
Wiedzieć, gdzie znajdują się dane. Integracje Elastic Agent zapisują do strumieni danych nazwanych logs-<dataset>-<namespace>. Logi uwierzytelniania Linux z integracji System, na przykład, lądują w logs-system.auth-default.
Sprawdź, czy istnieje event.original. Wiele integracji domyślnie nie zachowuje surowej linii; to opcja „zachowaj oryginalne wydarzenie”. Jeśli go brakuje, masz tylko przeanalizowane pola, co jest wystarczające do przesłania JSON.
Warstwy danych. Wyszukiwania w warstwach zimnych lub zamrożonych są wolniejsze. Utrzymuj wąskie okna, gdy dane są stare.
Przykłady zgodne z aktualną dokumentacją Elastic, sprawdzono październik 2026.
Opcja 1: Python z helpers.scan (zalecane)
importuj json, os
z elasticsearch importuj Elasticsearch, helpers
es = Elasticsearch("https://my-deployment.es.example.com:443", api_key=os.environ["ES_API_KEY"])
query = {"query": {"range": {"@timestamp": {
"gte": "2026-10-19T00:00:00Z", "lt": "2026-10-20T00:00:00Z"}}}}
z open("elastic_auth_1019.jsonl", "w") as out:
dla hit w helpers.scan(es, index="logs-system.auth-*", query=query, size=1000):
out.write(json.dumps(hit["_source"]) + "n")
Dla surowych linii, zapisz hit[„_source”].get(„event”, {}).get(„original”, „”) zamiast całego dokumentu.
Opcja 2: ES|QL do szybkich odbiorów
W Narzędziach Deweloperskich Kibana:
POST /_query?format=json
{
"query": """
FROM logs-system.auth-*
| WHERE @timestamp >= "2026-10-19T00:00:00Z" AND @timestamp < "2026-10-20T00:00:00Z"
| KEEP @timestamp, host.name, user.name, source.ip, message
| LIMIT 10000
"""
}
Dwa haczyki. ES|QL zwraca 1 000 wierszy, chyba że ustawisz LIMIT, a maksymalnie 10 000. Odpowiedź JSON również pojawia się jako kolumny plus wartości, nie jako rekordy. Aby zamienić to na jeden obiekt na linię, zapisz ciało zapytania jako query.json i przepuść przez jq:
curl -sS -H "Authorization: ApiKey $ES_API_KEY" -H 'Content-Type: application/json'
"https://my-deployment.es.example.com/_query?format=json" -d @query.json
| jq -c '.columns as $c | .values[] | [$c, .] | transpose | map({(.[0].name): .[1]}) | add' > esql_1019.jsonl
Opcja 3: Eksport logów z interfejsu Kibana (Discover)
Dla mniejszych śledztw, Kibana Discover umożliwia znajdowanie, filtrowanie i eksportowanie logów bezpośrednio z przeglądarki bez pisania skryptów.
- Otwórz Discover. Zaloguj się do Kibana i przejdź do Analytics → Discover, lub wybierz Discover z głównej nawigacji.
- Wybierz swoje dane. Wybierz widok danych zawierający potrzebne logi, takie jak logs-system.auth-*. Upewnij się, że obejmuje odpowiednie indeksy Elasticsearch lub strumienie danych.
- Ustaw zakres czasu. Użyj wybieraka czasu w prawym, górnym rogu, aby wybrać okres śledztwa. Zawęź okno, aby uniknąć eksportu niepotrzebnych wydarzeń.
- Filtruj logi. Użyj paska wyszukiwania i dostępnych filtrów, aby odizolować odpowiednie wydarzenia. Na przykład, wprowadź event.category: authentication, aby skupić się na aktywności uwierzytelnienia.
- Wybierz pola. Dodaj przydatne kolumny, takie jak @timestamp, host.name, user.name, source.ip, i message. Jeśli dostępne, dodaj event.original, aby zachować surowe treści logu.
- Eksportuj wyniki. Otwórz More → Export → Tab results as CSV (w niektórych wersjach, Udostępnij → Raporty CSV). Wygeneruj raport i pobierz plik CSV. Jeśli eksport nie zostanie pobrany natychmiast, znajdź go w Stack Management → Raportowanie.
Alternatywa: Kopiuj logi jako JSON. Dla małego wyboru wydarzeń, wybierz odpowiednie wiersze w Discover, otwórz menu Wybrane i wybierz Kopiuj dokumenty jako JSON. Wklej skopiowaną treść do edytora tekstu i zapisz jako plik .json. Skopiować można tylko pola zawarte w bieżącym wyborze tabeli.
Ograniczenia. Raporty CSV są przeznaczone do eksportów o umiarkowanej wielkości i mają limity ilości wierszy i wielkości plików w zależności od wersji i konfiguracji Kibana. Eksportowanie definicji sesji Discover jako JSON nie eksportuje samych zdarzeń z logami.
Dla LogTotal, użyj obsługiwanego formatu logów. Gdy wymagany jest JSONL, wyeksportuj rekordy metodami Python lub Elasticsearch API opisanymi poniżej, lub przekonwertuj wyeksportowane dane na jeden obiekt JSON na linię przed przesłaniem.
Krok 3: Prześlij, oczyść i przejrzyj w LogTotal
- Prześlij. Otwórz logtotal.com i umieść tam plik .jsonl.
- Oczyść. Oceń, zanim przejdziesz dalej.
- Przejrzyj.
Kiedy coś pójdzie nie tak
| Objaw | Prawdopodobna przyczyna | Fix |
|---|---|---|
| 401 lub 403 | Klucz API nie ma uprawnień do indeksów | Dodaj prawa do odczytu i view_index_metadata |
| Okno wyników jest za duże | Więcej niż 10 000 trafień w jednym _search | Użyj helpers.scan lub PIT search_after |
| ES|QL zwraca dokładnie 1 000 wierszy | Domyślny limit | Dodaj LIMIT (max 10 000) |
| Brak pola event.original | Integracja go nie zachowała | Zamiast tego wyeksportuj przeanalizowany dokument |
| Przekroczenie limitów czasowych | Stare dane na zimnych lub zamrożonych warstwach | Zawieś okno; uruchom w częściach |
FAQ
A co z alertami Elastic Security?
Alerty znajdują się w ich własnych indeksach (.alerts-security.alerts-*). Eksportowanie alertów to inne zadanie niż eksportowanie logów będących ich tłem; dla LogTotal, eksportuj logi.
Czy to działa dla OpenSearch?
Idea jest taka sama, różnią się klienci.