Compartilhar via


Enviar dados de log para o Log Analytics com a API do Coletor de Dados HTTP

A API do Coletor de Dados HTTP do Azure Log Analytics permite que você publique dados JSON em um workspace do Log Analytics de qualquer cliente que possa chamar a API REST. Usando esse método, você pode enviar dados de aplicativos de terceiros ou de scripts, como de um runbook na Automação do Azure

URI de solicitação

Para especificar o workspace do Log Analytics, substitua {CustomerID} pela ID do workspace.

Método URI de solicitação
Postar https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Solicitação Parâmetros de URI
Parâmetro Descrição
ID do Cliente Identificador exclusivo para o workspace do Log Analytics
Recurso Nome do recurso da API. /api/logs
Versão da API Versão da API a ser usada com esta solicitação. Atualmente 2016-04-01

Cabeçalhos da solicitação

Os cabeçalhos de solicitação na tabela a seguir são obrigatórios.

Cabeçalho Descrição
Autorização Veja informações adicionais abaixo sobre como criar um cabeçalho HMAC-SHA256
Tipo de conteúdo Obrigatório Defina isso como application/json
Tipo de Log Permite especificar o nome da mensagem que está sendo enviada. Atualmente, o tipo de log suporta apenas caracteres alfa. Não suporta números ou caracteres especiais
x-ms-date A data em que a solicitação foi processada no formato RFC 1123
campo-gerado-no-tempo Permite especificar o campo de carimbo de data/hora da mensagem a ser usado como o campo TimeGenerated. Isso permite que você configure o TimeGenerated para refletir o carimbo de data/hora real dos dados da mensagem. Se esse campo não for especificado, o padrão para TimeGenerated quando a mensagem for ingerida. O campo de mensagem especificado deve seguir a ISO 8601 de AAAA-MM-DDThh:mm:ssZ

Cabeçalho de autorização

Qualquer solicitação para a API do Coletor de Dados HTTP do Log Analytics deve incluir o cabeçalho Authorization. Para autenticar uma solicitação, você deve assinar a solicitação com a chave primária ou secundária do workspace que está fazendo a solicitação e passar essa assinatura como parte da solicitação.

O formato do cabeçalho Authorization é o seguinte:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID é o identificador exclusivo para o workspace do Log Analytics e Signature é um HMAC (Código de Autenticação de Mensagem baseado em Hash) construído a partir da solicitação e calculado usando o algoritmo SHA256 e, em seguida, codificado usando a codificação Base64.

Construindo a cadeia de caracteres de assinatura

Para codificar a cadeia de caracteres de assinatura de chave compartilhada, use o seguinte formato:

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

O exemplo a seguir mostra uma cadeia de caracteres de assinatura:

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

Em seguida, codifique essa cadeia de caracteres usando o algoritmo HMAC-SHA256 sobre a cadeia de caracteres de assinatura codificada em UTF-8, construa o cabeçalho Authorization e adicione o cabeçalho à solicitação.

Codificando a assinatura

Para codificar a assinatura, chame o algoritmo HMAC-SHA256 na cadeia de caracteres de assinatura codificada em UTF-8 e codifique o resultado como Base64. Use o seguinte formato (mostrado como pseudocódigo):

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

Corpo da solicitação

O corpo da mensagem enviada ao ponto de extremidade.

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

Você pode agrupar várias mensagens do mesmo tipo em um único corpo de solicitação.

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

Limites de dados

Há algumas restrições em torno dos dados postados na API de coleta de dados do Log Analytics.

  • Máximo de 30 MB por postagem na API do Coletor de Dados do Log Analytics. Este é um limite de tamanho para um único post. Se os dados de uma única postagem excederem 30 MB, você deverá dividir os dados em partes menores e enviá-las simultaneamente.
  • Limite máximo de 32 KB para valores de campo. Se o valor do campo for maior do que 32 KB, os dados serão truncados.
  • O número máximo recomendado de campos para um determinado tipo é 50. Este é um limite prático de uma perspectiva de experiência de pesquisa e usabilidade.

Consulte também