Condividi tramite


Inviare i 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 inviare dati JSON a 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 della richiesta

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

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

Header di richiesta

Le intestazioni della richiesta nella tabella seguente sono obbligatorie.

Header Descrizione
Autorizzazione Di seguito sono riportate ulteriori informazioni sulla creazione di un'intestazione HMAC-SHA256
Tipo di Contenuto Obbligatorio. Imposta questa opzione su application/json
Tipo di Log Consente di specificare il nome del messaggio che viene inviato. Attualmente, il tipo di registro supporta solo caratteri alfanumerici. Non supporta numeri o caratteri speciali
x-ms-date La data in cui la richiesta è stata elaborata in formato RFC 1123
campo-generato-tempo Consente di specificare il campo timestamp del messaggio da utilizzare come campo TimeGenerated. In questo modo è possibile configurare TimeGenerated in modo che rifletta il timestamp effettivo dei dati del messaggio. Se questo campo non è specificato, l'impostazione predefinita per TimeGenerated quando il messaggio viene inserito. Il campo del messaggio specificato deve seguire la norma ISO 8601 di AAAA-MM-DDThh:mm:ssZ

Header di 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 passare tale firma come parte della richiesta.

Il formato dell'intestazione Authorization è il seguente:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID è l'identificatore univoco per l'area di lavoro Log Analytics e Signature è un codice di autenticazione dei messaggi basato su hash (HMAC) costruito dalla richiesta e calcolato usando l'algoritmo SHA256 e quindi codificato usando la codifica Base64.

Costruzione della stringa della firma

Per codificare la stringa di firma della chiave condivisa, utilizzare 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 sulla stringa di firma con codifica UTF-8 e codificare il risultato come Base64. Utilizzare il seguente formato (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 raggruppare più messaggi dello stesso tipo in un unico corpo della richiesta.

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

Limiti dei dati

Esistono alcuni vincoli relativi ai dati pubblicati nell'API di raccolta dati di Log Analytics.

  • Massimo 30 MB per post nell'API dell'agente di raccolta dati di Log Analytics. Questo limite riguarda le dimensioni di ogni messaggio. Se i dati provengono da un singolo post che supera i 30 MB, è necessario suddividere i dati in blocchi di dimensioni più piccole e inviarli 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.

Vedere anche