Uruchom swoje wyszukiwanie przez API wyszukiwania Sumo Logic: utwórz zadanie, poczekaj, aż zbierze wszystkie wyniki, a następnie przeglądaj wiadomości. Każda wiadomość zawiera oryginalny wiersz logu w _raw. Karta Wiadomości w UI również może eksportować wyniki, ale nie w formacie, który LogTotal odczytuje dzisiaj.
Sumo Logic to popularna chmurowa platforma SIEM i logów, i naturalne miejsce do wyciągnięcia części do dochodzenia. Prime Core ma 23 391 reguł detekcji dla Sumo Logic, zmapowanych do 664 technik MITRE ATT&CK. Poniżej przedstawiamy, jak uzyskać surowe logi, oczyścić je i zbadać bezpłatnie w LogTotal.
Zanim zaczniesz
Klucz dostępu. Utwórz identyfikator i klucz dostępu w Sumo Logic. Klucz działa z uprawnieniami twojej roli, więc rola musi mieć możliwość uruchamiania wyszukiwań na danych, które chcesz.
Właściwy punkt końcowy API. Sumo Logic prowadzi kilka wdrożeń, a każde ma własnego hosta API: api.sumologic.com dla US1, api.us2.sumologic.com, api.eu.sumologic.com i tak dalej. Dopasuj go do URL, którego używasz do logowania. Niewłaściwe wdrożenie daje 401, które wygląda jak zły klucz.
Ciasteczka. API wyszukiwania zadań wymaga, aby ciasteczka były przechowywane pomiędzy połączeniami, ponieważ zadanie istnieje na konkretnym węźle backendu. Bez pojemnika na ciasteczka, kolejne połączenia mogą nie znaleźć zadania.
Ograniczenia. Zadanie zwraca ograniczoną liczbę wiadomości, a każda strona może pomieścić do 10 000. Utrzymuj krótkie okna czasowe.
Eksportuj z API wyszukiwania zadań
API="https://api.sumologic.com/api/v1"
AUTH="$SUMO_ACCESS_ID:$SUMO_ACCESS_KEY"
JAR=$(mktemp)
# 1. utwórz zadanie wyszukiwania
JOB=$(curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" -H 'Content-Type: application/json'
-X POST "$API/search/jobs" -d '{
"query": "_sourceCategory=linux/secure _sourceHost=web-03",
"from": "2026-10-19T00:00:00", "to": "2026-10-20T00:00:00",
"timeZone": "UTC"
}' | jq -r '.id')
# 2. poczekaj, aż wszystkie wyniki zostaną zebrane
until curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" "$API/search/jobs/$JOB"
| jq -e '.state == "DONE GATHERING RESULTS"' >/dev/null; do sleep 5; done
# 3. przewijaj wiadomości, zachowując surowe linie
COUNT=$(curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" "$API/search/jobs/$JOB" | jq '.messageCount')
for ((off=0; off<COUNT; off+=10000)); do
curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" "$API/search/jobs/$JOB/messages?offset=$off&limit=10000"
| jq -r '.messages[].map._raw'
done > web-03_sumo_1019.log
# 4. sprzątanie
curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" -X DELETE "$API/search/jobs/$JOB" >/dev/null
Utrzymaj zapytanie jako zwykły filtr. Zapytania z operatorami agregacji zwracają rekordy, a nie wiadomości, a rekordy nie niosą _raw. Dla strukturalnego wyjścia, napisz jq -c ’.messages[].map’ zamiast, co daje jeden obiekt JSON na linię ze wszystkimi polami.
Jeśli zadanie zostanie anulowane, pętla oczekiwania nigdy się nie kończy. Dodaj sprawdzenie dla CANCELLED, jeśli skryptujesz to do regularnego użycia.
Prześlij, oczyść i zbadaj w LogTotal
- Prześlij. Otwórz logtotal.com i upuść plik.
- Oczyść.
- Zbadaj.
Kiedy coś pójdzie źle
| Objaw | Prawdopodobna przyczyna | Fix |
|---|---|---|
| 401 Niezautoryzowane | Zły punkt końcowy wdrożenia lub zły klucz | Dopasuj hosta API do URL logowania |
| Zadanie „nie znaleziono” podczas kolejnych połączeń | Ciasteczka nie przechowywane pomiędzy połączeniami | Użyj pojemnika na ciasteczka (-c / -b) |
| _raw jest pusty | Zapytanie agreguje | Użyj zwykłego filtra zapytania |
| Mniej wiadomości niż oczekiwano | Ograniczenie na zadanie | Podziel okno czasowe |
| 429 Zbyt wiele żądań | Limit szybkości API | Zwolnij; mniej równoległych zadań |
FAQ
Co ze wskazówkami i spostrzeżeniami Sumo Logic Cloud SIEM?
To wykrycia, nie logi. Dla LogTotal eksportuj wiadomości logów za nimi.
Czy mogę wyszukiwać według czasu odbioru zamiast czasu wiadomości?
Tak, z „byReceiptTime”: true w treści zadania. To pomaga, gdy źródła wysyłają z opóźnieniem lub z błędnymi zegarami.