Skicka loggdata till Log Analytics med HTTP Data Collector-API:et
Med AZURE Log Analytics HTTP Data Collector API kan du PUBLICERA JSON-data till en Log Analytics-arbetsyta från alla klienter som kan anropa REST-API:et. Med den här metoden kan du skicka data från program från tredje part eller från skript, till exempel från en runbook i Azure Automation
URI för förfrågan
Om du vill ange log analytics-arbetsytan ersätter du {CustomerID} med arbetsytans ID.
Metod | URI för förfrågan |
---|---|
Skicka | https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01 |
Förfrågan | URI-parametrar |
---|---|
Parameter | Beskrivning |
CustomerID | Unik identifierare för Log Analytics-arbetsytan |
Resurs | API-resursnamn. /api/loggar |
API-version | Version av API:et som ska användas med den här begäran. För närvarande 2016-04-01 |
Begärandehuvuden
Begärandehuvudena i följande tabell krävs.
Huvud | Description |
---|---|
Auktorisering | Se ytterligare information nedan om hur du skapar en HMAC-SHA256-rubrik |
Content-Type | Krävs. Ställ in detta på application/json |
Log-Type | Gör att du kan ange namnet på meddelandet som skickas. Loggtypen stöder för närvarande endast alfatecken. Det stöder inte numeriska tecken eller specialtecken |
x-ms-date | Det datum då begäran bearbetades i RFC 1123-format |
tidsgenererat fält | Gör att du kan ange det tidsstämpelfält för meddelandet som ska användas som fältet TimeGenerated. På så sätt kan du konfigurera TimeGenerated så att den återspeglar den faktiska tidsstämpeln från meddelandedata. Om det här fältet inte har angetts är standardvärdet för TimeGenerated när meddelandet matas in. Det angivna meddelandefältet ska följa ISO 8601 för ÅÅÅÅÅ-MM-DDThh:mm:ssZ |
Auktoriseringshuvud
Alla begäranden till LOG Analytics HTTP Data Collector API måste innehålla auktoriseringshuvudet. Om du vill autentisera en begäran måste du signera begäran med antingen den primära eller sekundära nyckeln för arbetsytan som gör begäran och skicka signaturen som en del av begäran.
Formatet för auktoriseringshuvudet är följande:
Authorization: SharedKey <WorkspaceID>:<Signature>
WorkspaceID är den unika identifern för Log Analytics-arbetsytan, och Signatur är en Hash-baserad kod för meddelandeautentisering (HMAC) som skapats från begäran och beräknats med hjälp av SHA256-algoritmen och sedan kodats med Base64-kodning.
Skapa signatursträngen
Om du vill koda signatursträngen för delad nyckel använder du följande format:
StringToSign = VERB + "\n" +
Content-Length + "\n" +
Content-Type + "\n" +
x-ms-date + "\n" +
"/api/logs";
I följande exempel visas en signatursträng:
POST \n1024\napplication/json\nx-ms-date:Mon, 04 Apr 2016 08:00:00 GMT\n/api/logs
Koda sedan den här strängen med HMAC-SHA256-algoritmen över den UTF-8-kodade signatursträngen, skapa auktoriseringshuvudet och lägg till huvudet i begäran.
Koda signaturen
Om du vill koda signaturen anropar du HMAC-SHA256-algoritmen på DEN UTF-8-kodade signatursträngen och kodar resultatet som Base64. Använd följande format (visas som pseudokod):
Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))
Begärandetext
Brödtexten i meddelandet som skickas till slutpunkten.
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
Du kan skicka flera meddelanden av samma typ till en enda begärandetext.
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
},
{
"key1": "value5",
"key2": "value6",
"key3": "value7",
"key4": "value8"
}
]
Databegränsningar
Det finns vissa begränsningar för de data som publiceras i Log Analytics-api:et för datainsamling.
- Högst 30 MB per inlägg till Log Analytics-API:et för datainsamlare. Det här är en storleksgräns för ett enda inlägg. Om data från ett enda inlägg överskrider 30 MB bör du dela upp data till mindre segment och skicka dem samtidigt.
- Högst 32 kB för fältvärden. Om fältvärdet är större än 32 kB kommer data att trunkeras.
- Det rekommenderade maximala antalet fält för en specifik typ är 50. Detta är en praktisk gräns med tanke på användbarhet och sökfunktion.