Condividi tramite


Inviare dati di log a Log Analytics con l'API dell'agente di raccolta dati HTTP

L'API dell'agente di raccolta dati HTTP di Azure Log Analytics consente di pubblicare dati JSON in un'area di lavoro Log Analytics da qualsiasi client in grado di chiamare l'API REST. Usando questo metodo, è possibile inviare dati da applicazioni di terze parti o da script, ad esempio da un runbook in Automazione di Azure

URI richiesta

Per specificare l'area di lavoro Log Analytics, sostituire {CustomerID} con l'ID dell'area di lavoro.

Metodo URI richiesta
Pubblica https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Richiesta Parametri dell'URI
Parametro Descrizione
CustomerID Identificatore univoco per l'area di lavoro Log Analytics
Risorsa Nome risorsa API. /api/logs
Versione API Versione dell'API da usare con questa richiesta. Attualmente 2016-04-01

Intestazioni della richiesta

Le intestazioni della richiesta nella tabella seguente sono obbligatorie.

Intestazione Descrizione
Autorizzazione Vedere altre informazioni di seguito sulla creazione di un'intestazione HMAC-SHA256
Content-Type Obbligatorio. Impostare questo valore su application/json
Log-Type Consente di specificare il nome del messaggio inviato. Attualmente, Il tipo di log supporta solo caratteri alfa. Non supporta numeri o caratteri speciali
x-ms-date Data di elaborazione della richiesta in formato RFC 1123
time-generated-field Consente di specificare il campo timestamp del messaggio da utilizzare come campo TimeGenerated. In questo modo è possibile configurare TimeGenerated per riflettere il timestamp effettivo dai dati del messaggio. Se questo campo non viene specificato, il valore predefinito per TimeGenerated quando viene inserito il messaggio. Il campo del messaggio specificato deve seguire l'ISO 8601 di AAAA-MM-GGThh:mm:ssZ

Authorization header (Intestazione dell'autorizzazione)

Qualsiasi richiesta all'API dell'agente di raccolta dati HTTP di Log Analytics deve includere l'intestazione Authorization. Per autenticare una richiesta, è necessario firmare la richiesta con la chiave primaria o secondaria per l'area di lavoro che effettua la richiesta e passa tale firma come parte della richiesta.

Il formato per l'intestazione Authorization è il seguente:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID è l'identificatore univoco per l'area di lavoro Log Analytics e Signature è un codice HMAC (Hash-based Message Authentication Code) costruito dalla richiesta e calcolato usando l'algoritmo SHA256 e quindi codificato usando la codifica Base64.

Costruzione della stringa di firma

Per codificare la stringa di firma della chiave condivisa, usare il formato seguente:

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

L'esempio seguente mostra una stringa di firma:

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

Codificare quindi questa stringa usando l'algoritmo HMAC-SHA256 sulla stringa di firma con codifica UTF-8, costruire l'intestazione Authorization e aggiungere l'intestazione alla richiesta.

Codifica della firma

Per codificare la firma, chiamare l'algoritmo HMAC-SHA256 nella stringa di firma con codifica UTF-8 e codificare il risultato come Base 64. Usare il formato seguente (indicato come pseudocodice):

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

Testo della richiesta

Corpo del messaggio inviato all'endpoint.

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

È possibile inviare in batch più messaggi dello stesso tipo in un singolo corpo della richiesta.

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

Limiti dei dati

Esistono alcune limitazioni riguardo ai dati pubblicati nell'API per la raccolta dei dati di Log Analytics.

  • Limite di 30 MB per post nell'API per la raccolta dei dati di Log Analytics. Questo limite riguarda le dimensioni di ogni messaggio. Se i dati di un singolo post superano i 30 MB, è necessario suddividerli in blocchi di dimensioni inferiori, che andranno inviati contemporaneamente.
  • Limite di 32 KB per i valori dei campi. Se il valore di un campo è superiore a 32 KB, i dati verranno troncati.
  • Il numero massimo di campi consigliato per un determinato tipo è 50. Si tratta di un limite pratico dal punto di vista dell'usabilità e dell'esperienza di ricerca.

Vedi anche