Esegui la tua ricerca tramite l’API Search Job di Sumo Logic: crea un lavoro, attendi che abbia raccolto tutti i risultati, quindi sfoglia i messaggi. Ogni messaggio include la linea di log originale in _raw. Anche la scheda Messaggi nell’interfaccia utente può esportare risultati, ma non in un formato letto oggi da LogTotal.
Sumo Logic è una piattaforma cloud SIEM e di log comune, e un luogo naturale da cui estrarre un frammento di indagine. Prime Core ha 23.391 regole di rilevamento per Sumo Logic, mappate su 664 tecniche MITRE ATT&CK. Di seguito è indicato come ottenere i log grezzi, sanificarli e indagarli gratuitamente in LogTotal.
Prima di iniziare
Una chiave di accesso. Crea un ID di accesso e una chiave in Sumo Logic. La chiave agisce con i permessi del tuo ruolo, quindi il ruolo deve poter eseguire ricerche sui dati desiderati.
Il giusto endpoint API. Sumo Logic esegue diversi deployment, e ciascuno ha il suo host API: api.sumologic.com per US1, api.us2.sumologic.com, api.eu.sumologic.com e così via. Corrisponde all’URL che usi per accedere. Un deployment errato ti dà un 401 che sembra una chiave non valida.
Cookie. L’API Search Job necessita dei cookie mantenuti tra le chiamate, poiché un lavoro risiede su un nodo di backend specifico. Senza un cookie jar, le chiamate successive possono non riuscire a trovare il lavoro.
Limiti. Un lavoro restituisce un numero limitato di messaggi, e ogni pagina contiene fino a 10.000. Mantieni ristrette le finestre temporali.
Esporta con l’API Search Job
API="https://api.sumologic.com/api/v1"
AUTH="$SUMO_ACCESS_ID:$SUMO_ACCESS_KEY"
JAR=$(mktemp)
# 1. crea il lavoro di ricerca
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. attendi che tutti i risultati siano raccolti
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. sfoglia i messaggi, mantenendo le righe raw
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. pulisci
curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" -X DELETE "$API/search/jobs/$JOB" >/dev/null
Mantieni la query come un filtro semplice. Le query con operatori di aggregazione restituiscono record, non messaggi, e i record non contengono _raw. Per un output strutturato, scrivi jq -c ‘.messages[].map’ invece, il quale restituisce un oggetto JSON per linea con tutti i campi.
Se un lavoro viene annullato, il ciclo di attesa non termina mai. Aggiungi un controllo per CANCELLED se scrivi script per uso regolare.
Carica, sanitizza e rivedi in LogTotal
- Carica. Apri logtotal.com e carica il file.
- Sanitizza.
- Rivedi.
Quando qualcosa va storto
| Sintomo | Probabile causa | Fix |
|---|---|---|
| 401 Non autorizzato | Endpoint di deployment errato, o una chiave non valida | Abbina l’host API al tuo URL di login |
| Lavoro “non trovato” nelle chiamate successive | Cookie non mantenuti tra le chiamate | Usa un cookie jar (-c / -b) |
| _raw è vuoto | La query aggrega | Usa una query di filtro semplice |
| Meno messaggi del previsto | Limite per lavoro | Dividi la finestra temporale |
| 429 Troppe richieste | Limite di velocità API | Rallenta; meno lavori paralleli |
FAQ
E per quanto riguarda i segnali e le intuizioni del Cloud SIEM di Sumo Logic?
Quelli sono rilevamenti, non log. Per LogTotal, esporta i messaggi di log dietro di essi.
Posso cercare per ora di ricezione invece che per ora del messaggio?
Sì, con “byReceiptTime”: true nel corpo del lavoro. Questo aiuta quando le sorgenti inviano in ritardo o con orologi errati.