Tutorial: Adicionar uma transformação de espaço de trabalho usando o portal do Azure

Este tutorial orienta você na configuração de uma transformação de exemplo em uma regra de coleta de dados (DCR) de espaço de trabalho usando o portal do Azure. As transformações no Azure Monitor filtram ou modificam os dados de entrada antes de serem enviados para seu destino. As transformações de espaço de trabalho oferecem transformações no momento da ingestão para fluxos de trabalho que ainda não usam o pipeline de ingestão de dados do Azure Monitor.

As transformações de espaço de trabalho são armazenadas juntas em uma única DCR para o espaço de trabalho, chamada de DCR de transformação de espaço de trabalho. Cada transformação é associada a uma tabela específica e a transformação se aplica a todos os dados enviados a essa tabela de qualquer fluxo de trabalho que não use um DCR.

Observação

Este tutorial usa o portal do Azure para configurar uma transformação de workspace. Para obter o mesmo tutorial, mas usando modelos do Azure Resource Manager e a API REST, confira Tutorial: adicionar transformação na regra de coleta de dados do workspace ao Azure Monitor usando modelos do Resource Manager.

Neste tutorial, você aprenderá como:

Pré-requisitos

Para concluir este tutorial, você precisará:

Visão geral da transformação do espaço de trabalho

Neste tutorial, você reduz o requisito de armazenamento para a LAQueryLogs tabela filtrando determinados registros. Você também remove o conteúdo de uma coluna ao analisar os dados da coluna para armazenar um pedaço de dados em uma coluna personalizada. A tabela LAQueryLogs é criada quando você habilita a auditoria de consulta de log em um espaço de trabalho. Use esse mesmo processo básico para criar uma transformação para qualquer tabela com suporte em um workspace Log Analytics.

Este tutorial usa o portal do Azure, que fornece um assistente para orientá-lo na criação de uma transformação no momento da ingestão. Depois de concluir as etapas, o assistente:

  • Atualiza o esquema de tabela com as outras colunas da consulta.
  • Cria um DCR de transformação do espaço de trabalho (cujo nome é fornecido por você) e o vincula ao espaço de trabalho, caso ainda não haja um vinculado.
  • Cria uma transformação de tempo de ingestão e a adiciona à DCR.

Habilitar logs de auditoria de consulta

Habilite a auditoria de consultas no seu espaço de trabalho para criar a tabela LAQueryLogs usada neste tutorial. Esta etapa não é necessária para todas as transformações no momento da ingestão. Ele só gera os dados de exemplo usados aqui.

  1. No menu Workspaces do Log Analytics no portal do Azure, selecione Configurações de diagnóstico>Adicionar configuração de diagnóstico.

    Captura de tela que mostra as configurações de diagnóstico.

  2. Insira um nome para a configuração de diagnóstico. Selecione o workspace para que os dados de auditoria sejam armazenados no mesmo workspace. Selecione a categoria Auditoria e clique em Salvar para salvar a configuração de diagnóstico e fechar a página Configuração de diagnóstico.

    Captura de tela que mostra a nova configuração de diagnóstico.

  3. Selecione Logs e, em seguida, execute algumas consultas para preencher LAQueryLogs com alguns dados. Essas consultas não precisam retornar dados a serem adicionados ao log de auditoria.

    Captura de tela que mostra consultas de log de exemplo.

Adicionar uma transformação à tabela

Depois de criar a tabela, crie a transformação para ela.

  1. No menu Espaços de Trabalho do Log Analytics no Azure Portal, selecione Tabelas. Localize a tabela LAQueryLogs e selecione Criar transformação.

    Captura de tela que mostra a criação de uma transformação.

  2. Como essa é a primeira transformação no espaço de trabalho, você precisa criar uma DCR de transformação do espaço de trabalho. Se você criar transformações para outras tabelas no mesmo workspace, armazene-as nesse mesmo DCR. Clique em Criar uma regra de coleta de dados. A Assinatura e o Grupo de recursos já estão preenchidos no espaço de trabalho. Insira um nome para a DCR e selecione Concluído.

    Captura de tela que mostra a criação de uma regra de coleta de dados.

  3. Clique em Avançar para ver os dados de exemplo da tabela. Conforme você define a transformação, o resultado se aplica aos dados de exemplo. Esse comportamento permite avaliar os resultados antes de aplicar a transformação aos dados reais. Clique em Editor de transformação para definir a transformação.

    Captura de tela que mostra os dados de exemplo da tabela de logs.

  4. No editor de transformação, examine a transformação aplicada aos dados antes de sua ingestão na tabela. Os dados de entrada são representados por uma tabela virtual denominada source, que tem o mesmo conjunto de colunas que a própria tabela de destino. Inicialmente, a transformação contém uma consulta simples que retorna a tabela source sem alterações.

  5. Modifique a consulta de acordo com o seguinte exemplo:

    source
    | where QueryText !contains 'LAQueryLogs'
    | extend Context = parse_json(RequestContext)
    | extend Workspace_CF = tostring(Context['workspaces'][0])
    | project-away RequestContext, Context
    

    A modificação faz as seguintes alterações:

    • Ele descarta linhas relacionadas à consulta da LAQueryLogs própria tabela para economizar espaço, pois essas entradas de log não são úteis.
    • Adiciona uma coluna para o nome do espaço de trabalho consultado.
    • Ele remove dados da RequestContext coluna para economizar espaço.

    Observação

    Usando o portal Azure, a saída da transformação inicia alterações no esquema de tabela, se necessário. O portal adiciona colunas para corresponder à saída da transformação se elas ainda não existirem. Verifique se a saída não contém colunas que você não deseja adicionar à tabela. Se a saída não incluir colunas que já estão na tabela, essas colunas não serão removidas, mas os dados não serão adicionados.

    Todas as colunas personalizadas adicionadas a uma tabela interna devem terminar em _CF. As colunas adicionadas a uma tabela personalizada não precisam desse sufixo. Uma tabela personalizada tem um nome que termina em _CL.

  6. Copie a consulta no editor de transformação e clique em Executar para ver os resultados dos dados de exemplo. Confirme se a nova Workspace_CF coluna está na consulta.

    Captura de tela que mostra o editor de transformação.

  7. Clique em Aplicar para salvar a transformação e depois em Avançar para examinar a configuração. Selecione Criar para atualizar a DCR com a nova transformação.

    Captura de tela que mostra o salvamento da transformação.

Testar a transformação

Permita cerca de 30 minutos para que a transformação entre em vigor e teste-a consultando a tabela. Somente os dados enviados à tabela após a transformação ser aplicada refletem a alteração.

  1. Selecione Logs e execute algumas consultas de exemplo, incluindo pelo menos uma consulta que faz referência LAQueryLogs, para gerar novos registros de auditoria.

  2. Após cerca de 30 minutos, execute a seguinte consulta para confirmar se a transformação filtrava os registros que fazem referência LAQueryLogs:

    LAQueryLogs
    | where TimeGenerated > ago(30m)
    | where QueryText contains 'LAQueryLogs'
    

    A consulta não retorna linhas, pois a transformação descarta todos os registros de entrada cujo QueryText contém LAQueryLogs.

  3. Execute a seguinte consulta para confirmar se a nova Workspace_CF coluna está presente e preenchida:

    LAQueryLogs
    | where TimeGenerated > ago(30m)
    | project TimeGenerated, Workspace_CF, RequestContext
    

    Os resultados incluem a Workspace_CF coluna com o nome do workspace consultado e a RequestContext coluna não contém mais dados.

Solução de problemas

Esta seção descreve as diferentes condições de erro que você poderá receber e como corrigi-las.

O IntelliSense no Log Analytics não reconhece novas colunas na tabela

O cache que direciona o IntelliSense pode levar até 24 horas para ser atualizado.

A transformação em uma coluna dinâmica não está funcionando

Um problema conhecido afeta as colunas dinâmicas no momento. Uma solução alternativa temporária é analisar explicitamente os dados de colunas dinâmicas usando parse_json(), antes de executar qualquer operação neles.