Sumo LogicのSearch Job APIを通じて検索を実行します: ジョブを作成し、すべての結果が収集されるのを待ち、その後メッセージをページングします。各メッセージは原文のログラインを_rawで保持します。UIのMessagesタブでも結果をエクスポートできますが、今日のLogTotalが読む形式ではありません。
Sumo Logicは一般的なクラウドSIEMおよびログプラットフォームであり、調査用スライスを引き出す自然な場所です。Prime Coreは、664のMITRE ATT&CK技法にマッピングされた23,391のSumo Logic用検出ルールを持っています。以下は、生ログを取得し、それを簡素化し、LogTotalで無料で調査する方法です。
始める前に
アクセスキー。 Sumo LogicでアクセスIDとキーを作成します。キーはあなたの役割の許可で動作するので、役割はあなたが求めるデータで検索を実行できる必要があります。
適切なAPIエンドポイント。 Sumo Logicはいくつかのデプロイメントを実行しており、各々は自身のAPIホストを持っています: US1用にapi.sumologic.com、api.us2.sumologic.com、api.eu.sumologic.comなどです。それをログイン時のURLと一致させます。間違ったデプロイメントは、不適切なキーのように見える401を返します。
クッキー。 Search Job APIは、特定のバックエンドノード上でジョブが稼働するため、呼び出しの間で保持されたクッキーを必要とします。クッキージャーなしでは、後続の呼び出しがジョブを見つけられないことがあります。
制限。 ジョブは限られた数のメッセージを返し、各ページは最大10,000を保持します。時間のウィンドウを狭く保ちます。
Search Job 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オブジェクトが1行に出力されます。
ジョブがキャンセルされた場合、待機ループが終了しません。これを定期的に使用するためにスクリプト化する場合は、キャンセルされた(CANCELLED)かどうかのチェックを追加します。
LogTotalでアップロード、簡素化し、レビューする
- アップロード。 開く logtotal.com そしてファイルをドロップします。
- 簡素化する。
- レビュー。
問題が発生した場合
| 症状 | 考えられる原因 | Fix |
|---|---|---|
| 401 Unauthorized | 誤ったデプロイメントエンドポイントか、無効なキー | APIホストをログインURLに合わせてください |
| 後続の呼び出しで「ジョブが見つかりません」 | 呼び出しの間でクッキーが保持されていない | クッキージャーを使用する (-c / -b) |
| _rawが空です | クエリが集計を行っています | 単純なフィルタークエリを使用する |
| 予想より少ないメッセージ | ジョブごとの制限 | 時間ウィンドウを分割する |
| 429 Too Many Requests | APIのレート制限 | ペースダウンする; パラレルジョブを減らす |
FAQ
Sumo Logic Cloud SIEMの信号とインサイトはどうですか?
それらは検出であり、ログではありません。LogTotal用に、それらの背後のログメッセージをエクスポートします。
メッセージ時間の代わりに受領時間で検索できますか?
はい、ジョブ本文で”byReceiptTime”: trueを使用します。これにより、送信が遅れたり、時刻が誤っているソースに役立ちます。