Logboekgegevens verzenden naar Log Analytics met de HTTP Data Collector-API

Met de AZURE Log Analytics HTTP Data Collector-API kunt u JSON-gegevens posten naar een Log Analytics-werkruimte vanaf elke client die de REST API kan aanroepen. Met deze methode kunt u gegevens verzenden vanuit toepassingen van derden of vanuit scripts, zoals vanuit een runbook in Azure Automation

Aanvraag-URI

Als u uw Log Analytics-werkruimte wilt opgeven, vervangt u {CustomerID} door de id van uw werkruimte.

Methode Aanvraag-URI
Plaatsen https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Aanvraag URI-parameters
Parameter Beschrijving
CustomerID Unieke id voor de Log Analytics-werkruimte
Resource NAAM VAN API-resource. /api/logs
API-versie Versie van de API die moet worden gebruikt met deze aanvraag. Momenteel 01-04-2016

Aanvraagheaders

De aanvraagheaders in de volgende tabel zijn vereist.

Header Description
Autorisatie Zie hieronder aanvullende informatie over het maken van een HMAC-SHA256-header
Content-Type Vereist. Stel dit in op application/json
Log-Type Hiermee kunt u de naam opgeven van het bericht dat wordt verzonden. Momenteel ondersteunt logboektype alleen alfatekens. Het biedt geen ondersteuning voor numerieke gegevens of speciale tekens
x-ms-date De datum waarop de aanvraag is verwerkt in RFC 1123-indeling
time-generated-field Hiermee kunt u het tijdstempelveld van het bericht opgeven dat moet worden gebruikt als het veld TimeGenerated. Hiermee kunt u timeGenerated configureren om de werkelijke tijdstempel van de berichtgegevens weer te geven. Als dit veld niet is opgegeven, is de standaardwaarde voor TimeGenerated wanneer het bericht wordt opgenomen. Het opgegeven berichtveld moet de ISO 8601 van JJJJ-MM-DDThh:mm:ssZ volgen

Autorisatieheader

Elke aanvraag bij de LOG Analytics HTTP Data Collector-API moet de autorisatieheader bevatten. Als u een aanvraag wilt verifiëren, moet u de aanvraag ondertekenen met de primaire of secundaire sleutel voor de werkruimte die de aanvraag doet en die handtekening doorgeven als onderdeel van de aanvraag.

De indeling voor de autorisatieheader is als volgt:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID is de unieke id voor de Log Analytics-werkruimte en Signature is een HMAC (Hash-based Message Authentication Code) die is samengesteld op basis van de aanvraag en wordt berekend met behulp van het SHA256-algoritme en vervolgens wordt gecodeerd met Base64-codering.

De handtekeningtekenreeks samenstellen

Gebruik de volgende indeling om de handtekeningtekenreeks voor gedeelde sleutels te coderen:

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

In het volgende voorbeeld ziet u een handtekeningtekenreeks:

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

Vervolgens codeert u deze tekenreeks met behulp van het algoritme HMAC-SHA256 via de UTF-8-gecodeerde handtekeningtekenreeks, maakt u de autorisatieheader en voegt u de header toe aan de aanvraag.

De handtekening coderen

Als u de handtekening wilt coderen, roept u het algoritme HMAC-SHA256 op de UTF-8-gecodeerde handtekeningtekenreeks aan en codeert u het resultaat als Base64. Gebruik de volgende indeling (weergegeven als pseudocode):

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

Aanvraagbody

De hoofdtekst van het bericht dat is verzonden naar het eindpunt.

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

U kunt meerdere berichten van hetzelfde type in één aanvraagbody plaatsen.

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

Gegevenslimieten

Er zijn enkele beperkingen met betrekking tot de gegevens die worden geplaatst in de Api voor gegevensverzameling van Log Analytics.

  • Maximaal 30 MB per post naar de Log Analytics Data Collector-API. Dit is een limiet voor één bericht. Als de gegevens van één post groter zijn dan 30 MB, moet u de gegevens splitsen tot kleinere segmenten en ze gelijktijdig verzenden.
  • Maximum limiet van 32 kB voor veldwaarden. Als een veldwaarde groter is dan 32 kB, worden de gegevens afgekapt.
  • Het aanbevolen aantal velden voor elk type is 50. Dit is een praktische limiet vanuit het oogpunt van bruikbaarheid en zoekervaring.

Zie ook