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 postar 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 no Automação do Azure
URI da solicitação
Para especificar seu workspace do Log Analytics, substitua {CustomerID} pela ID do workspace.
Método | URI da 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 |
CustomerID | Identificador exclusivo para o workspace do Log Analytics |
Recurso | Nome do recurso de API. /api/logs |
Versão da API | Versão da API a ser usada com essa solicitação. Atualmente 01/04/2016 |
Cabeçalhos da solicitação
Os cabeçalhos de solicitação na tabela a seguir são obrigatórios.
parâmetro | Descrição |
---|---|
Autorização | Veja informações adicionais abaixo sobre como criar um cabeçalho HMAC-SHA256 |
Tipo de conteúdo | Obrigatórios. Defina isso como application/json |
Log-Type | Permite especificar o nome da mensagem que está sendo enviada. Atualmente, o tipo log dá suporte apenas a caracteres alfa. Ele não dá suporte a caracteres numéricos ou especiais |
x-ms-date | A data em que a solicitação foi processada no formato RFC 1123 |
time-generated-field | Permite que você especifique 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 será TimeGenerated quando a mensagem for ingerida. O campo de mensagem especificado deve seguir o 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 Autorização. Para autenticar uma solicitação, você deve assinar a solicitação com a chave primária ou secundária para o 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 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 de com codificação UTF-8 codificar o resultado na 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 enviar em lote 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 sobre os dados publicados na API de coleta de dados do Log Analytics.
- Máximo de 30 MB por post 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, será necessário dividi-los em partes menores e enviá-los 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.