Sumo Logicログのエクスポート方法

Sumo Logicログのエクスポート方法

SOC Prime Team
SOC Prime Team linkedin icon フォローする

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でアップロード、簡素化し、レビューする

  1. アップロード。 開く logtotal.com そしてファイルをドロップします。
  2. 簡素化する。 
  3. レビュー。 

問題が発生した場合

症状考えられる原因Fix
401 Unauthorized誤ったデプロイメントエンドポイントか、無効なキーAPIホストをログインURLに合わせてください
後続の呼び出しで「ジョブが見つかりません」呼び出しの間でクッキーが保持されていないクッキージャーを使用する (-c / -b)
_rawが空ですクエリが集計を行っています単純なフィルタークエリを使用する
予想より少ないメッセージジョブごとの制限時間ウィンドウを分割する
429 Too Many RequestsAPIのレート制限ペースダウンする; パラレルジョブを減らす

FAQ

Sumo Logic Cloud SIEMの信号とインサイトはどうですか?

それらは検出であり、ログではありません。LogTotal用に、それらの背後のログメッセージをエクスポートします。

メッセージ時間の代わりに受領時間で検索できますか?

はい、ジョブ本文で”byReceiptTime”: trueを使用します。これにより、送信が遅れたり、時刻が誤っているソースに役立ちます。

SOC PrimeのDetection as Codeプラットフォームに参加し ビジネスに最も関連性のある脅威に対する可視性を向上させましょう。開始して即座に価値をもたらすためには、今すぐSOC Primeの専門家とのミーティングを予約してください。