HTTP Data Collector API を使用して Log Analytics にログ データを送信する
Azure Log Analytics HTTP Data Collector API を使用すると、REST API を呼び出すことができる任意のクライアントから Log Analytics ワークスペースに JSON データを POST できます。 この方法を使用すると、サード パーティ製アプリケーションやスクリプト (Azure Automation の Runbook など) からデータを送信できます。
要求 URI
Log Analytics ワークスペースを指定するには、 {CustomerID} を ワークスペースの ID に置き換えます。
Method | 要求 URI |
---|---|
投稿 | https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01 |
要求 | URI パラメーター |
---|---|
パラメーター | 説明 |
CustomerID | Log Analytics ワークスペースの一意識別子 |
リソース | API リソース名。 /api/logs |
API バージョン | この要求で使用する API のバージョン。 現在 2016-04-01 |
要求ヘッダー
次の表の要求ヘッダーが必要です。
Header | 説明 |
---|---|
承認 | HMAC-SHA256 ヘッダーの作成については、以下の追加情報を参照してください |
Content-Type | 必須。 これを application/json に設定します |
Log-Type | 送信するメッセージの名前を指定できます。 現在、ログの種類ではアルファ文字のみがサポートされています。 数値または特殊文字はサポートされていません |
x-ms-date | 要求が RFC 1123 形式で処理された日付 |
time-generated-field | TimeGenerated フィールドとして使用するメッセージのタイムスタンプ フィールドを指定できます。 これにより、メッセージ データからの実際のタイムスタンプを反映するように TimeGenerated を構成できます。 このフィールドを指定しない場合、メッセージの取り込み時の TimeGenerated の既定値。 指定されたメッセージ フィールドは、YYYY-MM-DDThh:mm:ssZ の ISO 8601 に従う必要があります |
Authorization header (Authorization ヘッダー)
Log Analytics HTTP Data Collector API への要求には、Authorization ヘッダーを含める必要があります。 要求を認証するには、要求を行っているワークスペースのプライマリ キーまたはセカンダリ キーを使用して要求に署名し、その署名を要求の一部として渡す必要があります。
Authorization ヘッダーの形式は次のとおりです。
Authorization: SharedKey <WorkspaceID>:<Signature>
WorkspaceID は Log Analytics ワークスペースの一意の識別子であり、 Signature は要求から構築され、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 データ コレクター API に送信するデータの上限は 30 MB です。 これは 1 回の送信のサイズ制限です。 1 回の送信のデータ サイズが 30 MB を超える場合は、データを小さなサイズのチャンクに分割し、それらを同時に送信する必要があります。
- フィールド値の上限は 32 KB です。 フィールド値が 32 KB を超えた場合、データは切り捨てられます。
- 特定の種類のフィールドの推奨される最大数は 50 個です。 これは、使いやすさと検索エクスペリエンスの観点からの実質的な制限です。