次の方法で共有


HTTP Data Collector API を使用してログ データを Log Analytics に送信する

Azure Log Analytics HTTP Data Collector API を使用すると、REST API を呼び出すことができる任意のクライアントから JSON データを Log Analytics ワークスペースに POST できます。 この方法を使用すると、サードパーティのアプリケーションから、または Azure Automation の Runbook などのスクリプトからデータを送信できます

URI リクエスト

Log Analytics ワークスペースを指定するには、 {CustomerID} をワークスペースの ID に置き換えます。

メソッド URI リクエスト
投稿 https://{CustomerID}.ods.opinsights.azure.com/<Resource>?api-version=2016-04-01
リクエスト URI パラメーター
パラメーター 説明
顧客ID Log Analytics ワークスペースの一意の識別子
リソース API リソース名。 /api/ログ
API バージョン この要求で使用される API のバージョン。 現在 2016-04-01

要求ヘッダー

次の表の要求ヘッダーは必須です。

ヘッダ 説明
認証 HMAC-SHA256 ヘッダーの作成については、以下の追加情報を参照してください
コンテンツタイプ 必須。 これをapplication/jsonに設定します
ログタイプ 送信するメッセージの名前を指定できます。 現在、ログタイプは英字のみをサポートしています。 数値や特殊文字はサポートされていません
x-ms-date 要求が RFC 1123 形式で処理された日付
time-generated-field TimeGenerated フィールドとして使用するメッセージのタイムスタンプフィールドを指定できます。 これにより、メッセージ データの実際のタイムスタンプを反映するように TimeGenerated を構成できます。 このフィールドが指定されていない場合、メッセージが取り込まれるときの TimeGenerated の既定値になります。 指定するメッセージフィールドは、YYYY-MM-DDThh:mm:ssZのISO 8601に従う必要があります。

認証ヘッダー

Log Analytics HTTP Data Collector API への要求には、Authorization ヘッダーを含める必要があります。 要求を認証するには、要求を行うワークスペースの主キーまたはセカンダリキーのいずれかを使用して要求に署名し、その署名を要求の一部として渡す必要があります。

Authorization ヘッダーの形式は次のとおりです。

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID は Log Analytics ワークスペースの一意の識別子であり、 署名 は要求から構築され、SHA256 アルゴリズムを使用して計算され、Base64 エンコードを使用してエンコードされるハッシュベースのメッセージ認証コード (HMAC) です。

署名文字列の作成

共有鍵署名文字列をエンコードするには、次の形式を使用します。

	StringToSign = VERB + "\n" +
	Content-Length + "\n" +
	Content-Type + "\n" +
	x-ms-date + "\n" +
	"/api/logs";

次の例は、署名文字列を示しています。

POST \n1024\napplication/json\nx-ms-date:Mon, 04 Apr 2016 08:00:00 GMT\n/api/logs

次に、UTF-8 でエンコードされた署名文字列に対して HMAC-SHA256 アルゴリズムを使用してこの文字列をエンコードし、Authorization ヘッダーを構築して、ヘッダーを要求に追加します。

署名のエンコード

署名をエンコードするには、UTF-8 でエンコードされた署名文字列で HMAC-SHA256 アルゴリズムを呼び出し、結果を Base64 としてエンコードします。 次の形式を使用します (擬似コードとして表示)。

Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))

リクエストの本文

エンドポイントに送信されたメッセージの本文。

	{
	  "key1": "value1",
	  "key2": "value2",
	  "key3": "value3",
	  "key4": "value4"
	}

同じタイプの複数のメッセージを 1 つの要求本文にバッチ処理できます。

	[
	  {
	    "key1": "value1",
	    "key2": "value2",
	    "key3": "value3",
	    "key4": "value4"
	  },
	  {
	    "key1": "value5",
	    "key2": "value6",
	    "key3": "value7",
	    "key4": "value8"
	  }
	]

データ制限

Log Analytics データ収集 API に投稿されたデータには、いくつかの制約があります。

  • Log Analytics Data Collector API への投稿ごとに最大 30 MB。 これは 1 回の送信のサイズ制限です。 1 つの投稿のデータが 30 MB を超える場合は、データを小さなサイズのチャンクに分割し、同時に送信する必要があります。
  • フィールド値の上限は 32 KB です。 フィールド値が 32 KB を超えた場合、データは切り捨てられます。
  • 特定の種類のフィールドの推奨される最大数は 50 個です。 これは、使いやすさと検索エクスペリエンスの観点からの実質的な制限です。

こちらも参照ください