Udostępnij za pośrednictwem


Przykłady reguł zbierania danych (DCR) w usłudze Azure Monitor

Ten artykuł zawiera przykładowe reguły zbierania danych (DCR) dla typowych scenariuszy zbierania danych w usłudze Azure Monitor. Te definicje dcR można zmodyfikować zgodnie z wymaganiami środowiska i utworzyć kontroler domeny, korzystając ze wskazówek w artykule Tworzenie lub edytowanie reguły zbierania danych. Możesz również użyć i połączyć podstawowe strategie w tych przykładach, aby utworzyć kontrolery domeny dla innych scenariuszy.

Te przykłady wymagają znajomości struktury DCR zgodnie z opisem w temacie Struktura reguły zbierania danych w usłudze Azure Monitor. Kilka można skonfigurować przy użyciu witryny Azure Portal bez żadnej szczegółowej wiedzy na temat struktury DCR. Skorzystaj z tych przykładów, gdy musisz pracować z samą definicją kontrolera domeny w celu wykonania bardziej zaawansowanych konfiguracji lub zautomatyzować tworzenie kontrolerów domeny.

Każdy z tych przykładów koncentruje się na konkretnym źródle danych, chociaż można połączyć wiele źródeł danych różnych typów w jednym kontrolerze domeny. Dołącz przepływ danych dla każdego z nich, aby wysłać dane do odpowiedniego miejsca docelowego. Nie ma różnicy funkcjonalnej między łączeniem wielu źródeł danych w jednym kontrolerze domeny lub tworzeniem oddzielnych kontrolerów domeny dla każdego źródła danych. Wybór zależy od wymagań dotyczących zarządzania zbieraniem danych i monitorowania ich.

Uwaga

Te przykłady pokazują w tym artykule, że źródłowy kod JSON jest wymagany do utworzenia kontrolera domeny. Po utworzeniu kontroler domeny będzie miał dodatkowe właściwości zgodnie z opisem w temacie Struktura reguły zbierania danych w usłudze Azure Monitor.

Kontrolery domeny dla agenta usługi Azure Monitor

Agent usługi Azure Monitor działa na maszynach wirtualnych, zestawach skalowania maszyn wirtualnych i klastrach Kubernetes. Obsługuje szczegółowe informacje o maszynach wirtualnych i szczegółowe informacje o kontenerach oraz obsługuje różne scenariusze zbierania danych dla maszyn wirtualnych opisanych w temacie Zbieranie danych agenta usługi Azure Monitor.

W poniższych przykładach pokazano kontrolery domeny do zbierania różnych rodzajów danych przy użyciu agenta usługi Azure Monitor.

Zdarzenia systemu Windows

Kontrolery domeny dla zdarzeń systemu Windows używają windowsEventLogs źródła danych ze strumieniem przychodzącym Microsoft-Event . Schemat tego strumienia jest znany, więc nie trzeba go definiować w dataSources sekcji. Zdarzenia do zbierania xPathQueries są określone we właściwości . Zobacz Zbieranie zdarzeń systemu Windows za pomocą agenta usługi Azure Monitor, aby uzyskać więcej informacji na temat używania programu XPaths do filtrowania określonych danych, które chcesz zebrać. Aby rozpocząć, możesz użyć wskazówek w tym artykule, aby utworzyć kontroler domeny przy użyciu witryny Azure Portal, a następnie sprawdzić kod JSON, korzystając ze wskazówek w definicji kontrolera domeny.

Można dodać przekształcenie do dataFlows właściwości kolumn obliczeniowych i dalsze filtrowanie danych, ale należy użyć funkcji XPaths do filtrowania danych w agencie tak bardzo, jak to możliwe w celu zwiększenia wydajności i uniknięcia potencjalnych opłat za pozyskiwanie danych.

Następujące przykładowe kontrolery domeny wykonują następujące akcje:

  • Zbiera zdarzenia aplikacji i systemu Windows z poziomem błędu Ostrzeżenie, Błąd lub Krytyczne.
  • Wysyła dane do tabeli zdarzeń w obszarze roboczym.
  • Używa prostego przekształcenia elementu source , które nie powoduje zmiany danych przychodzących.
{
    "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"
        }
      ]
    }
  }

Zdarzenia dziennika systemu

Kontrolery domeny dla zdarzeń dziennika systemowego syslog używają źródła danych ze strumieniem przychodzącym Microsoft-Syslog . Schemat tego strumienia jest znany, więc nie trzeba go definiować w dataSources sekcji. Zdarzenia do zebrania są określone we właściwościach facilityNames i logLevels . Aby uzyskać więcej informacji, zobacz Zbieranie zdarzeń dziennika systemowego za pomocą agenta usługi Azure Monitor. Aby rozpocząć, możesz użyć wskazówek w tym artykule, aby utworzyć kontroler domeny przy użyciu witryny Azure Portal, a następnie sprawdzić kod JSON, korzystając ze wskazówek w definicji kontrolera domeny.

Możesz dodać transformację do właściwości, aby dataFlows uzyskać dodatkowe funkcje i dodatkowo filtrować dane, ale należy użyć facilityNames funkcji i logLevels do filtrowania możliwie największej wydajności, aby uniknąć potencjalnych opłat za pozyskiwanie danych.

Następujące przykładowe kontrolery domeny wykonują następujące akcje:

  • Zbiera wszystkie zdarzenia z cron obiektu.
  • Warning Zbiera i wyższe zdarzenia z syslog obiektów idaemon.
    • Wysyła dane do tabeli Syslog w obszarze roboczym.
    • Używa prostego przekształcenia elementu source , które nie powoduje zmiany danych przychodzących.
{
    "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"
        }
      ]
    }
  }

Liczniki wydajności

Kontrolery domeny dla danych wydajności używają performanceCounters źródła danych z przychodzącymi Microsoft-InsightsMetrics i Microsoft-Perf strumieniami. Microsoft-InsightsMetrics służy do wysyłania danych do metryk usługi Azure Monitor, natomiast Microsoft-Perf służy do wysyłania danych do obszaru roboczego usługi Log Analytics. W przypadku wysyłania danych do obu miejsc docelowych można uwzględnić oba źródła danych w kontrolerze domeny. Schematy tych strumieni są znane, więc nie trzeba ich definiować w dataSources sekcji.

Liczniki wydajności do zbierania counterSpecifiers są określone we właściwości . Aby uzyskać więcej informacji, zobacz Zbieranie liczników wydajności za pomocą agenta usługi Azure Monitor. Aby rozpocząć, możesz użyć wskazówek w tym artykule, aby utworzyć kontroler domeny przy użyciu witryny Azure Portal, a następnie sprawdzić kod JSON, korzystając ze wskazówek w definicji kontrolera domeny.

Możesz dodać przekształcenie do dataFlows właściwości , Microsoft-Perf aby uzyskać dodatkowe funkcje i dodatkowo filtrować dane, ale należy wybrać tylko liczniki wymagane w counterSpecifiers celu zapewnienia wydajności, aby uniknąć potencjalnych opłat za pozyskiwanie.

Następujące przykładowe kontrolery domeny wykonują następujące akcje:

  • Zbiera zestaw liczników wydajności co 60 sekund i kolejny zestaw co 30 sekund.
  • Wysyła dane do metryk usługi Azure Monitor i obszaru roboczego usługi Log Analytics.
  • Używa prostego przekształcenia elementu source , które nie powoduje zmiany danych przychodzących.
{
    "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"
        }
      ]
    }
}

Dzienniki tekstowe

Kontrolery domeny dla dzienników tekstowych mają logfiles źródło danych zawierające szczegółowe informacje o plikach dziennika, które powinny być zbierane przez agenta. Obejmuje to nazwę strumienia, który musi być zdefiniowany w streamDeclarations kolumnach danych przychodzących. Jest to obecnie lista zestawów opisana w temacie Zbieranie dzienników z pliku tekstowego za pomocą agenta usługi Azure Monitor.

Dodaj przekształcenie do dataFlows właściwości , aby odfiltrować rekordy, których nie chcesz zbierać, i formatować dane w celu dopasowania ich do schematu tabeli docelowej. Typowym scenariuszem jest przeanalizowanie rozdzielanego pliku dziennika do wielu kolumn zgodnie z opisem w sekcji Rozdzielane pliki dziennika.

Następujące przykładowe kontrolery domeny wykonują następujące akcje:

  • Zbiera wpisy ze wszystkich plików z rozszerzeniem .txt w c:\logs folderze komputera agenta.
  • Używa przekształcenia, aby podzielić dane przychodzące na kolumny na podstawie ogranicznika przecinka (,). Ta transformacja jest specyficzna dla formatu pliku dziennika i musi być dostosowywana dla plików dziennika z innymi formatami.
  • Wysyła zebrane dzienniki do niestandardowej tabeli o nazwie MyTable_CL. Ta tabela musi już istnieć i mieć kolumny wyjściowe przekształcenia.
  • Zbiera dziennik tekstowy FilePath i Computer zgodnie z opisem w strumieniu przychodzącym. Te kolumny muszą również istnieć w tabeli docelowej.
{
    "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"
            }
        ]
    }
}

Dzienniki Json

Kontrolery domeny dla dzienników Json mają logfiles źródło danych zawierające szczegółowe informacje dotyczące plików dziennika, które powinny być zbierane przez agenta. Obejmuje to nazwę strumienia, który musi być zdefiniowany w streamDeclarations kolumnach danych przychodzących. Aby uzyskać więcej informacji, zobacz Zbieranie dzienników z pliku JSON za pomocą agenta usługi Azure Monitor.

Dodaj przekształcenie do dataFlows właściwości , aby odfiltrować rekordy, których nie chcesz zbierać, i formatować dane w celu dopasowania ich do schematu tabeli docelowej.

Następujące przykładowe kontrolery domeny wykonują następujące akcje:

  • Zbiera wpisy ze wszystkich plików z rozszerzeniem .json w c:\logs folderze komputera agenta. Plik musi być sformatowany w formacie json i mieć kolumny wymienione w deklaracji strumienia.
  • Wysyła zebrane dzienniki do niestandardowej tabeli o nazwie MyTable_CL. Ta tabela musi już istnieć i mieć te same kolumny co strumień przychodzący. Jeśli kolumny nie są zgodne, należy zmodyfikować przekształcenie we właściwości w transformKql celu sformatowania danych dla tabeli docelowej.
{
    "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"
            }
        ]
    }
}

Wysyłanie danych do usługi Event Hubs lub magazynu

Kontrolery domeny wysyłające dane do centrów zdarzeń lub kont magazynu używają tych samych źródeł danych co inne kontrolery domeny, które zbierają dane za pomocą agenta usługi Azure Monitor (AMA), ale mają co najmniej jedno z następujących miejsc docelowych. Aby uzyskać więcej informacji, zobacz Wysyłanie danych do usług Event Hubs i Storage (wersja zapoznawcza).

  • eventHubsDirect
  • storageBlobsDirect
  • storageTablesDirect

Uwaga

Kontrolery domeny wysyłające dane do centrów zdarzeń lub kont magazynu muszą mieć "kind": "AgentDirectToStore"

Następujące przykładowe kontrolery domeny wykonują następujące akcje:

  • Zbiera liczniki wydajności i zdarzenia systemu Windows z maszyn z systemem Windows za pomocą agenta usługi Azure Monitor (AMA).
  • Wysyła dane do centrum zdarzeń, magazynu obiektów blob i magazynu tabel.
{
    "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"
                ]
            },
        ]
    }
}

Interfejs API pozyskiwania dzienników

Kontrolery domeny dla interfejsu API pozyskiwania dzienników muszą definiować schemat strumienia przychodzącego w streamDeclarations sekcji definicji kontrolera domeny. Dane przychodzące muszą być sformatowane w formacie JSON ze schematem pasującym do kolumn w tej definicji. Nie jest wymagane przekształcenie, jeśli ten schemat jest zgodny ze schematem tabeli docelowej. Jeśli schematy nie są zgodne, musisz dodać przekształcenie do dataFlows właściwości w celu sformatowania danych. Aby uzyskać więcej informacji, zobacz Interfejs API pozyskiwania dzienników w usłudze Azure Monitor .

Poniższy przykładowy kontroler domeny zawiera następujące szczegóły:

  • Wysyła dane do tabeli o nazwie MyTable_CL w obszarze roboczym o nazwie my-workspace. Przed zainstalowaniem tego kontrolera domeny należy utworzyć tabelę z następującymi kolumnami:
    • TimeGenerated
    • Komputer
    • AdditionalContext
    • ExtendedColumn (zdefiniowany w transformacji)
  • Stosuje przekształcenie danych przychodzących w celu sformatowania danych dla tabeli docelowej.

Ważne

Ten przykład nie zawiera dataCollectionEndpointId właściwości, ponieważ jest on tworzony automatycznie podczas tworzenia kontrolera domeny. Wartość tej właściwości jest potrzebna, ponieważ jest to adres URL, do którego aplikacja będzie wysyłać dane. Aby można było utworzyć tę właściwość, należy utworzyć kind:Direct kontroler domeny. Aby uzyskać więcej informacji, zobacz Właściwości .

{
    "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"
            }
        ]
    }
}

Przekształcanie obszaru roboczego DCR

Kontrolery DCR przekształcania obszaru roboczego mają pustą datasources sekcję, ponieważ przekształcenia są stosowane do wszystkich danych wysyłanych do obsługiwanych tabel w obszarze roboczym. Musi zawierać jeden i tylko wpis dla workspaceResourceId i wpis dla dataFlows każdej tabeli z przekształceniem. Musi również mieć wartość "kind": "WorkspaceTransforms".

Poniższy przykładowy kontroler domeny zawiera następujące szczegóły:

  • Przekształcenie tabeli LAQueryLogs , która filtruje zapytania samej tabeli i dodaje kolumnę o nazwie obszaru roboczego.
  • Przekształcenie tabeli Event , która filtruje zdarzenia informacyjne i usuwa kolumnę ParameterXml . Dotyczy to tylko danych pochodzących z przestarzałego agenta usługi Log Analytics, a nie agenta usługi Azure Monitor, zgodnie z opisem w artykule DcR przekształcania obszaru roboczego.
{
    "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"
            }
        ]
    }
}

Wysyłanie danych do wielu tabel

Istnieje wiele powodów, dla których warto wysłać dane z jednego źródła danych do wielu tabel w tym samym obszarze roboczym usługi Log Analytics, w tym z następujących:

  • Oszczędzaj koszty pozyskiwania, wysyłając rekordy używane do okazjonalnych rozwiązywania problemów z podstawową tabelą dzienników.
  • Wysyłaj rekordy lub kolumny z poufnymi danymi do tabeli z różnymi uprawnieniami lub ustawieniami przechowywania.

Aby wysyłać dane z jednego źródła danych do wielu tabel, utwórz wiele przepływów danych w kontrolerze domeny z unikatowym zapytaniem przekształcenia i tabelą wyjściową dla każdego z nich, jak pokazano na poniższym diagramie.

Ważne

Obecnie tabele w kontrolerze domeny muszą znajdować się w tym samym obszarze roboczym usługi Log Analytics. Aby wysłać do wielu obszarów roboczych z jednego źródła danych, użyj wielu kontrolerów domeny i skonfiguruj aplikację do wysyłania danych do każdego źródła danych.

Diagram przedstawiający przekształcanie wysyłające dane do wielu tabel.

Poniższy przykład filtruje rekordy wysyłane do tabeli zdarzeń przez agenta usługi Azure Monitor. Do tabeli zdarzeń są wysyłane tylko zdarzenia ostrzegawcze i błędy. Inne zdarzenia są wysyłane do kopii tabeli zdarzeń o nazwie Event_CL, która jest skonfigurowana dla dzienników podstawowych.

Uwaga

Ten przykład wymaga kopii tabeli zdarzeń utworzonej w tym samym obszarze roboczym o nazwie 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"
            }
        ]
    }
}

Następne kroki