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.