Beispiel für Datensammlungsregeln (Data Collection Rules, DCRs) in Azure Monitor

Dieser Artikel enthält ein Beispiel für Datensammlungsregeln (Data Collection Rules, DCRs) für verschiedene Szenarien. Beschreibungen der einzelnen Eigenschaften in diesen DCRs finden Sie unter Struktur einer Datensammlungsregel.

Hinweis

Diese Beispiele stellen die Quell-JSON eines DCR bereit, wenn Sie eine ARM-Vorlage oder REST-API zum Erstellen oder Ändern eines DCR verwenden. Nach der Erstellung verfügt der DCR über zusätzliche Eigenschaften, wie in Struktur einer Datensammlungsregel in Azure Monitor beschrieben.

Azure Monitor-Agent – Ereignisse und Leistungsdaten

Das unten angegebene Beispiel einer Datensammlungsregel gilt für virtuelle Computer mit Azure Monitor-Agent und hat folgende Details:

  • Leistungsdaten
    • Sammelt alle 15 Sekunden spezifische Indikatordaten für Prozessor, Arbeitsspeicher, logischen Datenträger und physischen Datenträger und führt einmal pro Minute ein Upload durch.
    • Sammelt alle 30 Sekunden spezifische Prozessindikatoren und führt alle fünf Minuten ein Upload durch.
  • Windows-Ereignisse
    • Sammelt Windows-Sicherheitsereignisse und führt einmal pro Minute ein Upload durch.
    • Sammelt Windows-Anwendungs- und -Systemereignisse und führt alle fünf Minuten ein Upload durch.
  • syslog
    • Sammelt Ereignisse vom Typ „Debuggen“, „Kritisch“ und „Notfall“ für die Cron-Komponente.
    • Sammelt Ereignisse vom Typ „Warnung“, „Kritisch“ und „Notfall“ für die Syslog-Komponente.
  • Destinations
    • Sendet alle Daten an einen Log Analytics-Arbeitsbereich mit dem Namen „centralWorkspace“.

Hinweis

Eine Erläuterung zu XPath-Abfragen, die verwendet werden, um Angaben zu einer Ereignissammlung in Datensammlungsregeln zu machen, finden Sie unter Einschränken der Datensammlung mithilfe von benutzerdefinierten XPath-Abfragen.

{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "performanceCounters": [
          {
            "name": "cloudTeamCoreCounters",
            "streams": [
              "Microsoft-Perf"
            ],
            "scheduledTransferPeriod": "PT1M",
            "samplingFrequencyInSeconds": 15,
            "counterSpecifiers": [
              "\\Processor(_Total)\\% Processor Time",
              "\\Memory\\Committed Bytes",
              "\\LogicalDisk(_Total)\\Free Megabytes",
              "\\PhysicalDisk(_Total)\\Avg. Disk Queue Length"
            ]
          },
          {
            "name": "appTeamExtraCounters",
            "streams": [
              "Microsoft-Perf"
            ],
            "scheduledTransferPeriod": "PT5M",
            "samplingFrequencyInSeconds": 30,
            "counterSpecifiers": [
              "\\Process(_Total)\\Thread Count"
            ]
          }
        ],
        "windowsEventLogs": [
          {
            "name": "cloudSecurityTeamEvents",
            "streams": [
              "Microsoft-Event"
            ],
            "scheduledTransferPeriod": "PT1M",
            "xPathQueries": [
              "Security!*"
            ]
          },
          {
            "name": "appTeam1AppEvents",
            "streams": [
              "Microsoft-Event"
            ],
            "scheduledTransferPeriod": "PT5M",
            "xPathQueries": [
              "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
              "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
            ]
          }
        ],
        "syslog": [
          {
            "name": "cronSyslog",
            "streams": [
              "Microsoft-Syslog"
            ],
            "facilityNames": [
              "cron"
            ],
            "logLevels": [
              "Debug",
              "Critical",
              "Emergency"
            ]
          },
          {
            "name": "syslogBase",
            "streams": [
              "Microsoft-Syslog"
            ],
            "facilityNames": [
              "syslog"
            ],
            "logLevels": [
              "Alert",
              "Critical",
              "Emergency"
            ]
          }
        ]
      },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ]
      },
      "dataFlows": [
        {
          "streams": [
            "Microsoft-Perf",
            "Microsoft-Syslog",
            "Microsoft-Event"
          ],
          "destinations": [
            "centralWorkspace"
          ]
        }
      ]
    }
  }

Azure Monitor-Agent – Textprotokolle

Das unten aufgeführte Beispiel einer Datensammlungsregel wird zum Sammeln von Textprotokollen mithilfe des Azure Monitor-Agents verwendet. Beachten Sie, dass die Namen von Datenströmen für benutzerdefinierte Textprotokolle mit dem Präfix „Custom-“ beginnen sollten.

{
    "location": "eastus",
    "properties": {
        "streamDeclarations": {
            "Custom-MyLogFileFormat": {
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    }
                ]
            }
        },
        "dataSources": {
            "logFiles": [
                {
                    "streams": [
                        "Custom-MyLogFileFormat"
                    ],
                    "filePatterns": [
                        "C:\\JavaLogs\\*.log"
                    ],
                    "format": "text",
                    "settings": {
                        "text": {
                            "recordStartTimestampFormat": "ISO 8601"
                        }
                    },
                    "name": "myLogFileFormat-Windows"
                },
                {
                    "streams": [
                        "Custom-MyLogFileFormat" 
                    ],
                    "filePatterns": [
                        "//var//*.log"
                    ],
                    "format": "text",
                    "settings": {
                        "text": {
                            "recordStartTimestampFormat": "ISO 8601"
                        }
                    },
                    "name": "myLogFileFormat-Linux"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyLogFileFormat"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Event Hubs

Das unten aufgeführte Beispiel einer Datensammlungsregel wird zum Sammeln von Daten aus einem Event Hub verwendet.

{
    "location": "eastus",
    "properties": {
        "streamDeclarations": {
            "Custom-MyEventHubStream": {
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic"
                    }
                ]
            }
        },
        "dataSources": {
            "dataImports": {
                "eventHub": {
                            "consumerGroup": "<consumer-group>",
                            "stream": "Custom-MyEventHubStream",
                            "name": "myEventHubDataSource1"
                            }
                }
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyEventHubStream"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Protokollerfassungs-API

Das unten aufgeführte Beispiel einer Datensammlungsregel wird mit der Protokollerfassungs-API verwendet. Sie enthält die folgenden Details:

  • Sie sendet Daten an eine Tabelle mit dem Namen „MyTable_CL“ in einem Arbeitsbereich namens „my-workspace“.
  • Sie wendet eine Transformation auf die eingehenden Daten an.

Hinweis

Die Protokollaufnahme-API erfordert die logsIngestion-Eigenschaft, welche die URL des Endpunkts enthält. Diese Eigenschaft wird dem DCR hinzugefügt, nachdem sie erstellt wurde.

{
    "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/00000000-0000-0000-0000-000000000000/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"
            }
        ]
    }
}

Arbeitsbereichstransformations-DCR

Das unten aufgeführte Beispiel einer Datensammlungsregel wird als Arbeitsbereichstransformations-DCR verwendet, um alle Daten zu transformieren, die an eine Tabelle namens LAQueryLogs gesendet werden.

{
    "location": "eastus",
    "properties": {
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/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 Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''"
            }
        ]
    }
}

Nächste Schritte