DevoクエリAPIを使用します:/search/queryエンドポイントにLINQクエリ、時間範囲、および出力モードを送信します。認証にはAPIトークンまたはキーとシークレットを使用します。JSONモードを要求すると、構造化イベントを取得できます。生のテーブルからメッセージフィールドを選択して元の行を取り戻すことができます。公式のPython SDK(devo-sdk)は、コードがcurlよりも好ましい場合に同じAPIをラップします。
Devoは大量のセキュリティおよび運用データをクラウドに保存しており、長期間保持されることが多いです。Prime CoreにはDevo用に23,653の検出ルールがあり、664のMITRE ATT&CKテクニックにマッピングされています。以下に、データを取得し、消毒し、LogTotalで無料で調査する方法を示します。
開始前に
資格情報。 必要なテーブルへのアクセス権を持つAPIトークン、あるいはAPIキーとシークレットをDevoドメインの資格情報設定で作成します。
地域のエンドポイント。 クエリAPIのホストはドメインの所在地に依存します。例えば、apiv2-us.devo.comやapiv2-eu.devo.comです。
テーブル名。 Devoはデータをbox.unixやfirewall.fortinet.trafficのようなテーブルに整理します。データ検索エリアで自分のものを見つけ、まずそこでクエリを作成しましょう。
クエリAPIでのエクスポート
curl -sS -X POST "https://apiv2-eu.devo.com/search/query"
-H "Authorization: Bearer $DEVO_TOKEN" -H 'Content-Type: application/json'
-d '{
"query": "from box.unix where hostname = "web-03" select eventdate, hostname, message",
"from": 1792368000,
"to": 1792454400,
"mode": {"type": "json/simple"}
}' > devo_web03_1019.json
上記のfromとtoの値は2026-10-19 00:00 UTCから2026-10-20 00:00 UTCまでのエポック秒です。応答が1行に1つのJSONオブジェクトなら、そのままアップロードしてください。配列の場合は、jq -c ‘.[]’を使用してフラット化します。生の行の場合、メッセージを抽出します。
Pythonの代替案。 pip install devo-sdkを実行し、その後devops.apiパッケージのAPIクライアントを使ってトークン、同じクエリ、日付を使用します。それはキーとシークレットの認証のためにリクエストの署名を処理します。
LogTotalでのアップロード、消毒、レビュー
- アップロード。 開く logtotal.com ファイルをドロップします。
- 消毒。
- レビュー。
問題発生時
| 症状 | 考えられる原因 | Fix |
|---|---|---|
| 401 | 間違ったトークン、またはキー/シークレット署名の問題 | 資格情報を確認してください。リクエストの署名を自動で行うSDKを試してください。 |
| 接続エラー | 間違った地域のエンドポイント | ドメインの地域を使用してください |
| 結果が空です | 間違ったテーブル名、またはミリ秒を秒と間違えた | データ検索でテーブルを確認し、時間単位を確認してください |
| 期待しないテーブルが出力される | 必要とするモードが一致していない | JSONモードを選択してください |
FAQ
生データか解析済みか?
syslogスタイルのソースの場合、メッセージを選択して生の行をアップロードします。JSONソースの場合、解析済みイベントをアップロードします。
エクスポートを定期実行できますか?
はい、同じAPIは定期ジョブでも動作します。継続的な転送には、Devoにはデータエクスポート機能もあります。