Enviar dados de registo para o Log Analytics com a API de Recoletor de Dados HTTP
A API de Recoletor de Dados HTTP do Azure Log Analytics permite-lhe PUBLICAR dados JSON numa Área de Trabalho do Log Analytics a partir de qualquer cliente que possa chamar a API REST. Ao utilizar este método, pode enviar dados de aplicações de terceiros ou de scripts, como a partir de um runbook no Automatização do Azure
URI do pedido
Para especificar a área de trabalho do Log Analytics, substitua {CustomerID} pelo ID da área de trabalho.
Método | URI do pedido |
---|---|
Publicar | https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01 |
Pedir | Parâmetros do URI |
---|---|
Parâmetro | Description |
IDDeCliente | Identificador exclusivo da área de trabalho do Log Analytics |
Recurso | Nome do recurso da API. /api/logs |
Versão da API | Versão da API a utilizar com este pedido. Atualmente 2016-04-01 |
Cabeçalhos do pedido
São necessários os cabeçalhos do pedido na tabela seguinte.
Cabeçalho | Description |
---|---|
Autorização | Veja informações adicionais abaixo sobre como criar um cabeçalho HMAC-SHA256 |
Content-Type | Obrigatório. Defina esta opção como aplicação/json |
Log-Type | Permite-lhe especificar o nome da mensagem que está a ser submetida. Atualmente, o Tipo de registo só suporta carateres alfa. Não suporta carateres numéricos ou especiais |
x-ms-date | A data em que o pedido foi processado no formato RFC 1123 |
campo gerado pelo tempo | Permite-lhe especificar o campo de carimbo de data/hora da mensagem para utilizar como o campo TimeGenerated. Isto permite-lhe configurar o TimeGenerated para refletir o carimbo de data/hora real dos dados da mensagem. Se este campo não for especificado, a predefinição para TimeGenerated quando a mensagem é ingerida. O campo de mensagem especificado deve seguir o ISO 8601 de YYYY-MM-DDThh:mm:ssZ |
Cabeçalho de autorização
Qualquer pedido à API de Recoletor de Dados HTTP do Log Analytics tem de incluir o cabeçalho Autorização. Para autenticar um pedido, tem de assinar o pedido com a chave primária ou secundária da área de trabalho que está a fazer o pedido e transmitir essa assinatura como parte do pedido.
O formato do cabeçalho Autorização é o seguinte:
Authorization: SharedKey <WorkspaceID>:<Signature>
WorkspaceID é o identifer exclusivo da área de trabalho do Log Analytics e Signature é um Código de Autenticação de Mensagens (HMAC) baseado em Hash construído a partir do pedido e calculado com o algoritmo SHA256 e, em seguida, codificado com codificação Base64.
Construir a cadeia de assinatura
Para codificar a cadeia de assinatura chave partilhada, utilize o seguinte formato:
StringToSign = VERB + "\n" +
Content-Length + "\n" +
Content-Type + "\n" +
x-ms-date + "\n" +
"/api/logs";
O exemplo seguinte mostra uma cadeia de assinatura:
POST \n1024\napplication/json\nx-ms-date:Mon, 04 Apr 2016 08:00:00 GMT\n/api/logs
Em seguida, codifica esta cadeia com o algoritmo HMAC-SHA256 através da cadeia de assinatura codificada UTF-8, construa o cabeçalho Autorização e adicione o cabeçalho ao pedido.
Codificar a Assinatura
Para codificar a assinatura, chame o algoritmo HMAC-SHA256 na cadeia de assinatura codificada UTF-8 e codifica o resultado como Base64. Utilize o seguinte formato (mostrado como pseudocódigo):
Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))
Corpo do pedido
O corpo da mensagem enviada para o ponto final.
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
Pode colocar várias mensagens do mesmo tipo num único corpo de pedido.
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
},
{
"key1": "value5",
"key2": "value6",
"key3": "value7",
"key4": "value8"
}
]
Limites de dados
Existem algumas restrições em torno dos dados publicados na API de Recolha de Dados do Log Analytics.
- Máximo de 30 MB por publicação na API do Recoletor de Dados do Log Analytics. Este é um limite de tamanho para uma única publicação. Se os dados de uma única publicação excederem os 30 MB, deverá dividir os dados por segmentos de tamanho mais pequeno e enviá-los em simultâneo.
- Limite máximo de 32 KB para valores dos campos. Se o valor do campo for superior a 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 perspetiva de experiência de pesquisa e usabilidade.