通过 Sumo Logic 的搜索作业 API 运行搜索:创建作业,等待收集到所有结果,然后分页浏览消息。每条消息在 _raw 中携带原始日志行。UI 中的“消息”选项卡也可以导出结果,但不是 LogTotal 今天读取的格式。
Sumo Logic 是一个常见的云 SIEM 和日志平台,是提取调查片段的自然场所。Prime Core 有 23,391 条适用于 Sumo Logic 的检测规则,映射到 664 个 MITRE ATT&CK 技术。下面是如何获取原始日志、清理它们并在 LogTotal 中免费进行调查的方法。
在您开始之前
一个访问密钥。 在 Sumo Logic 中创建访问 ID 和密钥。密钥根据您的角色权限操作,因此角色需要能够在您想要的数据上运行搜索。
正确的 API 端点。 Sumo Logic 运行多个部署,每个都有自己的 API 主机:美国1使用api.sumologic.com,美国2使用api.us2.sumologic.com,欧盟使用api.eu.sumologic.com,等等。与您用于登录的 URL匹配,错误的部署会给您一个看起来像坏密钥的401错误。
Cookies。 搜索作业 API 需要在调用之间保留 cookies,因为作业是在特定的后端节点上运行的。没有 cookie jar,后续调用可能找不到作业。
限制。 一个作业返回的消息数量是有限的,每页最多容纳 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 对象。
如果作业被取消,等待循环永远不会结束。如果您为定期使用编写脚本,请添加对取消的检查。
上传、清理并在 LogTotal 中审核
- 上传。 打开 logtotal.com 并拖放文件。
- 清理。
- 审核。
当出错时
| 症状 | 可能原因 | Fix |
|---|---|---|
| 401 未授权 | 错误的部署端点或坏密钥 | 将 API 主机与您的登录 URL 匹配 |
| 后续调用中作业“未找到” | 调用之间未保留 cookies | 使用 cookie jar (-c / -b) |
| _raw 是空的 | 查询进行了聚合 | 使用简单过滤器查询 |
| 消息少于预期 | 每个作业的限制 | 拆分时间窗口 |
| 429 请求过多 | API 速率限制 | 放慢速度;减少并行作业 |
FAQ
Sumo Logic Cloud SIEM 信号和见解怎么办?
这些是检测,不是日志。对于 LogTotal,导出其背后的日志消息。
我可以按接收时间而不是消息时间搜索吗?
可以,在作业正文中使用 “byReceiptTime”: true。这样可以在源发送延迟或时间不正确时有所帮助。