Exécutez votre recherche via l’API Job de recherche de Sumo Logic : créez une tâche, attendez qu’elle ait recueilli tous les résultats, puis parcourez les messages. Chaque message contient la ligne de journal originale dans _raw. L’onglet Messages dans l’interface utilisateur peut également exporter les résultats, mais pas dans un format que LogTotal lit aujourd’hui.
Sumo Logic est une plateforme SIEM et de journaux cloud courante, un lieu naturel pour extraire une partie d’investigation. Prime Core dispose de 23 391 règles de détection pour Sumo Logic, mappées à 664 techniques MITRE ATT&CK. Voici comment obtenir les journaux bruts, les assainir et les enquêter gratuitement dans LogTotal.
Avant de commencer
Une clé d’accès. Créez un ID et une clé d’accès dans Sumo Logic. La clé agit avec les permissions de votre rôle, donc le rôle doit pouvoir exécuter des recherches sur les données que vous souhaitez.
Le bon point de terminaison API. Sumo Logic exécute plusieurs déploiements, et chacun a son propre hôte API : api.sumologic.com pour US1, api.us2.sumologic.com, api.eu.sumologic.com, etc. Faites correspondre à l’URL que vous utilisez pour vous connecter. Un mauvais déploiement vous donne une erreur 401 qui ressemble à une mauvaise clé.
Cookies. L’API Job de recherche nécessite que les cookies soient conservés entre les appels, car une tâche est hébergée sur un nœud backend spécifique. Sans pot de cookies, les appels de suivi peuvent ne pas trouver la tâche.
Limites. Une tâche retourne un nombre limité de messages, et chaque page en contient jusqu’à 10 000. Gardez les fenêtres temporelles serrées.
Exporter avec l’API Job de recherche
API="https://api.sumologic.com/api/v1"
AUTH="$SUMO_ACCESS_ID:$SUMO_ACCESS_KEY"
JAR=$(mktemp)
# 1. créez la tâche de recherche
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. attendez que tous les résultats soient rassemblés
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. parcourez les messages, en conservant les lignes brutes
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. nettoyer
curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" -X DELETE "$API/search/jobs/$JOB" >/dev/null
Gardez la requête à un filtre simple. Les requêtes avec opérateurs d’agrégation renvoient des enregistrements, pas des messages, et les enregistrements ne portent pas _raw. Pour une sortie structurée, écrivez jq -c ‘.messages[].map’ à la place, ce qui donne un objet JSON par ligne avec tous les champs.
Si une tâche est annulée, la boucle d’attente ne se termine jamais. Ajoutez une vérification pour ANNULÉ si vous le script pour une utilisation régulière.
Téléchargez, assainissez et examinez dans LogTotal
- Télécharger. Ouvrir logtotal.com et glissez-y le fichier.
- Assainir.
- Examiner.
Quand ça tourne mal
| Symptôme | Cause probable | Fix |
|---|---|---|
| 401 Non autorisé | Mauvais point de terminaison de déploiement, ou mauvaise clé | Faite correspondre l’hôte API à l’URL de connexion |
| Tâche « non trouvée » lors des appels de suivi | Cookies non conservés entre les appels | Utilisez un pot de cookies (-c / -b) |
| _raw est vide | La requête agrège | Utilisez une requête de filtre simple |
| Moins de messages que prévu | Limite par tâche | Divisez la fenêtre temporelle |
| 429 Trop de demandes | Limite de taux API | Ralentissez ; moins de tâches parallèles |
FAQ
Qu’en est-il des signaux et des insights de Sumo Logic Cloud SIEM ?
Ce sont des détections, pas des journaux. Pour LogTotal, exportez les messages de journal derrière eux.
Puis-je rechercher par heure de réception au lieu de l’heure du message ?
Oui, avec « byReceiptTime »: true dans le corps de la tâche. Cela aide lorsque les sources envoient tardivement ou avec des horloges incorrectes.