Freigeben über


Senden von Protokolldaten an Log Analytics mit der HTTP-Datensammler-API

Mit der HTTP-Datensammler-API für Azure Log Analytics können Sie JSON-Daten von jedem Client, der die REST-API aufrufen kann, an einen Log Analytics-Arbeitsbereich senden. Mit dieser Methode können Sie Daten aus Drittanbieteranwendungen oder aus Skripts senden, z. B. aus einem Runbook in Azure Automation

Anforderungs-URI

Um Ihren Log Analytics-Arbeitsbereich anzugeben, ersetzen Sie {CustomerID} durch die ID Ihres Arbeitsbereichs.

Methode Anforderungs-URI
Post https://{Kunden-ID}.ods.opinsights.azure.com/< Ressource>?api-version=2016-04-01
Anfrage URI-Parameter
Parameter BESCHREIBUNG
Kunden-ID Eindeutiger Bezeichner für den Log Analytics-Arbeitsbereich
Ressource Name der API-Ressource. /api/logs
API-Version Version der API, die mit dieser Anforderung verwendet werden soll. Aktuell 01.04.2016

Anforderungsheader

Die Anforderungsheader in der folgenden Tabelle sind erforderlich.

Kopfzeile BESCHREIBUNG
Autorisierung Weitere Informationen zum Erstellen einer HMAC-SHA256 Kopfzeile finden Sie weiter unten
Inhaltstyp Erforderlich. Legen Sie dies auf application/json fest.
Protokolltyp Hier können Sie den Namen der Nachricht angeben, die gesendet wird. Derzeit unterstützt der Protokolltyp nur Alphazeichen. Ziffern oder Sonderzeichen werden nicht unterstützt
x-ms-datum Das Datum, an dem die Anforderung im RFC 1123-Format verarbeitet wurde
zeitgeneriertes Feld Ermöglicht es Ihnen, das Zeitstempelfeld der Nachricht anzugeben, das als TimeGenerated-Feld verwendet werden soll. Auf diese Weise können Sie TimeGenerated so konfigurieren, dass der tatsächliche Zeitstempel aus den Nachrichtendaten widergespiegelt wird. Wenn dieses Feld nicht angegeben ist, wird der Standardwert für TimeGenerated verwendet, wenn die Nachricht erfasst wird. Das angegebene Nachrichtenfeld sollte der ISO 8601 von YYYY-MM-DDThh:mm:ssZ entsprechen.

Autorisierungsheader

Jede Anforderung an die Log Analytics-HTTP-Datensammler-API muss den Authorization-Header enthalten. Um eine Anforderung zu authentifizieren, müssen Sie die Anforderung entweder mit dem Primär- oder Sekundärschlüssel für den Arbeitsbereich signieren, der die Anforderung stellt, und diese Signatur als Teil der Anforderung übergeben.

Das Format für den Authorization-Header lautet wie folgt:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID ist der eindeutige Identifikator für den Log Analytics-Arbeitsbereich, und Signature ist ein Hash-basierter Nachrichtenauthentifizierungscode (HMAC), der aus der Anforderung erstellt und mithilfe des SHA256-Algorithmus berechnet und dann mit der Base64-Codierung codiert wird.

Erstellen der Signaturzeichenfolge

Verwenden Sie das folgende Format, um die Signaturzeichenfolge für den gemeinsam verwendeten Schlüssel zu codieren:

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

Das folgende Beispiel zeigt eine Signaturzeichenfolge:

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

Codieren Sie als Nächstes diese Zeichenfolge, indem Sie den HMAC-SHA256-Algorithmus für die UTF-8-codierte Signaturzeichenfolge verwenden, erstellen Sie den Authorization-Header, und fügen Sie den Header der Anforderung hinzu.

Codieren der Signatur

Um die Signatur zu codieren, rufen Sie den HMAC-SHA256-Algorithmus für die UTF-8-codierte Signaturzeichenfolge auf, und codieren Sie das Ergebnis als Base64. Verwenden Sie das folgende Format (als Pseudocode angezeigt):

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

Anfragekörper

Der Text der Nachricht, die an den Endpunkt übermittelt wird.

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

Sie können mehrere Nachrichten desselben Typs in einem einzigen Anforderungstext zusammenfassen.

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

Datenlimits

Es gibt einige Einschränkungen in Bezug auf die Daten, die an die Log Analytics-Datensammlungs-API gesendet werden.

  • Maximal 30 MB pro Beitrag an die Log Analytics-Datensammler-API. Dies ist eine Größenbeschränkung für einen einzelnen Beitrag. Wenn die Daten aus einem einzelnen Beitrag größer als 30 MB sind, sollten Sie die Daten in kleinere Blöcke aufteilen und diese gleichzeitig senden.
  • Maximal 32 KB für Feldwerte. Wenn der Feldwert größer als 32 KB ist, werden die Daten gekürzt.
  • Die empfohlene maximale Anzahl von Feldern eines bestimmten Typs beträgt 50. Dies ist ein praktischer Grenzwert aus Sicht der Benutzerfreundlichkeit und Sucherfahrung.

Siehe auch