Partilhar via


Exemplos de regra de coleta de dados (DCR) no Azure Monitor

Este artigo inclui regras de coleta de dados (DCRs) de exemplo para cenários comuns de coleta de dados no Azure Monitor. Você pode modificar essas definições de DCR conforme necessário para seu ambiente e criar o DCR usando as orientações em Criar ou editar uma regra de coleta de dados. Você também pode usar e combinar as estratégias básicas nesses exemplos para criar DCRs para outros cenários.

Esses exemplos exigem conhecimento da estrutura DCR, conforme descrito em Estrutura de uma regra de coleta de dados no Azure Monitor. Vários podem ser configurados usando o portal do Azure sem qualquer conhecimento detalhado da estrutura DCR. Use esses exemplos quando precisar trabalhar com a própria definição de DCR para executar configurações mais avançadas ou automatizar a criação de DCRs.

Cada um desses exemplos se concentra em uma fonte de dados específica, embora você possa combinar várias fontes de dados de diferentes tipos em um único DCR. Inclua um fluxo de dados para cada um para enviar os dados para o destino apropriado. Não há diferença funcional entre combinar várias fontes de dados em um único DCR ou criar DCRs separados para cada fonte de dados. A escolha depende dos seus requisitos para gerir e monitorizar a recolha de dados.

Nota

Esses exemplos mostrados neste artigo fornecem o JSON de origem necessário para criar o DCR. Após a criação, o DCR terá propriedades adicionais, conforme descrito em Estrutura de uma regra de coleta de dados no Azure Monitor.

DCRs para o agente do Azure Monitor

O agente do Azure Monitor é executado em máquinas virtuais, conjuntos de dimensionamento de máquinas virtuais e clusters Kubernetes. Ele dá suporte a insights de VM e informações de contêiner e dá suporte a vários cenários de coleta de dados para VMs descritos na coleta de dados do agente do Azure Monitor.

Os exemplos a seguir mostram DCRs para coletar diferentes tipos de dados usando o agente do Azure Monitor.

Eventos do Windows

DCRs para eventos do Windows usam a windowsEventLogs fonte de dados com o Microsoft-Event fluxo de entrada. O esquema desse fluxo é conhecido, portanto, não precisa ser definido na dataSources seção. Os eventos a recolher são especificados na xPathQueries propriedade. Consulte Coletar eventos do Windows com o Azure Monitor Agent para obter mais detalhes sobre como usar XPaths para filtrar os dados específicos que você deseja coletar. Para começar, você pode usar as diretrizes desse artigo para criar um DCR usando o portal do Azure e, em seguida, inspecionar o JSON usando a orientação na definição de DCR.

Você pode adicionar uma transformação à dataFlows propriedade para colunas calculadas e para filtrar dados adicionais, mas deve usar XPaths para filtrar dados no agente tanto quanto possível para eficiência e evitar possíveis cobranças de ingestão.

O DCR de exemplo a seguir executa as seguintes ações:

  • Coleta eventos do aplicativo e do sistema do Windows com nível de erro de Aviso, Erro ou Crítico.
  • Envia dados para a tabela de eventos no espaço de trabalho.
  • Usa uma transformação simples de um source que não faz nenhuma alteração nos dados recebidos.
{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "windowsEventLogs": [
          {
            "name": "eventLogsDataSource",
            "streams": [
              "Microsoft-Event"
            ],
            "xPathQueries": [
              "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
              "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
            ]
          }
        ]
    },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ]
      },
      "dataFlows": [
        {
          "streams": [
            "Microsoft-Event"
          ],
          "destinations": [
            "centralWorkspace"
          ],
            "transformKql": "source",
            "outputStream": "Microsoft-Event"
        }
      ]
    }
  }

Eventos do Syslog

DCRs para eventos Syslog usam a syslog fonte de dados com o fluxo de entrada Microsoft-Syslog . O esquema desse fluxo é conhecido, portanto, não precisa ser definido na dataSources seção. Os eventos a serem coletados são especificados nas facilityNames propriedades e logLevels . Consulte Coletar eventos do Syslog com o Azure Monitor Agent para obter mais detalhes. Para começar, você pode usar as diretrizes desse artigo para criar um DCR usando o portal do Azure e, em seguida, inspecionar o JSON usando a orientação na definição de DCR.

Você pode adicionar uma transformação à dataFlows propriedade para obter funcionalidade adicional e filtrar dados adicionais, mas deve usar facilityNames e logLevels filtrar o máximo possível para obter eficiência para evitar possíveis cobranças de ingestão.

O DCR de exemplo a seguir executa as seguintes ações:

  • Recolhe todos os eventos da cron instalação.
  • Coleciona Warning e aumenta eventos de syslog e daemon instalações.
    • Envia dados para a tabela Syslog no espaço de trabalho.
    • Usa uma transformação simples de um source que não faz nenhuma alteração nos dados recebidos.
{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "syslog": [
          {
            "name": "cronSyslog",
            "streams": [
              "Microsoft-Syslog"
            ],
            "facilityNames": [
              "cron"
            ],
            "logLevels": [
              "Debug",
              "Info",
              "Notice",
              "Warning",
              "Error",
              "Critical",
              "Alert",
              "Emergency"
            ]
          },
          {
            "name": "syslogBase",
            "streams": [
              "Microsoft-Syslog"
            ],
            "facilityNames": [
              "daemon",              
              "syslog"
            ],
            "logLevels": [
              "Warning",
              "Error",
              "Critical",
              "Alert",
              "Emergency"           
            ]
          }
        ]
      },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ]
      },
      "dataFlows": [
        {
          "streams": [
            "Microsoft-Syslog"
          ],
          "destinations": [
            "centralWorkspace"
          ],
            "transformKql": "source",
            "outputStream": "Microsoft-Syslog"
        }
      ]
    }
  }

Contadores de desempenho

DCRs para dados de desempenho usam a performanceCounters fonte de dados com a entrada Microsoft-InsightsMetrics e Microsoft-Perf fluxos. Microsoft-InsightsMetrics é usado para enviar dados para o Azure Monitor Metrics, enquanto Microsoft-Perf é usado para enviar dados para um espaço de trabalho do Log Analytics. Você pode incluir ambas as fontes de dados no DCR se estiver enviando dados de desempenho para ambos os destinos. Os esquemas desses fluxos são conhecidos, portanto, não precisam ser definidos na dataSources seção.

Os contadores de desempenho a serem coletados são especificados na counterSpecifiers propriedade. Consulte Coletar contadores de desempenho com o Azure Monitor Agent para obter mais detalhes. Para começar, você pode usar as diretrizes desse artigo para criar um DCR usando o portal do Azure e, em seguida, inspecionar o JSON usando a orientação na definição de DCR.

Você pode adicionar uma transformação à dataFlows propriedade para Microsoft-Perf obter funcionalidade adicional e filtrar dados adicionais, mas deve selecionar apenas os contadores necessários para counterSpecifiers eficiência para evitar possíveis cobranças de ingestão.

O DCR de exemplo a seguir executa as seguintes ações:

  • Coleta um conjunto de contadores de desempenho a cada 60 segundos e outro conjunto a cada 30 segundos.
  • Envia dados para o Azure Monitor Metrics e um espaço de trabalho do Log Analytics.
  • Usa uma transformação simples de um source que não faz nenhuma alteração nos dados recebidos.
{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "performanceCounters": [
          {
            "name": "perfCounterDataSource60",
            "streams": [
              "Microsoft-Perf",
              "Microsoft-InsightsMetrics"
            ],
            "samplingFrequencyInSeconds": 60,
            "counterSpecifiers": [
              "\\Processor(_Total)\\% Processor Time",
              "\\Memory\\Committed Bytes",
              "\\LogicalDisk(_Total)\\Free Megabytes",
              "\\PhysicalDisk(_Total)\\Avg. Disk Queue Length"
            ]
          },
          {
            "name": "perfCounterDataSource30",
            "streams": [
              "Microsoft-Perf"
            ],
            "samplingFrequencyInSeconds": 30,
            "counterSpecifiers": [
              "\\Process(_Total)\\Thread Count"
            ]
          }
        ]
      },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ],
        "azureMonitorMetrics": 
        {
            "name": "azureMonitorMetrics-default"
        }
      },
      "dataFlows": [
        {
            "streams": [
                "Microsoft-Perf"
            ],
            "destinations": [
                "centralWorkspace"
            ],
            "transformKql": "source",
            "outputStream": "Microsoft-Perf"
        },
        {
            "streams": [
                "Microsoft-Perf"
            ],
            "destinations": [
                "azureMonitorMetrics-default"
            ],
            "outputStream": "Microsoft-InsightsMetrics"
        }
      ]
    }
}

Logs de texto

DCRs para logs de texto têm uma fonte de logfiles dados que tem os detalhes para os arquivos de log que devem ser coletados pelo agente. Isso inclui o nome de um fluxo que deve ser definido com streamDeclarations as colunas dos dados de entrada. Atualmente, essa é uma lista definida, conforme descrito em Coletar logs de um arquivo de texto com o Azure Monitor Agent.

Adicione uma transformação à dataFlows propriedade para filtrar registros que você não deseja coletar e formatar os dados para corresponder ao esquema da tabela de destino. Um cenário comum é analisar um arquivo de log delimitado em várias colunas, conforme descrito em Arquivos de log delimitados.

O DCR de exemplo a seguir executa as seguintes ações:

  • Coleta entradas de todos os arquivos com uma extensão de na c:\logs pasta do computador do .txt agente.
  • Usa uma transformação para dividir os dados de entrada em colunas com base em um delimitador de vírgula (,). Essa transformação é específica para o formato do arquivo de log e deve ser ajustada para arquivos de log com outros formatos.
  • Envia os logs coletados para uma tabela personalizada chamada MyTable_CL. Esta tabela já deve existir e ter as colunas saídas pela transformação.
  • Coleta o log de texto e para conforme FilePath descrito em Fluxo de Computer entrada. Essas colunas também devem existir na tabela de destino.
{
    "location": "eastus",
    "properties": {
        "dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
        "streamDeclarations": {
            "Custom-MyLogFileFormat": {
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "FilePath",
                        "type": "string"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    }
                ]
            }
        },
        "dataSources": {
            "logFiles": [
                {
                    "streams": [
                        "Custom-MyLogFileFormat"
                    ],
                    "filePatterns": [
                        "C:\\logs\\*.txt"
                    ],
                    "format": "text",
                    "settings": {
                        "text": {
                            "recordStartTimestampFormat": "ISO 8601"
                        }
                    },
                    "name": "myLogFileFormat-Windows"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyLogFileFormat"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source | project d = split(RawData,\",\") | project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Json registra

DCRs para logs Json têm uma fonte de logfiles dados que tem os detalhes para os arquivos de log que devem ser coletados pelo agente. Isso inclui o nome de um fluxo que deve ser definido com streamDeclarations as colunas dos dados de entrada. Consulte Coletar logs de um arquivo JSON com o Azure Monitor Agent para obter mais detalhes.

Adicione uma transformação à dataFlows propriedade para filtrar registros que você não deseja coletar e formatar os dados para corresponder ao esquema da tabela de destino.

O DCR de exemplo a seguir executa as seguintes ações:

  • Coleta entradas de todos os arquivos com uma extensão de na c:\logs pasta do computador do .json agente. O arquivo deve ser formatado em json e ter as colunas listadas na declaração de fluxo.
  • Envia os logs coletados para uma tabela personalizada chamada MyTable_CL. Esta tabela já deve existir e ter as mesmas colunas que o fluxo de entrada. Se as colunas não corresponderem, você precisará modificar a transformação na transformKql propriedade para formatar os dados para a tabela de destino.
{
    "location": "eastus",
    "properties": {
        "dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
        "streamDeclarations": {
            "Custom-Json-stream": {
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "FilePath",
                        "type": "string"
                    },
                    {
                        "name": "Code",
                        "type": "int"
                    },
                    {
                        "name": "Module",
                        "type": "string"
                    },
                    {
                        "name": "Message",
                        "type": "string"
                    }
                ]
            }
        },
        "dataSources": {
            "logFiles": [
                {
                    "streams": [
                        "Custom-Json-stream"
                    ],
                    "filePatterns": [
                        "C:\\logs\\*.json"
                    ],
                    "format": "json",
                    "name": "MyJsonFile"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-Json-stream"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Enviar dados para Hubs de Eventos ou Armazenamento

Os DCRs que enviam dados para hubs de eventos ou contas de armazenamento usam as mesmas fontes de dados que outros DCRs que coletam dados com o agente do Azure Monitor (AMA), mas têm um ou mais dos seguintes destinos. Consulte Enviar dados para Hubs de Eventos e Armazenamento (Visualização) para obter mais detalhes.

  • eventHubsDirect
  • storageBlobsDirect
  • storageTablesDirect

Nota

DCRs que enviam dados para hubs de eventos ou contas de armazenamento devem ter "kind": "AgentDirectToStore"

O DCR de exemplo a seguir executa as seguintes ações:

  • Coleta contadores de desempenho e eventos do Windows de máquinas Windows com o agente do Azure Monitor (AMA).
  • Envia os dados para o hub de eventos, armazenamento de blob e armazenamento de tabelas.
{
    "location": "eastus",
    "kind": "AgentDirectToStore",
    "properties": {
        "dataSources": {
            "performanceCounters": [
                {
                "streams": [
                    "Microsoft-Perf"
                ],
                "samplingFrequencyInSeconds": 10,
                "counterSpecifiers": [
                    "\\Process(_Total)\\Working Set - Private",
                    "\\Memory\\% Committed Bytes In Use",
                    "\\LogicalDisk(_Total)\\% Free Space",
                    "\\Network Interface(*)\\Bytes Total/sec"
                ],
                "name": "perfCounterDataSource"
                }
            ],
            "windowsEventLogs": [
                {
                "streams": [
                    "Microsoft-Event"
                ],
                "xPathQueries": [
                    "Application!*[System[(Level=2)]]",
                    "System!*[System[(Level=2)]]"
                ],
                "name": "eventLogsDataSource"
                }
            ]
        },
        "destinations": {
            "eventHubsDirect": [
                {
                "eventHubResourceId": "/subscriptions/71b36fb6-4fe4-4664-9a7b-245dc62f2930/resourceGroups/my-resource-group/providers/Microsoft.EventHub/namespaces/my-eventhub-namespace/eventhubs/my-eventhub",
                "name": "myEh"
                }
            ],
            "storageBlobsDirect": [
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "myperfblob",
                "name": "PerfBlob"
                },
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "myeventblob",
                "name": "EventBlob"
                }
            ],
            "storageTablesDirect": [
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "myperftable",
                "name": "PerfTable"
                },
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "mymyeventtable",
                "name": "EventTable"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                "Microsoft-Perf"
                ],
                "destinations": [
                "myEh",
                "PerfBlob",
                "PerfTable"
                ]
            },
            {
                "streams": [
                "Microsoft-Event"
                ],
                "destinations": [
                "myEh",
                "EventBlob",
                "EventTable"
                ]
            },
        ]
    }
}

API de ingestão de logs

DCRs para a API de ingestão de logs devem definir o esquema do fluxo de entrada na streamDeclarations seção da definição de DCR. Os dados de entrada devem ser formatados em JSON com um esquema correspondente às colunas nesta definição. Nenhuma transformação será necessária se esse esquema corresponder ao esquema da tabela de destino. Se os esquemas não corresponderem, você deverá adicionar uma transformação à dataFlows propriedade para formatar os dados. Consulte API de ingestão de logs no Azure Monitor para obter mais detalhes.

O exemplo de DCR abaixo tem os seguintes detalhes:

  • Envia dados para uma tabela chamada MyTable_CL em um espaço de trabalho chamado my-workspace. Antes de instalar este DCR, você precisaria criar a tabela com as seguintes colunas:
    • TimeGenerated
    • Computador
    • Contexto adicional
    • ExtendedColumn (definido na transformação)
  • Aplica uma transformação aos dados de entrada para formatar os dados para a tabela de destino.

Importante

Este exemplo não inclui a propriedade, dataCollectionEndpointId pois ela é criada automaticamente quando o DCR é criado. Você precisa do valor dessa propriedade, pois é a URL para a qual o aplicativo enviará dados. O DCR deve ter kind:Direct para que essa propriedade seja criada. Consulte Propriedades para obter mais detalhes.

{
    "location": "eastus",
    "kind": "Direct",
    "properties": {
        "streamDeclarations": {
            "Custom-MyTable": {
                "columns": [
                    {
                        "name": "Time",
                        "type": "datetime"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "string"
                    }
                ]
            }
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/cefingestion/providers/microsoft.operationalinsights/workspaces/my-workspace",
                    "name": "LogAnalyticsDest"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyTable"
                ],
                "destinations": [
                    "LogAnalyticsDest"
                ],
                "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, ExtendedColumn=tostring(jsonContext.CounterName)",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

DCR de transformação do espaço de trabalho

Os DCRs de transformação do espaço de trabalho têm uma seção vazia datasources , uma vez que as transformações são aplicadas a todos os dados enviados para tabelas suportadas no espaço de trabalho. Deve incluir uma única entrada para workspaceResourceId e uma entrada para dataFlows cada quadro com uma transformação. Também deve ter "kind": "WorkspaceTransforms".

O exemplo de DCR abaixo tem os seguintes detalhes:

  • Transformação para a LAQueryLogs tabela que filtra consultas da própria tabela e adiciona uma coluna com o nome do espaço de trabalho.
  • Transformação para a tabela que filtra Event eventos de Informação e remove a ParameterXml coluna. Isso só se aplicará aos dados provenientes do agente do Log Analytics preterido e não do agente do Azure Monitor, conforme explicado em DCR de transformação do espaço de trabalho.
{
    "kind": "WorkspaceTransforms",
    "location": "eastus",
    "properties": {
        "dataSources": {},
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "clv2ws1"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-Table-LAQueryLogs"
                ],
                "destinations": [
                    "clv2ws1"
                ],
                "transformKql": "source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context"
            },
            {
                "streams": [
                    "Microsoft-Table-Event"
                ],
                "destinations": [
                    "clv2ws1"
                ],
                "transformKql": "source | where EventLevelName in ('Error', 'Critical', 'Warning') | project-away ParameterXml"
            }
        ]
    }
}

Enviar dados para várias tabelas

Há vários motivos pelos quais você pode querer enviar dados de uma única fonte de dados para várias tabelas no mesmo espaço de trabalho do Log Analytics, incluindo o seguinte:

  • Economize custos de ingestão enviando registros usados para solução de problemas ocasionais para uma tabela de logs básica.
  • Envie registros ou colunas com dados confidenciais para uma tabela com diferentes permissões ou configurações de retenção.

Para enviar dados de uma única fonte de dados para várias tabelas, crie vários fluxos de dados no DCR com uma consulta de transformação e uma tabela de saída exclusivas para cada uma, conforme mostrado no diagrama a seguir.

Importante

Atualmente, as tabelas no DCR devem estar no mesmo espaço de trabalho do Log Analytics. Para enviar para vários espaços de trabalho a partir de uma única fonte de dados, use vários DCRs e configure seu aplicativo para enviar os dados para cada um.

Diagrama que mostra a transformação enviando dados para várias tabelas.

O exemplo a seguir filtra os registros enviados para a tabela de eventos pelo agente do Azure Monitor. Apenas os eventos de aviso e erro são enviados para a tabela de eventos. Outros eventos são enviados para uma cópia da tabela de eventos chamada Event_CL que está configurada para logs básicos.

Nota

Este exemplo requer uma cópia da tabela Event criada no mesmo espaço de trabalho chamado Event_CL.

{
    "location": "eastus",
    "properties": {
        "dataSources": {
            "windowsEventLogs": [
              {
                "name": "eventLogsDataSource",
                "streams": [
                  "Microsoft-Event"
                ],
                "xPathQueries": [
                  "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
                  "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
                ]
              }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-Event"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source | where EventLevelName in ('Error', 'Warning')",
                "outputStream": "Microsoft-Event"
            },
            {
                "streams": [
                    "Microsoft-Event"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source | where EventLevelName !in ('Error', 'Warning')",
                "outputStream": "Custom-Event_CL"
            }
        ]
    }
}

Próximos passos