Запустіть свій пошук через API для пошукових задач Sumo Logic: створіть задачу, зачекайте, поки вона збере всі результати, а потім перегляньте повідомлення. Кожне повідомлення містить оригінальний рядок журналу в _raw. Вкладка Messages в інтерфейсі користувача теж може експортувати результати, але не в форматі, який LogTotal читає сьогодні.
Sumo Logic є загальною хмарною платформою SIEM і логів, і природним місцем для отримання зрізу розслідування. В Prime Core існує 23 391 правила виявлення для Sumo Logic, зіставлених з 664 техніками MITRE ATT&CK. Нижче показано, як отримати сировинні логи, очистити їх і досліджувати безкоштовно в LogTotal.
Перед тим, як почати
Ключ доступу. Створіть ідентифікатор доступу та ключ у Sumo Logic. Ключ діє з дозволами вашої ролі, тому роль має бути здатною виконувати пошуки по даних, які ви хочете.
Правильна кінцева точка API. Sumo Logic керує кількома розгортаннями, і кожне має свій власний хост API: api.sumologic.com для US1, api.us2.sumologic.com, api.eu.sumologic.com і так далі. Збігайте його з URL, який ви використовуєте для входу. Неправильне розгортання видасть вам 401, що виглядає як поганий ключ.
Cookies. API для пошукових задач вимагає збереження cookies між викликами, оскільки задача знаходиться на певному вузлі бекенду. Без cookies подальші виклики можуть не знайти задачу.
Обмеження. Задача повертає обмежену кількість повідомлень, і на кожній сторінці міститься до 10 000. Тримайте часові вікна вузькими.
Експортуйте за допомогою API для пошукових задач
API="https://api.sumologic.com/api/v1"
AUTH="$SUMO_ACCESS_ID:$SUMO_ACCESS_KEY"
JAR=$(mktemp)
# 1. створіть задачу пошуку
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. зачекайте, доки всі результати не зберуться
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. перегляньте повідомлення, зберігаючи сирі рядки
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. очистьте
curl -sS -u "$AUTH" -c "$JAR" -b "$JAR" -X DELETE "$API/search/jobs/$JOB" >/dev/null
Тримайте запит простим фільтром. Запити з операторами агрегації повертають записи, а не повідомлення, і записи не містять _raw. Для структурованого виводу пишіть jq -c ‘.messages[].map’, що дає один JSON-об’єкт на рядок з усіма полями.
Якщо задача скасована, петля очікування ніколи не закінчується. Додайте перевірку для CANCELLED, якщо ви пишете скрипт для регулярного використання.
Завантажуйте, очищайте і перевіряйте в LogTotal
- Завантаження. Відкрити logtotal.com і завантажте файл.
- Очистка.
- Перевірка.
Коли це йде неправильно
| Симптоми | Ймовірна причина | Fix |
|---|---|---|
| 401 Не авторизовано | Неправильна кінцева точка розгортання або поганий ключ | Зрівняйте хост API з URL вашого входу |
| Задача ‘не знайдена’ на подальших викликах | Cookies не збережені між викликами | Використовуйте jar для cookies (-c / -b) |
| _raw порожній | Запит агрегує | Використовуйте простий фільтраційний запит |
| Менше повідомлень, ніж очікувалося | Ліміт на задачу | Розділіть часовий інтервал |
| 429 Забагато запитів | Обмеження швидкості API | Сповільніться; менше паралельних задач |
FAQ
Щодо сигналів і уявлень Sumo Logic Cloud SIEM?
Це виявлення, не логи. Для LogTotal експортуйте повідомлення журнала за ними.
Чи можу я шукати за часом отримання замість часу повідомлення?
Так, з “byReceiptTime”: true в тілі задачі. Це допомагає, коли джерела надсилають із затримками або з неправильними годинниками.