Delen via


DCR-voorbeelden (Data Collection Rule) in Azure Monitor

Dit artikel bevat voorbeeldregels voor gegevensverzameling (DCR's) voor algemene scenario's voor het verzamelen van gegevens in Azure Monitor. U kunt deze DCR-definities wijzigen zoals vereist voor uw omgeving en de DCR maken met behulp van de richtlijnen voor het maken of bewerken van een regel voor gegevensverzameling. U kunt ook de basisstrategieën in deze voorbeelden gebruiken en combineren om DCR's te maken voor andere scenario's.

Voor deze voorbeelden is kennis van de DCR-structuur vereist, zoals beschreven in Structuur van een regel voor gegevensverzameling in Azure Monitor. Er kunnen verschillende worden geconfigureerd met behulp van Azure Portal zonder gedetailleerde kennis van de DCR-structuur. Gebruik deze voorbeelden wanneer u met de DCR-definitie zelf moet werken om geavanceerdere configuraties uit te voeren of om het maken van DCR's te automatiseren.

Elk van deze voorbeelden is gericht op een bepaalde gegevensbron, hoewel u meerdere gegevensbronnen van verschillende typen in één DCR kunt combineren. Neem een gegevensstroom op voor elk om de gegevens naar de juiste bestemming te verzenden. Er is geen functioneel verschil tussen het combineren van meerdere gegevensbronnen in één DCR of het maken van afzonderlijke DCR's voor elke gegevensbron. De keuze is afhankelijk van uw vereisten voor het beheren en bewaken van de gegevensverzameling.

Notitie

Deze voorbeelden in dit artikel bevatten de bron-JSON die is vereist om de DCR te maken. Na het maken heeft de DCR aanvullende eigenschappen, zoals beschreven in Structuur van een regel voor gegevensverzameling in Azure Monitor.

DCR's voor Azure Monitor-agent

De Azure Monitor-agent wordt uitgevoerd op virtuele machines, virtuele-machineschaalsets en Kubernetes-clusters. Het biedt ondersteuning voor VM-inzichten en containerinzichten en ondersteunt verschillende scenario's voor het verzamelen van gegevens van gegevens van de Azure Monitor-agent.

In de volgende voorbeelden ziet u DCR's voor het verzamelen van verschillende soorten gegevens met behulp van de Azure Monitor-agent.

Windows-gebeurtenissen

DCR's voor Windows-gebeurtenissen maken gebruik van de windowsEventLogs gegevensbron met de Microsoft-Event binnenkomende stroom. Het schema van deze stream is bekend en hoeft dus niet in de dataSources sectie te worden gedefinieerd. De gebeurtenissen die moeten worden verzameld, worden opgegeven in de xPathQueries eigenschap. Zie Windows-gebeurtenissen verzamelen met Azure Monitor Agent voor meer informatie over het gebruik van XPaths om de specifieke gegevens te filteren die u wilt verzamelen. Om aan de slag te gaan, kunt u de richtlijnen in dat artikel gebruiken om een DCR te maken met behulp van Azure Portal en vervolgens de JSON inspecteren met behulp van de richtlijnen bij DCR-definitie.

U kunt een transformatie toevoegen aan de dataFlows eigenschap voor berekende kolommen en om gegevens verder te filteren, maar u moet XPaths gebruiken om gegevens zoveel mogelijk te filteren op de agent voor efficiëntie en om potentiële opnamekosten te voorkomen.

De volgende voorbeeld-DCR voert de volgende acties uit:

  • Verzamelt Windows-toepassings- en systeemevenementen met foutniveau Waarschuwing, Fout of Kritiek.
  • Hiermee worden gegevens verzonden naar de gebeurtenistabel in de werkruimte.
  • Maakt gebruik van een eenvoudige transformatie van een source die geen wijzigingen aanbrengt in de binnenkomende gegevens.
{
    "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"
        }
      ]
    }
  }

Syslog-gebeurtenissen

DCR's voor Syslog-gebeurtenissen maken gebruik van de syslog gegevensbron met de binnenkomende Microsoft-Syslog stroom. Het schema van deze stream is bekend en hoeft dus niet in de dataSources sectie te worden gedefinieerd. De te verzamelen gebeurtenissen worden opgegeven in de facilityNames en logLevels eigenschappen. Zie Syslog-gebeurtenissen verzamelen met Azure Monitor Agent voor meer informatie. Om aan de slag te gaan, kunt u de richtlijnen in dat artikel gebruiken om een DCR te maken met behulp van Azure Portal en vervolgens de JSON inspecteren met behulp van de richtlijnen bij DCR-definitie.

U kunt een transformatie toevoegen aan de dataFlows eigenschap voor extra functionaliteit en om gegevens verder te filteren, maar u moet deze zo veel mogelijk gebruiken facilityNames en logLevels filteren voor efficiëntie om potentiële opnamekosten te voorkomen.

De volgende voorbeeld-DCR voert de volgende acties uit:

  • Verzamelt alle gebeurtenissen van cron de faciliteit.
  • Verzamelt Warning en hogere evenementen van syslog en daemon faciliteiten.
    • Hiermee worden gegevens verzonden naar de Syslog-tabel in de werkruimte.
    • Maakt gebruik van een eenvoudige transformatie van een source die geen wijzigingen aanbrengt in de binnenkomende gegevens.
{
    "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"
        }
      ]
    }
  }

Prestatiemeteritems

DCR's voor prestatiegegevens maken gebruik van de performanceCounters gegevensbron met de binnenkomende Microsoft-InsightsMetrics gegevens en Microsoft-Perf streams. Microsoft-InsightsMetrics wordt gebruikt voor het verzenden van gegevens naar metrische gegevens van Azure Monitor, terwijl Microsoft-Perf deze wordt gebruikt om gegevens naar een Log Analytics-werkruimte te verzenden. U kunt beide gegevensbronnen opnemen in de DCR als u prestatiegegevens naar beide bestemmingen verzendt. De schema's van deze streams zijn bekend, zodat ze niet hoeven te worden gedefinieerd in de dataSources sectie.

De prestatiemeteritems die moeten worden verzameld, worden opgegeven in de counterSpecifiers eigenschap. Zie Prestatiemeteritems verzamelen met Azure Monitor Agent voor meer informatie. Om aan de slag te gaan, kunt u de richtlijnen in dat artikel gebruiken om een DCR te maken met behulp van Azure Portal en vervolgens de JSON inspecteren met behulp van de richtlijnen bij DCR-definitie.

U kunt een transformatie toevoegen aan de dataFlows eigenschap voor Microsoft-Perf extra functionaliteit en om gegevens verder te filteren, maar u moet alleen de tellers selecteren die u nodig hebt counterSpecifiers voor efficiëntie om potentiële opnamekosten te voorkomen.

De volgende voorbeeld-DCR voert de volgende acties uit:

  • Verzamelt elke 60 seconden een set prestatiemeteritems en elke 30 seconden een andere set.
  • Hiermee worden gegevens verzonden naar metrische gegevens van Azure Monitor en een Log Analytics-werkruimte.
  • Maakt gebruik van een eenvoudige transformatie van een source die geen wijzigingen aanbrengt in de binnenkomende gegevens.
{
    "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"
        }
      ]
    }
}

Tekstlogboeken

DCR's voor tekstlogboeken hebben een logfiles gegevensbron met de details voor de logboekbestanden die moeten worden verzameld door de agent. Dit omvat de naam van een stroom die moet worden gedefinieerd streamDeclarations met de kolommen van de binnenkomende gegevens. Dit is momenteel een ingestelde lijst zoals beschreven in Logboeken verzamelen uit een tekstbestand met Azure Monitor Agent.

Voeg een transformatie toe aan de dataFlows eigenschap om records uit te filteren die u niet wilt verzamelen en op te maken zodat deze overeenkomen met het schema van de doeltabel. Een veelvoorkomend scenario is het parseren van een tekstbestand met scheidingstekens in meerdere kolommen, zoals beschreven in door scheidingstekens gescheiden logboekbestanden.

De volgende voorbeeld-DCR voert de volgende acties uit:

  • Verzamelt vermeldingen uit alle bestanden met een extensie van .txt in de c:\logs map van de agentcomputer.
  • Maakt gebruik van een transformatie om de binnenkomende gegevens op te splitsen in kolommen op basis van een komma (,) scheidingsteken. Deze transformatie is specifiek voor de indeling van het logboekbestand en moet worden aangepast voor logboekbestanden met andere indelingen.
  • Hiermee worden de verzamelde logboeken verzonden naar een aangepaste tabel met de naam MyTable_CL. Deze tabel moet al bestaan en de kolommen door de transformatie laten uitvoeren.
  • Verzamelt het FilePath en Computer voor tekstlogboek zoals beschreven in de binnenkomende stroom. Deze kolommen moeten ook aanwezig zijn in de doeltabel.
{
    "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-logboeken

DCR's voor Json-logboeken hebben een logfiles gegevensbron met de details voor de logboekbestanden die door de agent moeten worden verzameld. Dit omvat de naam van een stroom die moet worden gedefinieerd streamDeclarations met de kolommen van de binnenkomende gegevens. Zie Logboeken verzamelen uit een JSON-bestand met De Azure Monitor-agent voor meer informatie.

Voeg een transformatie toe aan de dataFlows eigenschap om records uit te filteren die u niet wilt verzamelen en op te maken zodat deze overeenkomen met het schema van de doeltabel.

De volgende voorbeeld-DCR voert de volgende acties uit:

  • Verzamelt vermeldingen uit alle bestanden met een extensie van .json in de c:\logs map van de agentcomputer. Het bestand moet zijn opgemaakt in json en de kolommen bevatten die worden vermeld in de stroomdeclaratie.
  • Hiermee worden de verzamelde logboeken verzonden naar een aangepaste tabel met de naam MyTable_CL. Deze tabel moet al bestaan en dezelfde kolommen hebben als de binnenkomende stroom. Als de kolommen niet overeenkomen, moet u de transformatie in transformKql de eigenschap wijzigen om de gegevens voor de doeltabel op te maken.
{
    "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"
            }
        ]
    }
}

Gegevens verzenden naar Event Hubs of Storage

DCR's die gegevens verzenden naar Event Hubs of opslagaccounts, gebruiken dezelfde gegevensbronnen als andere DCR's die gegevens verzamelen met de Azure Monitor-agent (AMA), maar hebben een of meer van de volgende bestemmingen. Zie Gegevens verzenden naar Event Hubs en Storage (preview) voor meer informatie.

  • eventHubsDirect
  • storageBlobsDirect
  • storageTablesDirect

Notitie

DCR's die gegevens verzenden naar Event Hubs of opslagaccounts, moeten beschikken over "kind": "AgentDirectToStore"

De volgende voorbeeld-DCR voert de volgende acties uit:

  • Verzamelt prestatiemeteritems en Windows-gebeurtenissen van Windows-machines met Azure Monitor-agent (AMA).
  • Hiermee worden de gegevens verzonden naar Event Hub, Blob Storage en Table Storage.
{
    "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"
                ]
            },
        ]
    }
}

Logboekopname-API

DCR's voor de logboekopname-API moeten het schema van de binnenkomende stroom definiëren in de streamDeclarations sectie van de DCR-definitie. De binnenkomende gegevens moeten worden opgemaakt in JSON met een schema dat overeenkomt met de kolommen in deze definitie. Er is geen transformatie vereist als dit schema overeenkomt met het schema van de doeltabel. Als de schema's niet overeenkomen, moet u een transformatie aan de dataFlows eigenschap toevoegen om de gegevens op te maken. Zie logboekopname-API in Azure Monitor voor meer informatie.

De onderstaande voorbeeld-DCR bevat de volgende details:

  • Hiermee worden gegevens verzonden naar een tabel die wordt aangeroepen MyTable_CL in een werkruimte met de naam my-workspace. Voordat u deze DCR installeert, moet u de tabel maken met de volgende kolommen:
    • TimeGenerated
    • Computer
    • AdditionalContext
    • ExtendedColumn (gedefinieerd in de transformatie)
  • Hiermee past u een transformatie toe op de binnenkomende gegevens om de gegevens voor de doeltabel op te maken.

Belangrijk

Dit voorbeeld bevat dataCollectionEndpointId de eigenschap niet, omdat deze automatisch wordt gemaakt wanneer de DCR wordt gemaakt. U hebt de waarde van deze eigenschap nodig omdat dit de URL is waarnaar de toepassing gegevens verzendt. De DCR moet hebben kind:Direct dat deze eigenschap moet worden gemaakt. Zie Eigenschappen voor meer informatie.

{
    "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 voor werkruimtetransformatie

DcR's voor werkruimtetransformatie hebben een lege datasources sectie omdat de transformaties worden toegepast op alle gegevens die worden verzonden naar ondersteunde tabellen in de werkruimte. Het moet één en slechts vermelding voor workspaceResourceId en een vermelding dataFlows bevatten voor elke tabel met een transformatie. Het moet ook ."kind": "WorkspaceTransforms"

De onderstaande voorbeeld-DCR bevat de volgende details:

  • Transformatie voor de LAQueryLogs tabel die query's van de tabel zelf filtert en een kolom met de naam van de werkruimte toevoegt.
  • Transformatie voor de Event tabel die informatie-gebeurtenissen filtert en de ParameterXml kolom verwijdert. Dit is alleen van toepassing op gegevens die afkomstig zijn van de afgeschafte Log Analytics-agent en niet op de Azure Monitor-agent, zoals uitgelegd in de DCR voor werkruimtetransformatie.
{
    "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"
            }
        ]
    }
}

Gegevens naar meerdere tabellen verzenden

Er zijn meerdere redenen waarom u mogelijk gegevens vanuit één gegevensbron naar meerdere tabellen in dezelfde Log Analytics-werkruimte wilt verzenden, waaronder de volgende:

  • Bespaar opnamekosten door records te verzenden die worden gebruikt voor incidentele probleemoplossing naar een tabel met basislogboeken.
  • Records of kolommen met gevoelige gegevens verzenden naar een tabel met verschillende machtigingen of bewaarinstellingen.

Als u gegevens van één gegevensbron naar meerdere tabellen wilt verzenden, maakt u meerdere gegevensstromen in de DCR met een unieke transformatiequery en uitvoertabel voor elke gegevensbron, zoals wordt weergegeven in het volgende diagram.

Belangrijk

Momenteel moeten de tabellen in de DCR zich in dezelfde Log Analytics-werkruimte bevinden. Als u vanuit één gegevensbron naar meerdere werkruimten wilt verzenden, gebruikt u meerdere DCR's en configureert u uw toepassing om de gegevens naar elke werkruimte te verzenden.

Diagram met transformatie waarmee gegevens naar meerdere tabellen worden verzonden.

In het volgende voorbeeld worden records gefilterd die door de Azure Monitor-agent naar de gebeurtenistabel zijn verzonden. Alleen waarschuwings- en foutevenementen worden verzonden naar de gebeurtenistabel. Andere gebeurtenissen worden verzonden naar een kopie van de gebeurtenistabel met de naam Event_CL die is geconfigureerd voor basislogboeken.

Notitie

Voor dit voorbeeld is een kopie vereist van de gebeurtenistabel die is gemaakt in dezelfde werkruimte met de naam 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"
            }
        ]
    }
}

Volgende stappen