Partilhar via


Agregar dados em um workspace do Log Analytics usando regras de resumo (versão prévia)

Uma regra de resumo permite agregar dados de log em uma cadência regular e enviar os resultados agregados para uma tabela de log personalizada no seu workspace do Log Analytics. Use as regras de resumo para otimizar seus dados para:

  • Análise e relatórios, especialmente em conjuntos de dados grandes e intervalos de tempo, conforme necessário para análise de segurança e incidentes, relatórios comerciais mensais ou anuais etc. Em geral, as consultas complexas em um conjunto de dados grande têm um tempo limite. É mais fácil e eficiente analisar e relatar dados resumidos limpos e agregados.

  • Redução de custos em logs detalhados, que você pode manter pelo tempo que precisar em uma tabela de log básica econômica e enviar os dados resumidos para uma tabela de Análise para análise e relatórios.

  • Privacidade de dados e segurança, removendo ou ocultando detalhes de privacidade em dados compartilháveis resumidos e limitando o acesso a tabelas com dados brutos.

Este artigo descreve como as regras de resumo funcionam e como defini-las e exibi-las, além de apresentar alguns exemplos do uso e os benefícios delas.

Aqui está um vídeo que fornece uma visão geral dos benefícios das regras de resumo:

Como funcionam as regras de resumo

As regras de resumo executam o processamento em lote diretamente no workspace do Log Analytics. A regra de resumo agrega partes de dados, definidas pelo tamanho do compartimento, com base em uma consulta KQL, e redimensiona os resultados resumidos em uma tabela personalizada com um plano do log de análise no seu workspace do Log Analytics.

Um diagrama que mostra como os dados são ingeridos em um workspace do Log Analytics e são agregados e ingeridos novamente no workspace usando uma regra de resumo.

Você pode agregar dados de qualquer tabela, não importa se a tabela tem um plano de dados de Análise ou Básico. O Azure Monitor cria o esquema de tabela de destino com base na consulta definida por você. Se a tabela de destino já existir, o Azure Monitor adicionará todas as colunas necessárias para dar suporte aos resultados da consulta. Todas as tabelas de destino também incluem um conjunto de campos padrão com informações de regra de resumo, incluindo:

  • _RuleName: a regra de resumo que gerou a entrada de log agregada.
  • _RuleLastModifiedTime: quando a regra foi modificada pela última vez.
  • _BinSize: o intervalo de agregação.
  • _BinStartTime: a hora de início da agregação.

Você pode configurar até 30 regras ativas para agregar dados de várias tabelas e enviar os dados agregados para tabelas de destino separadas ou para a mesma tabela.

Você pode exportar os dados resumidos de uma tabela de log personalizada para uma conta de armazenamento ou os Hubs de Eventos para novas integrações definindo uma regra de exportação de dados.

Exemplo: resumir os dados de ContainerLogsV2

Se você estiver monitorando contêineres, vai ingerir um grande volume de logs detalhados na tabela ContainerLogsV2.

Você pode usar essa consulta na regra de resumo para agregar todas as entradas de log exclusivas em 60 minutos, mantendo os dados úteis para análise e remoção de dados desnecessários:

ContainerLogV2 | summarize Count = count() by  Computer, ContainerName, PodName, PodNamespace, LogSource, LogLevel, Message = tostring(LogMessage.Message)

Aqui estão os dados brutos na tabela ContainerLogsV2:

Captura de tela que mostra dados de log brutos na tabela ContainerLogsV2.

Aqui estão os dados agregados que a regra de resumo envia para a tabela de destino:

Captura de tela que agrega os dados que as regras de resumo enviam para a tabela de destino.

Em vez de registrar centenas de entradas semelhantes em uma hora, a tabela de destino mostra a contagem de cada entrada exclusiva, conforme definido na consulta KQL. Defina o plano de dados Básico na tabela ContainerLogsV2 para retenção econômica dos dados brutos e use os dados resumidos na tabela de destino para suas necessidades de análise.

Permissões necessárias

Ação Permissões necessárias
Criar ou atualizar uma regra de resumo As permissões Microsoft.Operationalinsights/workspaces/summarylogs/write para os workspaces do Log Analytics, conforme fornecidas pela função integrada de Colaborador do Log Analytics, por exemplo
Criar ou atualizar uma tabela de destino As permissões Microsoft.OperationalInsights/workspaces/tables/write para os workspaces do Log Analytics, conforme fornecidas pela função integrada de Colaborador do Log Analytics, por exemplo
Habilitar a consulta no workspace As permissões Microsoft.OperationalInsights/workspaces/query/read para os workspaces do Log Analytics, conforme fornecidas pela função integrada Leitor do Log Analytics, por exemplo
Consultar todos os logs no workspace As permissões Microsoft.OperationalInsights/workspaces/query/*/read para os workspaces do Log Analytics, conforme fornecidas pela função integrada Leitor do Log Analytics, por exemplo
Consultar logs na tabela As permissões Microsoft.OperationalInsights/workspaces/query/<table>/read para os workspaces do Log Analytics, conforme fornecidas pela função integrada Leitor do Log Analytics, por exemplo
Consultar logs na tabela (ação da tabela) As permissões Microsoft.OperationalInsights/workspaces/tables/query/read para os workspaces do Log Analytics, conforme fornecidas pela função integrada Leitor do Log Analytics, por exemplo
Usar consultas criptografadas em uma conta de armazenamento gerenciada pelo cliente Permissões Microsoft.Storage/storageAccounts/* na conta de armazenamento, conforme fornecido pela função interna Colaborador da Conta de Armazenamento, por exemplo

Restrições e limitações

Categoria Limite
Número máximo de regras ativas em um workspace 30
Número máximo de resultados por compartimento 500.000
Volume máximo do conjunto de resultados 100 MB
Tempo limite de consulta para processamento de compartimento 10 minutos
  • No momento, as regras de resumo só estão disponíveis na nuvem pública.

  • A regra de resumo processa os dados de entrada e não pode ser configurada em um intervalo de tempo histórico.

  • Quando as tentativas de repetição da execução do compartimento são esgotadas, o compartimento é ignorado e não pode ser executado novamente.

  • Não há suporte para consulta de um workspace do Log Analytics em outro locatário por meio do Lighthouse.

  • Os limites de KQL dependem do plano da tabela de origem.

    • Análise: dá suporte a todos os comandos KQL, exceto:

    • Básico: dá suporte a todos os comandos KQL em uma só tabela. Você pode ingressar até cinco tabelas do Analytics com o operador lookup.

    • Functions: não há suporte para funções definidas pelo usuário. Há suporte para funções do sistema fornecidas pela Microsoft.

Modelo de preços

Não há custo adicional para as Regras de resumo. Você paga apenas pela consulta e pela ingestão de resultados para a tabela de destino, com base no plano de tabela da tabela de origem na qual você executa a consulta:

Plano da tabela de origem Custo da consulta Custo de ingestão dos resultados do Resumo
Análise Sem custo GB ingeridos por análise
Básico e Auxiliar GB verificados GB ingeridos por análise

Por exemplo, o cálculo de custo de uma regra por hora que retorna 100 registros por compartimento é:

Plano da tabela de origem Cálculo de preço mensal
Análise Preço de ingestão x tamanho do registro x número de registros x 24 horas x 30 dias
Básico e Auxiliar Preço de GB verificado x tamanho verificado + preço de ingestão x tamanho do registro x número de registros x 24 horas x 30 dias

Para saber mais, confira Preço do Azure Monitor.

Criar ou atualizar uma regra de resumo

Antes de criar uma regra, faça experimentos com a consulta no Log Analytics. Verifique se a consulta não atinge o limite de consulta ou se está perto dele. Verifique se a consulta produz o esquema pretendido e os resultados esperados. Se a consulta estiver perto dos limites de consulta, considere o uso de um binSize menor para processar menos dados por compartimento. Você também pode modificar a consulta para retornar menos registros ou remover campos com um volume maior.

Observação

As regras de Resumo são mais vantajosas em termos de custo e consumo de resultados quando reduzidas de forma significativa. Por exemplo, o volume de resultados é igual a 0,01% da origem ou menos.

Quando você atualiza uma consulta e remove os campos de saída do conjunto de resultados, o Azure Monitor não remove automaticamente as colunas da tabela de destino. Você precisa excluir colunas da tabela manualmente.

Para criar ou atualizar uma regra de resumo, faça esta chamada à API PUT:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}?api-version=2023-01-01-preview
Authorization: {credential}

{
  "properties": {
      "ruleType": "User",
      "description": "My test rule",
      "ruleDefinition": {
          "query": "StorageBlobLogs | summarize count() by AccountName",
          "binSize": 30,
          "destinationTable": "MySummaryLogs_CL"
      }
  }
}

Esta tabela descreve os parâmetros da regra de resumo:

Parâmetro Valores válidos Descrição
ruleType User ou System Especifica o tipo de regra.
- User: regras definidas por você.
- System: regras predefinidas gerenciadas pelos serviços do Azure.
description String Descreve a regra e a função dela. Esse parâmetro é útil quando você tem várias regras e pode ajudar no gerenciamento de regras.
binSize 20, 30, 60, 120, 180, 360, 720 ou 1,440 (minutos) Define o intervalo de agregação e o intervalo de tempo de retrospectiva. Por exemplo, se você definir "binSize": 120, poderá obter entradas para 02:00 to 04:00 e 04:00 to 06:00.
query Consulta KQL (Linguagem de Consulta Kusto) Define a consulta a ser executada na regra. Você não precisa especificar um intervalo de tempo, porque o parâmetro binSize determina o intervalo de agregação, por exemplo, 02:00 to 03:00 se "binSize": 60. Se você adicionar um filtro de tempo na consulta, o intervalo de tempo usado na consulta será a interseção entre o filtro e o tamanho do compartimento.
destinationTable tablename_CL Especifica o nome da tabela de log personalizada de destino. O valor do nome precisa ter o sufixo _CL. O Azure Monitor criará a tabela no workspace se ela ainda não existir, com base na consulta que você definiu na regra. Se a tabela já existir no workspace, o Azure Monitor adicionará novas colunas introduzidas na consulta.

Se os resultados do resumo incluírem um nome de coluna reservado, como TimeGenerated, _IsBillable, _ResourceId, TenantId ou Type. O Azure Monitor acrescentará o prefixo _Original aos campos originais para preservar os valores originais.
binDelay (opcional) Inteiro (minutos) Define um tempo para o atraso antes da execução do compartimento para dados de chegada tardia, também conhecidos como latência de ingestão. O atraso permite a chegada da maioria dos dados e a distribuição de carga do serviço. O atraso padrão é de três minutos e meio para 10% do valor de binSize.

Se você souber que os dados consultados normalmente são ingeridos com atraso, defina o parâmetro binDelay com o valor de atraso conhecido ou maior. Para obter mais informações, confira Configurar o tempo de agregação.
Em alguns casos, o Azure Monitor pode iniciar a execução do compartimento um pouco depois do atraso do compartimento definido, a fim de garantir a confiabilidade do serviço e o sucesso da consulta.
binStartTime (opcional) Entrada de datetime
Formato %Y-%n-%eT%H:%M %Z
Especifica a data e a hora da execução do compartimento inicial. O valor pode começar no datetime de criação da regra menos o valor binSize ou posterior e em horas inteiras. Por exemplo, se o datetime for 2023-12-03T12:13Z e binSize for 1.440, o valor válido binStartTime mais antigo será 2023-12-02T13:00Z, e a agregação incluirá dados registrados entre 02T13:00 e 03T13:00. Nesse cenário, as regras começam a agregar um 03T13:00, mais o atraso padrão ou especificado.

O parâmetro binStartTime é útil em cenários de resumo diário. Suponha que você esteja localizado no fuso horário UTC-8 e crie uma regra diária em 2023-12-03T12:13Z. Você deseja que a regra seja concluída antes do início do dia, às 8:00 (00:00 UTC). Defina o parâmetro de binStartTime a 2023-12-02T22:00Z. A primeira agregação inclui todos os dados registrados entre 02T:06:00 e 03T:06:00 na hora local, e a regra é executada ao mesmo tempo diariamente. Para obter mais informações, confira Configurar o tempo de agregação.

Ao atualizar as regras, você pode:
– Usar o valor existente de binStartTime ou remover o parâmetro binStartTime. Nesse caso, a execução continua de acordo com a definição inicial.
– Atualizar a regra com um novo valor de binStartTime para definir um novo valor de datetime.
timeSelector (opcional) TimeGenerated Define o campo de carimbo de data/hora usado pelo Azure Monitor para agregar dados. Por exemplo, se você definir "binSize": 120, poderá obter entradas com um valor de TimeGenerated entre 02:00 e 04:00.

Configurar o tempo de agregação

Por padrão, a regra de resumo cria a primeira agregação logo após a próxima hora inteira.

O curto atraso do Azure Monitor adiciona contas para latência de ingestão, ou o tempo entre quando os dados são criados no sistema monitorado e o tempo que eles ficam disponíveis para análise no Azure Monitor. Por padrão, esse atraso é entre três minutos e meio e 10% do valor de binSize antes da agregação de cada parte dos dados. Na maioria dos casos, esse atraso garante que o Azure Monitor agregue todos os dados registrados em cada período de compartimento.

Por exemplo:

  • Você cria uma regra de resumo com um tamanho de compartimento de 30 minutos às 14h44.

    A regra cria a primeira agregação pouco depois das 15h, por exemplo, às 15h04, para dados registrados entre 14h30 e 15h.

  • Você cria uma regra de resumo com um tamanho de compartimento de 720 minutos (12 horas) às 14h44.

    A regra cria a primeira agregação às 16h12, 72 minutos (10% do tamanho do compartimento de 720) após 13h, para dados registrados entre 3h e 15h.

Use os parâmetros binStartTime e binDelay para alterar o tempo da primeira agregação e o atraso que o Azure Monitor adiciona antes de cada agregação.

As próximas seções apresentam exemplos do tempo de agregação padrão e das opções de tempo de agregação mais avançadas.

Usar o tempo de agregação padrão

Neste exemplo, a regra de resumo é criada em 2023-06-07 às 14h44 e o Azure Monitor adiciona um atraso padrão de quatro minutos.

binSize (minutos) Execução da regra inicial Primeira agregação Segunda agregação
1440 2023-06-07 15:04 2023-06-06 15:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-08 15:00
720 2023-06-07 15:04 2023-06-07 03:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-08 03:00
360 2023-06-07 15:04 2023-06-07 09:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 21:00
180 2023-06-07 15:04 2023-06-07 12:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 18:00
120 2023-06-07 15:04 2023-06-07 13:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 17:00
60 2023-06-07 15:04 2023-06-07 14:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 16:00
30 2023-06-07 15:04 2023-06-07 14:30 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 15:30
20 2023-06-07 15:04 2023-06-07 14:40 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 15:20

Definir parâmetros opcionais de tempo de agregação

Neste exemplo, a regra de resumo é criada em 2023-06-07 às 14h44, e a regra inclui estas configurações avançadas:

  • binStartTime: 2023-06-08 07:00
  • binDelay: 8 minutos
binSize (minutos) Execução da regra inicial Primeira agregação Segunda agregação
1440 2023-06-09 07:08 2023-06-08 07:00 - 2023-06-09 07:00 2023-06-09 07:00 - 2023-06-10 07:00
720 2023-06-08 19:08 2023-06-08 07:00 - 2023-06-08 19:00 2023-06-08 19:00 - 2023-06-09 07:00
360 2023-06-08 13:08 2023-06-08 07:00 - 2023-06-08 13:00 2023-06-08 13:00 - 2023-06-08 19:00
180 2023-06-08 10:08 2023-06-08 07:00 - 2023-06-08 10:00 2023-06-08 10:00 - 2023-06-08 13:00
120 2023-06-08 09:08 2023-06-08 07:00 - 2023-06-08 09:00 2023-06-08 09:00 - 2023-06-08 11:00
60 2023-06-08 08:08 2023-06-08 07:00 - 2023-06-08 08:00 2023-06-08 08:00 - 2023-06-08 09:00
30 2023-06-08 07:38 2023-06-08 07:00 - 2023-06-08 07:30 2023-06-08 07:30 - 2023-06-08 08:00
20 2023-06-08 07:28 2023-06-08 07:00 - 2023-06-08 07:20 2023-06-08 07:20 - 2023-06-08 07:40

Exibir regras de resumo

Use esta chamada à API GET para ver a configuração de uma regra de resumo específica:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName1}?api-version=2023-01-01-preview
Authorization: {credential}

Use esta chamada à API GET para ver a configuração a fim de exibir a configuração de todas as regras de resumo no workspace do Log Analytics:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs?api-version=2023-01-01-preview
Authorization: {credential}

Interromper e reiniciar uma regra de resumo

Você pode interromper uma regra por um período de tempo – por exemplo, se quiser verificar se os dados foram ingeridos em uma tabela e não quiser afetar a tabela resumida e os relatórios. Quando você reinicia a regra, o Azure Monitor inicia o processamento de dados a partir da próxima hora inteira ou com base no parâmetro binStartTime definido (opcional).

Para interromper uma regra, use esta chamada à API POST:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}/stop?api-version=2023-01-01-preview
Authorization: {credential}

Para reiniciar a regra, use esta chamada à API POST:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}/start?api-version=2023-01-01-preview
Authorization: {credential}

Excluir uma regra de resumo

Você pode ter até 30 regras de resumo ativas no workspace do Log Analytics. Se você quiser criar uma regra, mas já tiver 30 regras ativas, precisará interromper ou excluir uma regra de resumo ativa.

Para excluir uma regra, use esta chamada à API DELETE:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}?api-version=2023-01-01-preview
Authorization: {credential}

Monitorar regras de resumo

Para monitorar as regras de resumo, habilite a categoria Logs de Resumo nas configurações de diagnóstico do workspace do Log Analytics. O Azure Monitor envia os detalhes de execução de regra de resumo, incluindo informações de início, sucesso e falha da regra de resumo, para a tabela LASummaryLogs no seu workspace.

Recomendamos que você configure regras de alerta de log para receber notificação de falhas no compartimento ou quando a execução do compartimento estiver se aproximando do tempo limite, conforme mostrado abaixo. Dependendo do motivo da falha, você pode reduzir o tamanho do compartimento para processar menos dados em cada execução ou modificar a consulta para retornar menos registros ou campos com maior volume.

Esta consulta retorna as execuções com falha:

LASummaryLogs | where Status == "Failed"

Esta consulta retorna as execuções de compartimento em que o valor de QueryDurationMs é maior que 0,9 x 600.000 milissegundos:

LASummaryLogs | where QueryDurationMs > 0.9 * 600000

Verificar a integridade dos dados

As regras de resumo são projetadas para escala e incluem um mecanismo de repetição para superar falhas transitórias de serviço ou consulta relacionadas aos limites de consulta, por exemplo. O mecanismo de repetição faz dez tentativas de agregar um compartimento com falha dentro de oito horas e ignora um compartimento, se ele esgotar. A regra é definida como isActive: false e colocada em espera após oito tentativas consecutivas de compartimento. Se você habilitar as regras de resumo do Monitor, o Azure Monitor registrará um evento na tabela LASummaryLogs no seu workspace.

Você não pode executar novamente uma execução de compartimento com falha, mas pode usar a seguinte consulta para exibir as execuções com falha:

let startTime = datetime("2024-02-16");
let endtTime = datetime("2024-03-03");
let ruleName = "myRuleName";
let stepSize = 20m; // The stepSize value is equal to the bin size defined in the rule
LASummaryLogs
| where RuleName == ruleName
| where Status == 'Succeeded'
| make-series dcount(BinStartTime) default=0 on BinStartTime from startTime to endtTime step stepSize
| render timechart

Esta consulta renderiza os resultados como um gráfico de tempo:

Captura de tela que mostra um grafo que mapeia os resultados da consulta para compartimentos com falha nas regras de resumo.

Confira a seção Regras de resumo do Monitor para ver opções de correção de regra e alertas proativos.

Criptografar consultas de regra de resumo usando chaves gerenciadas pelo cliente

Uma consulta KQL pode conter informações confidenciais em comentários ou na sintaxe da consulta. Para criptografar consultas de regra de resumo, vincule uma conta de armazenamento ao workspace do Log Analytics e use chaves gerenciadas pelo cliente.

Considerações ao trabalhar com as consultas criptografadas:

  • Vincular uma conta de armazenamento para criptografar suas consultas não interrompe as regras existentes.
  • Por padrão, o Azure Monitor armazena as consultas de regra de resumo no armazenamento do Log Analytics. Se você tiver regras de resumo existentes antes de vincular uma conta de armazenamento ao workspace do Log Analytics, atualize as regras de resumo para que as consultas salvem as consultas existentes na conta de armazenamento.
  • As consultas salvas em uma conta de armazenamento estão localizadas na tabela CustomerConfigurationStoreTable. Essas consultas são consideradas artefatos de serviço e o formato delas pode mudar.
  • Você pode usar a mesma conta de armazenamento para consultas de regra de resumo, consultas salvas no Log Analytics e alertas de log.

Solucionar problemas de regras de resumo

Esta seção apresenta dicas para solucionar problemas de regras de resumo.

Tabela de destino da regra de resumo excluída acidentalmente

Se você excluir a tabela de destino enquanto a regra de resumo estiver ativa, a regra será suspensa e o Azure Monitor enviará um evento para a tabela LASummaryLogs com uma mensagem indicando que a regra foi suspensa.

Se você não precisar dos resultados de resumo na tabela de destino, exclua a regra e a tabela. Se você precisar recuperar os resultados resumidos, siga as etapas descritas na seção Criar ou atualizar regras de resumo para recriar a tabela. A tabela de destino é restaurada, incluindo os dados ingeridos antes da exclusão, dependendo da política de retenção na tabela.

Se você não precisar dos resultados de resumo na tabela de destino, exclua a regra e a tabela. Se você precisar dos resultados de resumo, siga as etapas descritas na seção Criar ou atualizar regras de resumo para recriar a tabela de destino e restaurar todos os dados, incluindo os dados ingeridos antes da exclusão, dependendo da política de retenção na tabela.

A consulta usa operadores que criam colunas na tabela de destino

O esquema da tabela de destino é definido quando você cria ou atualiza uma regra de resumo. Se a consulta na regra de resumo incluir operadores que permitem a expansão do esquema de saída com base nos dados de entrada. Por exemplo, se a consulta usar a função arg_max(expression, *), o Azure Monitor não adicionará novas colunas à tabela de destino depois que você criar ou atualizar a regra de resumo e os dados de saída que precisam dessas colunas serão removidos. Para adicionar os novos campos à tabela de destino, atualize a regra de resumo ou adicione uma coluna à tabela manualmente.

Os dados em colunas removidas permanecem no workspace com base nas configurações de retenção da tabela

Quando você remove colunas na consulta, as colunas e os dados continuam na tabela de destino com base no período de retenção definido para a tabela ou workspace. Se você não precisar da remoção na tabela de destino, exclua as colunas do esquema de tabela. Se você adicionar colunas com o mesmo nome, todos os dados que não forem mais antigos que o período de retenção aparecerão novamente.