Senden von Azure-Ressourcenprotokollen an Log Analytics-Arbeitsbereiche, Event Hubs oder Azure Storage
Azure-Ressourcenprotokolle sind Plattformprotokolle, die Einblicke in Vorgänge bereitstellen, die in einer Azure-Ressource ausgeführt wurden. Der Inhalt der Ressourcenprotokolle unterscheidet sich für jeden Ressourcentyp. Ressourcenprotokolle werden standardmäßig nicht erfasst. Zum Sammeln von Ressourcenprotokollen müssen Sie Diagnoseeinstellungen aktivieren und konfigurieren oder Datensammlungsregeln verwenden. Weitere Informationen zu Datensammlungsregeln finden Sie unter Datensammlungsregeln in Azure Monitor. In diesem Artikel wird die Diagnoseeinstellung beschrieben, die für jede Azure-Ressource erforderlich ist, um ihre Ressourcenprotokolle an Log Analytics-Arbeitsbereiche, Event Hubs oder Azure Storage zu senden.
Senden an den Log Analytics-Arbeitsbereich
Senden Sie Ressourcenprotokolle an einen Log Analytics-Arbeitsbereich, um die Features von Azure Monitor-Protokollen zu aktivieren, die Folgendes ermöglichen:
- Korrelieren von Ressourcenprotokolldaten mit anderen von Azure Monitor gesammelten Überwachungsdaten
- Konsolidieren von Protokolleinträgen mehrerer Azure-Ressourcen, -Abonnements und -Mandanten an einem einzigen Ort zur gemeinsamen Analyse
- Verwenden von Protokollabfragen zum Ausführen komplexer Analysen und Erhalten tiefer Einblicke in Protokolldaten
- Verwenden von Warnungen für die Protokollsuche mit komplexer Warnungslogik
Erstellen Sie eine Diagnoseeinstellung, um Ressourcenprotokolle an einen Log Analytics-Arbeitsbereich zu senden. Diese Daten werden in Tabellen gespeichert, wie es unter Struktur von Azure Monitor-Protokollen beschrieben ist. Welche Tabellen von Ressourcenprotokollen verwendet werden, hängt von dem von der Ressource verwendeten Ressourcen- und Sammlungstyp ab. Es gibt zwei Arten von Sammlungsmodi für Ressourcenprotokolle:
- Azure-Diagnose: Alle Daten werden in die Tabelle AzureDiagnostics geschrieben.
- Ressourcenspezifisch: Daten werden für jede Kategorie der Ressource in einzelne Tabellen geschrieben.
Modus „Ressourcenspezifisch“
Für Protokolle im ressourcenspezifischen Modus werden im ausgewählten Arbeitsbereich für jede in der Diagnoseeinstellung ausgewählte Kategorie individuelle Tabellen erstellt. Ressourcenspezifische Protokolle haben gegenüber Azure-Diagnoseprotokollen die folgenden Vorteile:
- Die Arbeit mit den Daten in Protokollabfragen wird erheblich vereinfacht.
- Sie bietet eine bessere Erkennbarkeit von Schemas und deren Struktur.
- Die Leistung wird sowohl im Hinblick auf Erfassungslatenz als auch auf Abfragezeiten verbessert.
- Sie bietet die Möglichkeit, Berechtigungen für die rollenbasierte Zugriffssteuerung in Azure für eine bestimmte Tabelle zu gewähren.
Eine Beschreibung ressourcenspezifischer Protokolle und Tabellen finden Sie im Artikel zu unterstützten Ressourcenprotokollkategorien für Azure Monitor.
Modus „Azure-Diagnose“
Im Azure-Diagnosemodus werden alle Daten aus einer beliebigen Diagnoseeinstellung in der Tabelle AzureDiagnostics gesammelt. Diese Legacymethode wird heute in einer Minderheit der Azure-Dienste genutzt. Da mehrere Ressourcentypen Daten an dieselbe Tabelle senden, stellt deren Schema die Obermenge der Schemas aller erfassten einzelnen Datentypen dar. Ausführliche Informationen zur Struktur dieser Tabelle und ihrer Funktionsweise bei dieser potenziell großen Anzahl von Spalten finden Sie in der AzureDiagnostics-Referenz.
Die AzureDiagnostics-Tabelle enthält die resourceId der Ressource, die das Protokoll generiert hat, die Kategorie des Protokolls und die Zeit, zu der das Protokoll generiert wurde, sowie ressourcenspezifische Eigenschaften.
Auswählen des Sammlungsmodus
Die meisten Azure-Ressourcen schreiben Daten entweder im Modus Azure-Diagnose oder im Modus Ressourcenspezifisch in den Arbeitsbereich, ohne dass Sie eine Auswahl treffen können. Weitere Informationen finden Sie unter Allgemeine und dienstspezifische Schemas für Azure-Ressourcenprotokolle.
Alle Azure-Dienste verwenden letztendlich den Modus „Ressourcenspezifisch“. Im Rahmen dieses Übergangs können Sie bei einigen Ressourcen einen Modus in der Diagnoseeinstellung auswählen. Wählen Sie den ressourcenspezifischen Modus für alle neuen Diagnoseeinstellungen aus, da dieser Modus eine einfachere Verwaltung der Daten ermöglicht. Außerdem können Sie auf diese Weise komplexe Migrationen zu einem späteren Zeitpunkt vermeiden.
Hinweis
Ein Beispiel für das Festlegen des Sammlungsmodus mithilfe einer Azure Resource Manager-Vorlage finden Sie unter Beispiele für Resource Manager-Vorlagen für Diagnoseeinstellungen in Azure Monitor.
Sie können eine vorhandene Diagnoseeinstellung in den Modus „Ressourcenspezifisch“ ändern. In diesem Fall verbleiben Daten, die bereits gesammelt wurden, in der Tabelle AzureDiagnostics
, bis sie gemäß Ihrer Aufbewahrungseinstellung für den Arbeitsbereich entfernt werden. Neue Daten werden in der dedizierten Tabelle gesammelt. Verwenden Sie den union-Operator, um Daten in beiden Tabellen abzufragen.
Sehen Sie regelmäßig im Blog Azure-Updates nach, ob Ankündigungen für Azure-Dienste vorliegen, die den ressourcenspezifischen Modus unterstützen.
Senden an Azure Event Hubs
Senden Sie Ressourcenprotokolle an einen Event Hub, um sie außerhalb von Azure senden zu können. Beispielsweise können Ressourcenprotokolle an eine SIEM-Lösung eines Drittanbieters oder andere Lösungen für die Protokollanalyse gesendet werden. Ressourcenprotokolle von Event Hubs werden im JSON-Format mit einem records
-Element genutzt, das die Datensätze in jeder Nutzlast enthält. Das Schema hängt wie unter Allgemeine und dienstspezifische Schemas für Azure-Ressourcenprotokolle beschrieben vom Ressourcentyp ab.
Die folgenden Beispielausgabedaten stammen aus Azure Event Hubs für ein Ressourcenprotokoll:
{
"records": [
{
"time": "2019-07-15T18:00:22.6235064Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330013509921957/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Error",
"operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T17:58:55.048482Z",
"endTime": "2016-07-15T18:00:22.4109204Z",
"status": "Failed",
"code": "BadGateway",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "2222cccc-33dd-eeee-ff44-aaaaaa555555",
"workflowName": "JohnKemTestLA",
"runId": "08587330013509921957",
"location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "3333dddd-44ee-ffff-aa55-bbbbbbbb6666",
"clientTrackingId": "08587330013509921958"
}
}
},
{
"time": "2019-07-15T18:01:15.7532989Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330012106702630/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Information",
"operationName": "Microsoft.Logic/workflows/workflowActionStarted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T18:01:15.5828115Z",
"status": "Running",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"workflowName": "JohnKemTestLA",
"runId": "08587330012106702630",
"location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "ffff5555-aa66-7777-88bb-999999cccccc",
"clientTrackingId": "08587330012106702632"
}
}
}
]
}
Senden an Azure Storage
Senden Sie Ressourcenprotokolle zur Aufbewahrung für die Archivierung an Azure Storage. Nach dem Einrichten der Diagnoseeinstellung wird im Speicherkonto ein Speichercontainer erstellt, sobald ein Ereignis in einer der aktivierten Protokollkategorien auftritt.
Hinweis
Eine Alternative zur Archivierung ist das Senden des Ressourcenprotokolls an eine Tabelle in Ihrem Log Analytics-Arbeitsbereich mit kostengünstiger Langzeitaufbewahrung.
Die Blobs im Container verwenden die folgende Benennungskonvention:
insights-logs-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/RESOURCEGROUPS/{resource group name}/PROVIDERS/{resource provider name}/{resource type}/{resource name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
Das Blob für eine Netzwerksicherheitsgruppe könnte einen Namen aufweisen, der dem folgenden Beispiel ähnelt:
insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUP/TESTNSG/y=2016/m=08/d=22/h=18/m=00/PT1H.json
Jedes PT1H.json-Blob enthält ein JSON-Objekt mit Ereignissen aus Protokolldateien, die während der in der Blob-URL angegebenen Stunde empfangen wurden. Während der aktuellen Stunde werden die Ereignisse, sobald sie empfangen werden, an die Datei PT1H.json angehängt, unabhängig davon, wann sie erzeugt wurden. Der Minutenwert in der URL, m=00
, ist immer 00
, da Blobs pro Stunde erstellt werden.
Innerhalb der Datei „PT1H.json“ wird jedes Ereignis im folgenden Format gespeichert. Hierbei wird ein gemeinsames Schema der obersten Ebene verwendet, das jedoch wie unter Allgemeine und dienstspezifische Schemas für Azure-Ressourcenprotokolle beschrieben für jeden Azure-Dienst eindeutig ist.
Hinweis
Protokolle werden basierend auf der Zeit, zu der das Protokoll empfangen wurde, in Blobs geschrieben, unabhängig von der Zeit, zu der das Protokoll erzeugt wurde. Dies bedeutet, dass ein bestimmtes Blob Protokolldaten enthalten kann, die außerhalb der in der BLOB-URL angegebenen Stunde liegt. Wenn eine Datenquelle wie Application Insights das Hochladen veralteter Telemetriedaten unterstützt, kann ein Blob Daten aus den letzten 48 Stunden enthalten.
Zu Beginn einer neuen Stunde ist es möglich, dass vorhandene Protokolle weiterhin in das Blob der vorherigen Stunde geschrieben werden, während neue Protokolle in das Blob der neuen Stunde geschrieben werden.
{"time": "2016-07-01T00:00:37.2040000Z","systemId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}
Azure Monitor – integrierte Partnerlösungen
Ressourcenprotokolle können auch an Partnerlösungen gesendet werden, die vollständig in Azure integriert sind. Eine Liste dieser Lösungen und Details zur Konfiguration finden Sie unter Erweitern von Azure mit Lösungen von Partnern.