Freigeben über


Senden von Azure Monitor-Aktivitätsprotokolldaten

Das Azure Monitor-Aktivitätsprotokoll ist ein Plattformprotokoll, das Einblicke in Ereignisse auf Abonnementebene bietet. Das Aktivitätsprotokoll enthält Informationen, z. B. wann eine Ressource geändert wird oder wenn ein Bereitstellungsfehler auftritt. 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 können.

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 Steuerelementebenenänderungen wie ein Neustart eines virtuellen Computers dar, alle nicht verwandten 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 Details einer Ressource konzentrieren, werden normalerweise nicht erfasst.

Tipp

Wenn Sie zu diesem Artikel über einen Bereitstellungsvorgangsfehler weitergeleitet wurden, lesen Sie die Problembehandlung allgemeiner Azure-Bereitstellungsfehler.

Aktivitätsprotokolle exportieren

  1. Wechseln Sie zum Azure>, und wählen Sie "Aktivitätsprotokolle exportieren" aus.

    Screenshot, der zeigt, wie Sie zu Aktivitätsprotokollen gelangen.

    Hinweis

    Sie können das Aktivitätsprotokoll in einem einzelnen Abonnement an bis zu fünf Arbeitsbereiche senden.

  2. Fügen Sie die Diagnoseeinstellung hinzu, um Aktivitätsprotokolle an einen oder mehrere dieser Speicherorte zu senden:

    Screenshot des Hinzufügens einer Diagnoseeinstellung

    Ausführliche Informationen zum Erstellen einer Diagnoseeinstellung finden Sie unter Erstellen von Diagnoseeinstellungen zum Senden von Plattformprotokollen und Metriken an verschiedene Ziele.

    Tipp

    Senden von Aktivitätsprotokolldaten an einen Log Analytics-Arbeitsbereich für die folgenden Vorteile:

    • Das Senden von Protokollen an einen Log Analytics-Arbeitsbereich ist für den Standardaufbewahrungszeitraum kostenlos.
    • Senden Sie Protokolle für eine längere Aufbewahrung von bis zu 12 Jahren an einen Log Analytics-Arbeitsbereich.
    • Protokolle, die in einen Log Analytics-Arbeitsbereich exportiert werden, können in Power BI angezeigt werden.
    • Einblicke werden für Aktivitätsprotokolle bereitgestellt, die in Log Analytics exportiert werden.

An einen Log Analytics-Arbeitsbereich senden

Senden Sie das Aktivitätsprotokoll an einen Log Analytics-Arbeitsbereich, um das Azure Monitor Logs-Feature zu aktivieren, in dem Sie:

  • 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 bei der Protokollanalyse beträgt 90 Tage.

Aktivitätsprotokolldaten in einem Log Analytics-Arbeitsbereich werden in einer Tabelle AzureActivity gespeichert, die Sie mit einer Protokollabfrage in Log Analytics abrufen können. Die Struktur dieser Tabelle variiert je nach Kategorie des Protokolleintrags. 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"

Von Bedeutung

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 in einem Feld, um zu erzwingen, dass es immer in Kleinbuchstaben geschrieben wird, und den =~ Operator, wenn Sie einen Zeichenfolgenvergleich durchführen.

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 wird im Azure-Aktivitätsprotokollereignisschema 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 verwendet ein allgemeines Schema auf oberster Ebene, ist aber ansonsten für jede Kategorie eindeutig, wie im Aktivitätsprotokollschema beschrieben.

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

In CSV exportieren

Wählen Sie "Als CSV herunterladen" aus, um das Aktivitätsprotokoll mithilfe des Azure-Portals in eine CSV-Datei zu exportieren.

Screenshot der Option zum Exportieren in CSV.

Von Bedeutung

Der Export kann eine übermäßige Zeit in Anspruch nehmen, wenn Sie eine große Anzahl von Protokolleinträgen haben. Um die Leistung zu verbessern, verringern Sie den Zeitraum des Exports. Im Azure-Portal wird dies mit der Einstellung "Timespan " festgelegt.

Sie können das Aktivitätsprotokoll auch mithilfe von PowerShell oder der Azure CLI wie in den folgenden Beispielen in eine CSV-Datei exportieren.

az monitor activity-log list --start-time "2024-03-01T00:00:00Z" --end-time "2024-03-15T23:59:59Z" --max-items 1000 > activitylog.json
Get-AzActivityLog -StartTime 2021-12-01T10:30 -EndTime 2022-01-14T11:30 | Export-csv operations_logs.csv

Das folgende PowerShell-Skript exportiert das Aktivitätsprotokoll in CSV-Dateien in Intervalle von einer Stunde, die jeweils in einer separaten Datei gespeichert wird.

# Parameters
$subscriptionId = "Subscription ID here"  # Replace with your subscription ID
$startTime = [datetime]"2025-05-08T00:00:00" # Adjust as needed
$endTime = [datetime]"2025-05-08T12:00:00"  # Adjust as needed
$outputFolder = "\Logs"    # Change path as needed
 
# Ensure output folder exists
if (-not (Test-Path $outputFolder)) {
    New-Item -Path $outputFolder -ItemType Directory
}
 
# Set subscription context
Set-AzContext -SubscriptionId $subscriptionId
 
# Loop through 1-hour intervals
$currentStart = $startTime
while ($currentStart -lt $endTime) {
    $currentEnd = $currentStart.AddHours(1)
    $timestamp = $currentStart.ToString("yyyyMMdd-HHmm")
    $csvFile = Join-Path $outputFolder "ActivityLog_$timestamp.csv"
 
    Write-Host "Fetching logs from $currentStart to $currentEnd..."
    Get-AzActivityLog -StartTime $currentStart -EndTime $currentEnd |
        Export-Csv -Path $csvFile -NoTypeInformation
 
    $currentStart = $currentEnd
}
 
Write-Host "Export completed. Files saved to $outputFolder."

Weitere Methoden zum Abrufen von Aktivitätsprotokollereignissen

Sie können auch mithilfe der folgenden Methoden auf Aktivitätsprotokollereignisse zugreifen:

Legacy-Erfassungsmethoden

Hinweis

Die Azure Activity Log-Lösung wurde verwendet, um Aktivitätsprotokolle an Log Analytics weiterzuleiten. Diese Lösung wird am 15. September 2026 eingestellt und automatisch in Diagnoseeinstellungen konvertiert.

Wenn Sie Aktivitätsprotokolle mithilfe der Legacysammlungsmethode sammeln, empfehlen wir Ihnen, Aktivitätsprotokolle in Ihren Log Analytics-Arbeitsbereich zu exportieren und die Legacysammlung mit den Datenquellen – Lösch-API wie folgt zu deaktivieren:

  1. Listen Sie alle Datenquellen, die mit dem Arbeitsbereich verbunden sind, mit der Datenquellen – Nach Arbeitsbereich-API auf, und filtern Sie die Aktivitätsprotokolle, indem Sie kind eq 'AzureActivityLog' festlegen.

    Screenshot der Konfiguration der Datenquellen – Api

  2. Kopieren Sie den Namen der Verbindung, die Sie deaktivieren möchten, aus der API-Antwort.

    Ein Screenshot, der die Verbindungsinformationen zeigt, die Sie aus der Ausgabe der API

  3. Verwenden Sie die Datenquellen – API löschen, um das Sammeln von Aktivitätsprotokollen für die jeweilige Ressource zu beenden.

    Screenshot der Konfiguration der Datenquellen – API löschen.

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, wenn wir beenden, neue Erstellungen von Protokollprofilen zuzulassen.

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.

  1. Ermitteln Sie mithilfe von Get-AzLogProfile, ob ein Protokollprofil vorhanden ist. Wenn ein Protokollprofil vorhanden ist, notieren Sie sich die Eigenschaft Name.

  2. Verwenden Sie Remove-AzLogProfile, um das Protokollprofil mithilfe des Werts aus der Eigenschaft Name zu entfernen.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. 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
    
    Eigentum Erforderlich BESCHREIBUNG
    Name Ja Name des Protokollprofils.
    Speicherkonto-ID 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.
    AufbewahrungsdauerInTagen 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.
    Kategorie 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>"
$storageAccountName = "<Storage Account name>"

# 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 Alter Log Analytics-Spaltenname
(veraltet)
Name der neuen Log Analytics-Spalte Hinweise
Kategorie Kategorie KategorieWert
Status

Werte sind success, start, , acceptfailure
Aktivitätsstatus

Mit JSON identische Werte
Aktivitätsstatuswert

Werte ändern sich in succeeded, , startedaccepted, failed
Die gültigen Werte ändern sich wie gezeigt.
subStatus ActivitySubstatus ActivitySubstatusValue
Betriebsname Vorgangsname OperationNameValue Die REST-API lokalisiert den Wert des Vorgangsnamens. Die Log Analytics-Benutzeroberfläche zeigt immer Englisch an.
RessourcenanbieterName Ressourcenanbieter RessourcenanbieterWert

Von Bedeutung

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 zu: