Senden von Azure Monitor-Aktivitätsprotokolldaten
Das Azure Monitor-Aktivitätsprotokoll ist ein Plattformprotokoll, das einen Einblick in Ereignisse auf Abonnementebene ermöglicht. Das Aktivitätsprotokoll enthält Informationen wie den Zeitpunkt, zu dem eine Ressource geändert oder ein virtueller Computer gestartet wurde. Sie können das Aktivitätsprotokoll im Azure-Portal anzeigen oder Einträge mit PowerShell und der Azure CLI abrufen. In diesem Artikel erfahren Sie, wie Sie das Aktivitätsprotokoll anzeigen und an verschiedene Ziele senden.
Erstellen Sie eine Diagnoseeinstellung, um das Aktivitätsprotokoll an einen oder mehrere der folgenden Speicherorte zu senden:
- Log Analytics-Arbeitsbereich für komplexere Abfragen und Warnungen
- Azure Event Hubs zum Weiterleiten von Protokollen außerhalb von Azure
- Azure Storage für kostengünstigere, langfristige Archivierung
Einzelheiten zum Erstellen einer Diagnoseeinstellung finden Sie unter Erstellen einer Diagnoseeinstellung zum Sammeln von Ressourcenprotokollen und -metriken in Azure.
Tipp
Senden von Aktivitätsprotokollen an einen Log Analytics-Arbeitsbereich, um von den folgenden Vorteilen zu profitieren:
- Das Senden von Protokollen an einen Log Analytics-Arbeitsbereich ist für den Standardaufbewahrungszeitraum kostenlos.
- Senden Sie Protokolle an einen Log Analytics-Arbeitsbereich für eine längere Aufbewahrung von bis zu 12 Jahren.
- Protokolle, die in einen Log Analytics-Arbeitsbereich exportiert werden, können in Power BI angezeigt werden.
- Erkenntnisse werden für Aktivitätsprotokolle bereitgestellt, die in Log Analytics exportiert werden.
Hinweis
- Einträge im Aktivitätsprotokoll werden vom System generiert und können nicht geändert oder gelöscht werden.
- Einträge im Aktivitätsprotokoll stellen Änderungen der Steuerungsebene wie einen Neustart einer virtuellen Maschine dar. Alle nicht verbundenen Einträge sollten in Azure-Ressourcenprotokolle geschrieben werden.
- Einträge im Aktivitätsprotokoll sind in der Regel Folge von Änderungen (Erstellungs-, Aktualisierungs- oder Löschvorgängen) oder einer Aktion, die initiiert wurde. Vorgänge, die sich auf das Lesen von Ressourcendetails konzentrieren, werden normalerweise nicht erfasst.
Senden an den Log Analytics-Arbeitsbereich
Senden Sie das Aktivitätsprotokoll an einen Log Analytics-Arbeitsbereich, um das Feature Azure Monitor-Protokolle zu aktivieren, das Folgendes ermöglicht:
- Korrelieren von Aktivitätsprotokolldaten mit anderen von Azure Monitor gesammelten Überwachungsdaten
- Konsolidieren von Protokolleinträgen mehrerer Azure-Abonnements und -Mandanten an einem einzigen Ort zur gemeinsamen Analyse
- Verwenden von Protokollabfragen zum Ausführen komplexer Analysen und Erhalten tiefer Einblicke in Aktivitätsprotokolleinträge
- Verwenden Sie Protokollsuchwarnungen mit Aktivitätseinträgen, die eine komplexere Warnungslogik ermöglichen.
- Speichern von Aktivitätsprotokolleinträgen für einen längeren Zeitraum als den Aufbewahrungszeitraum des Aktivitätsprotokolls
- Keine Gebühren für Datenerfassung oder Datenaufbewahrung von Aktivitätsprotokolldaten, die in einem Log Analytics-Arbeitsbereich gespeichert sind.
- Der Standardaufbewahrungszeitraum in Log Analytics beträgt 90 Tage.
Wählen Sie Aktivitätsprotokolle exportieren aus, um das Aktivitätsprotokoll an einen Log Analytics-Arbeitsbereich zu senden.
Sie können das Aktivitätsprotokoll in einem einzelnen Abonnement an bis zu fünf Arbeitsbereiche senden.
Aktivitätsprotokolldaten in einem Log Analytics-Arbeitsbereich werden in der Tabelle AzureActivity
gespeichert. Diese können Sie mit einer Protokollabfrage in Log Analytics abrufen. Die Struktur dieser Tabelle ist je nach Kategorie des Protokolleintrags verschieden. Eine Beschreibung der Tabelleneigenschaften finden Sie in der Azure Monitor-Datenreferenz.
Zeigen Sie z. B. mit der folgenden Abfrage die Anzahl der Aktivitätsprotokoll-Datensätze für jede Kategorie an:
AzureActivity
| summarize count() by CategoryValue
Verwenden Sie die folgende Abfrage, um alle Datensätze in der Kategorie „Administrativ“ abzurufen:
AzureActivity
| where CategoryValue == "Administrative"
Wichtig
In einigen Szenarien ist es möglich, dass Werte in Feldern von AzureActivity andere Groß- und Kleinschreibungen aufweisen als andernfalls gleichwertige Werte. Achten Sie beim Abfragen von Daten in AzureActivity darauf, Operatoren ohne Berücksichtigung der Groß-/Kleinschreibung für Zeichenfolgenvergleiche zu verwenden, oder verwenden Sie eine Skalarfunktion, um ein Feld vor allen Vergleichen auf eine einheitliche Groß- und Kleinschreibung zu erzwingen. Verwenden Sie z. B. die tolower()-Funktion für ein Feld, um zu erzwingen, dass es immer klein geschrieben wird, oder den Operator =~ beim Durchführen eines Zeichenfolgenvergleichs.
Senden an Azure Event Hubs
Senden Sie das Aktivitätsprotokoll an Azure Event Hubs, um Einträge an Ressourcen außerhalb von Azure zu senden, z. B. an eine SIEM-Lösung oder andere Protokollanalyselösungen von Drittanbietern. Aktivitätsprotokollereignisse von Event Hubs-Instanzen werden im JSON-Format mit einem records
-Element genutzt, das die Datensätze in den den einzelnen Nutzdaten enthält. Das Schema hängt von der Kategorie ab und ist unter Ereignisschema des Azure-Aktivitätsprotokolls beschrieben.
Es folgt ein Beispiel für eine Datenausgabe aus Event Hubs-Instanzen für ein Aktivitätsprotokoll:
{
"records": [
{
"time": "2019-01-21T22:14:26.9792776Z",
"resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
"operationName": "microsoft.support/supporttickets/write",
"category": "Write",
"resultType": "Success",
"resultSignature": "Succeeded.Created",
"durationMs": 2826,
"callerIpAddress": "111.111.111.11",
"correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"identity": {
"authorization": {
"scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
"action": "microsoft.support/supporttickets/write",
"evidence": {
"role": "Subscription Admin"
}
},
"claims": {
"aud": "https://management.core.windows.net/",
"iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
"iat": "1421876371",
"nbf": "1421876371",
"exp": "1421880271",
"ver": "1.0",
"http://schemas.microsoft.com/identity/claims/tenantid": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
"http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
"http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
"puid": "20030000801A118C",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
"name": "John Smith",
"groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
"appid": "00001111-aaaa-2222-bbbb-3333cccc4444",
"appidacr": "2",
"http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
"http://schemas.microsoft.com/claims/authnclassreference": "1"
}
},
"level": "Information",
"location": "global",
"properties": {
"statusCode": "Created",
"serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
}
}
]
}
Senden an Azure Storage
Senden Sie das Aktivitätsprotokoll an ein Azure Storage Konto, wenn Sie die Protokolldaten für Überwachung, statische Analyse oder Sicherungszwecke länger als 90 Tage aufbewahren möchten. Wenn Sie Ereignisse höchstens 90 Tage aufbewahren müssen, muss keine Archivierung in einem Speicherkonto eingerichtet werden. Aktivitätsprotokollereignisse werden 90 Tage auf der Azure-Plattform gespeichert.
Wenn Sie das Aktivitätsprotokoll an Azure senden, wird bei Auftreten eines Ereignisses ein Speichercontainer im Speicherkonto erstellt. Für die Blobs im Container gilt die folgende Benennungskonvention:
insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/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
Ein bestimmtes Blob kann beispielsweise einen Namen aufweisen, der dem Folgenden ähnelt:
insights-activity-logs/resourceId=/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/y=2020/m=06/d=08/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.
In der Datei „PT1H.json“ wird jedes Ereignis im folgenden Format gespeichert. Dieses Format sieht ein gemeinsames Schema auf oberster Ebene vor, ist jedoch ansonsten für jede Kategorie eindeutig (gemäß der Beschreibung unter Aktivitätsprotokollschema).
{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}
Weitere Methoden zum Abrufen von Aktivitätsprotokollereignissen
Sie können auch mithilfe der folgenden Methoden auf Aktivitätsprotokollereignisse zugreifen:
- Rufen Sie mit dem Cmdlet Get-AzLog das Aktivitätsprotokoll über PowerShell ab. Siehe Beispiele zu PowerShell in Azure Monitor.
- Verwenden Sie az monitor activity-log, um das Aktivitätsprotokoll über die CLI abzurufen. Siehe CLI-Beispiele für Azure Monitor.
- Verwenden Sie die Azure Monitor-REST-API, um das Aktivitätsprotokoll über einen REST-Client abzurufen.
Legacy-Erfassungsmethoden
Hinweis
- Die Azure-Aktivitätsprotokolllösung wurde verwendet, um Aktivitätsprotokolle an Azure Log Analytics weiterzuleiten. Diese Lösung wird am 15. September 2026 eingestellt und automatisch in Diagnoseeinstellungen konvertiert.
Wenn Sie Aktivitätsprotokolle mithilfe der Legacy-Erfassungsmethode sammeln, empfehlen wir Ihnen, Aktivitätsprotokolle in Ihren Log Analytics-Arbeitsbereich zu exportieren und die Legacy-Erfassung mithilfe der API zum Löschen von Datenquellen wie folgt zu deaktivieren:
Verwenden Sie die API zum Auflisten der Datenquellen nach Arbeitsbereich, um alle mit dem Arbeitsbereich verbundenen Datenquellen aufzulisten und nach Aktivitätsprotokollen zu filtern, indem Sie
kind eq 'AzureActivityLog'
festlegen.Kopieren Sie den Namen der Verbindung, die Sie deaktivieren möchten, aus der API-Antwort.
Verwenden Sie die API zum Löschen von Datenquellen, um die Erfassung von Aktivitätsprotokollen für die betreffende Ressource zu beenden.
Verwalten von Legacyprotokollprofilen – wird eingestellt
Hinweis
- Protokollprofile wurden verwendet, um Aktivitätsprotokolle an Speicherkonten und Event Hubs weiterzuleiten. Diese Methode wird am 15. September 2026 eingestellt.
- Wenn Sie diese Methode verwenden, wechseln Sie vor dem 15. September 2025 zu Diagnoseeinstellungen. Ab diesem Tag werden wir keine neuen Erstellungen von Protokollprofilen mehr zulassen.
Protokollprofile sind die Legacymethode zum Senden des Aktivitätsprotokolls an Azure Storage oder Event Hubs. Wenn Sie diese Methoden verwenden, wechseln Sie zu Diagnoseeinstellungen, denn diese bieten eine bessere Funktionalität und Konsistenz mit Ressourcenprotokollen.
Wenn bereits ein Protokollprofil vorhanden ist, müssen Sie zuerst das vorhandene Protokollprofil entfernen und dann ein neues Profil erstellen.
Ermitteln Sie mithilfe von
Get-AzLogProfile
, ob ein Protokollprofil vorhanden ist. Wenn ein Protokollprofil vorhanden ist, notieren Sie sich die EigenschaftName
.Verwenden Sie
Remove-AzLogProfile
, um das Protokollprofil mithilfe des Werts aus der EigenschaftName
zu entfernen.# For example, if the log profile name is 'default' Remove-AzLogProfile -Name "default"
Verwenden Sie
Add-AzLogProfile
, um ein neues Protokollprofil zu erstellen:Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
Eigenschaft Erforderlich Beschreibung Name Ja Name des Protokollprofils. StorageAccountId Nein Ressourcen-ID des Speicherkontos, in dem das Aktivitätsprotokoll gespeichert werden soll. serviceBusRuleId Nein Service Bus-Regel-ID für den Service Bus-Namespace, in dem Sie Event Hubs-Instanzen erstellen lassen möchten. Die Zeichenfolge hat das folgende Format: {service bus resource ID}/authorizationrules/{key name}
.Standort Ja Durch Komma getrennte Liste mit den Regionen, für die Sie Aktivitätsprotokollereignisse erfassen möchten. RetentionInDays Ja Anzahl von Tagen für die Aufbewahrung von Ereignissen im Speicherkonto (1 bis 365). Bei einem Wert von 0 werden die Protokolle dauerhaft gespeichert. Category Nein Durch Komma getrennte Liste mit Ereigniskategorien, die erfasst werden sollen. Mögliche Werte sind „Write“, „Delete“ und „Action“.
Beispielskript
Das folgende PowerShell-Beispielskript erstellt ein Protokollprofil, mit dem das Aktivitätsprotokoll sowohl in ein Speicherkonto als auch in einen Event Hub geschrieben wird.
# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"
# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"
# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId $storageAccountId -ServiceBusRuleId $serviceBusRuleId
Änderungen der Datenstruktur
Über die Option „Aktivitätsprotokolle exportieren“ werden dieselben Daten wie mit der Legacymethode zum Senden des Aktivitätsprotokolls gesendet, jedoch mit einigen Änderungen an der Struktur der Tabelle AzureActivity
.
Die Spalten in der folgenden Tabelle sind im aktualisierten Schema veraltet. Sie sind weiterhin in AzureActivity
vorhanden, verfügen aber über keine Daten. Die Ersatzspalten sind nicht neu, und sie enthalten dieselben Daten wie die veralteten Spalten. Sie haben ein anderes Format, sodass Sie ggf. Protokollabfragen ändern müssen, die diese Spalten verwenden.
Aktivitätsprotokoll in JSON | Name der Log Analytics-Spalte (veraltet) |
Name der neuen Log Analytics-Spalte | Hinweise |
---|---|---|---|
category | Category | CategoryValue | |
status Die Werte sind: success, start, accept, failure |
ActivityStatus Mit JSON identische Werte |
ActivityStatusValue Werte geändert in: succeeded, started, accepted, failed |
Die gültigen Werte ändern sich wie gezeigt. |
subStatus | ActivitySubstatus | ActivitySubstatusValue | |
operationName | Vorgangsname | OperationNameValue | Die REST-API lokalisiert den Wert des Vorgangsnamens. Die Log Analytics-Benutzeroberfläche zeigt immer Englisch an. |
resourceProviderName | ResourceProvider | ResourceProviderValue |
Wichtig
In einigen Fällen können die Werte in diesen Spalten in Großbuchstaben geschrieben sein. Wenn Ihre Abfrage diese Spalten umfasst, verwenden Sie den Operator „=~“, um einen Vergleich ohne Beachtung von Groß-/Kleinschreibung durchzuführen.
Die folgenden Spalten wurden AzureActivity
im aktualisierten Schema hinzugefügt:
- Authorization_d
- Claims_d
- Properties_d
Nächste Schritte
Weitere Informationen: