Udostępnij za pośrednictwem


Wysyłanie danych dziennika aktywności usługi Azure Monitor

Dziennik aktywności usługi Azure Monitor to dziennik platformy, który zapewnia wgląd w zdarzenia na poziomie subskrypcji. Dziennik aktywności zawiera informacje, takie jak w przypadku modyfikacji zasobu lub wystąpienia błędu wdrożenia. Dziennik aktywności można wyświetlić w witrynie Azure Portal lub pobrać wpisy za pomocą programu PowerShell i interfejsu wiersza polecenia platformy Azure.

Ten artykuł zawiera informacje na temat sposobu wyświetlania dziennika aktywności i wysyłania go do różnych miejsc docelowych.

Uwaga / Notatka

  • Wpisy w dzienniku aktywności są generowane przez system i nie można ich zmienić ani usunąć.
  • Wpisy w dzienniku aktywności reprezentują zmiany płaszczyzny sterowania, takie jak ponowne uruchomienie maszyny wirtualnej, wszystkie nierelowane wpisy powinny być zapisywane w dziennikach zasobów platformy Azure
  • Wpisy w dzienniku aktywności są zazwyczaj wynikiem zmian (tworzenia, aktualizowania lub usuwania) lub zainicjowania akcji. Operacje skoncentrowane na odczytywaniu szczegółów zasobu nie są zwykle przechwytywane.

Wskazówka

Jeśli został przekierowany do tego artykułu z błędu operacji wdrażania, zobacz Rozwiązywanie typowych błędów wdrażania platformy Azure.

Eksportowanie dzienników aktywności

  1. Przejdź dodziennika aktywności> i wybierz pozycję Eksportuj dzienniki aktywności.

    Zrzut ekranu przedstawiający sposób uzyskiwania dzienników aktywności.

    Uwaga / Notatka

    Dziennik aktywności można wysłać z dowolnej subskrypcji do maksymalnie pięciu obszarów roboczych.

  2. Dodaj ustawienie diagnostyczne , aby wysyłać dzienniki aktywności do co najmniej jednej z następujących lokalizacji:

    Zrzut ekranu przedstawiający dodawanie ustawienia diagnostycznego.

    Aby uzyskać szczegółowe informacje na temat tworzenia ustawienia diagnostycznego, zobacz Create diagnostic settings to send platform logs and metrics to different destinations (Tworzenie ustawień diagnostycznych w celu wysyłania dzienników i metryk platformy do różnych miejsc docelowych).

    Wskazówka

    Wyślij dane dziennika aktywności do obszaru roboczego usługi Log Analytics, aby uzyskać następujące korzyści:

Wysyłanie do obszaru roboczego usługi Log Analytics

Wyślij dziennik aktywności do obszaru roboczego usługi Log Analytics, aby włączyć funkcję Dzienniki usługi Azure Monitor, w której:

  • Korelowanie danych dziennika aktywności z innymi danymi monitorowania zebranymi przez usługę Azure Monitor.
  • Skonsoliduj wpisy dziennika z wielu subskrypcji i dzierżaw platformy Azure w jedną lokalizację do wspólnej analizy.
  • Użyj zapytań dziennika do wykonywania złożonej analizy i uzyskiwania szczegółowych informacji na temat wpisów dziennika aktywności.
  • Użyj alertów przeszukiwania dzienników z wpisami działań, aby uzyskać bardziej złożoną logikę alertów.
  • Przechowuj wpisy dziennika aktywności dłużej niż okres przechowywania dziennika aktywności.
  • Nie naliczaj opłat za pozyskiwanie danych ani przechowywanie danych dziennika aktywności przechowywanych w obszarze roboczym usługi Log Analytics.
  • Domyślny okres przechowywania w usłudze Log Analytics wynosi 90 dni.

Dane dziennika aktywności w obszarze roboczym usługi Log Analytics są przechowywane w tabeli o nazwie AzureActivity , którą można pobrać za pomocą zapytania dziennika w usłudze Log Analytics. Struktura tej tabeli różni się w zależności od kategorii wpisu dziennika. Opis właściwości tabeli można znaleźć w dokumentacji dotyczącej danych usługi Azure Monitor.

Aby na przykład wyświetlić liczbę rekordów dziennika aktywności dla każdej kategorii, użyj następującego zapytania:

AzureActivity
| summarize count() by CategoryValue

Aby pobrać wszystkie rekordy w kategorii administracyjnej, użyj następującego zapytania:

AzureActivity
| where CategoryValue == "Administrative"

Ważne

W niektórych scenariuszach możliwe jest, że wartości w polach usługi AzureActivity mogą mieć różne wielkości liter niż w przeciwnym razie równoważne wartości. Podczas wykonywania zapytań dotyczących danych w usłudze AzureActivity należy używać operatorów bez uwzględniania wielkości liter na potrzeby porównań ciągów lub użyć funkcji skalarnej, aby wymusić użycie pola do jednolitej wielkości liter przed wszelkimi porównaniami. Na przykład użyj funkcji tolower() w polu, aby wymusić, że będzie ona zawsze małą literą lub operatorem =~ podczas porównywania ciągów.

Wysyłanie do Azure Event Hubs

Wyślij dziennik aktywności do usługi Azure Event Hubs, aby wysyłać wpisy spoza platformy Azure, na przykład do rozwiązania SIEM innej firmy lub innych rozwiązań do analizy dzienników. Zdarzenia dziennika aktywności z centrów zdarzeń są używane w formacie JSON z elementem zawierającym records rekordy w każdym ładunku. Schemat zależy od kategorii i jest opisany w schemacie zdarzeń dziennika aktywności platformy Azure.

Następujące przykładowe dane wyjściowe pochodzą z centrów zdarzeń dla dziennika aktywności:

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

Wysyłanie do usługi Azure Storage

Wyślij dziennik aktywności do konta usługi Azure Storage, jeśli chcesz przechowywać dane dziennika dłużej niż 90 dni na potrzeby inspekcji, analizy statycznej lub tworzenia kopii zapasowej. Jeśli musisz zachować zdarzenia przez 90 dni lub mniej, nie musisz konfigurować archiwizacji na koncie magazynu. Zdarzenia dziennika aktywności są zachowywane na platformie Azure przez 90 dni.

Po wysłaniu dziennika aktywności na platformę Azure kontener magazynu jest tworzony na koncie magazynu natychmiast po wystąpieniu zdarzenia. Obiekty blob w kontenerze używają następującej konwencji nazewnictwa:

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

Na przykład określony obiekt blob może mieć nazwę podobną do:

insights-activity-logs/resourceId=/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/y=2020/m=06/d=08/h=18/m=00/PT1H.json

Każdy obiekt blob PT1H.json zawiera obiekt JSON ze zdarzeniami z plików dziennika, które zostały odebrane w ciągu godziny określonej w adresie URL obiektu blob. W ciągu obecnej godziny zdarzenia są dołączane do pliku PT1H.json podczas ich odbierania, niezależnie od tego, kiedy zostały wygenerowane. Wartość minutowa w adresie URL, m=00 jest zawsze 00, ponieważ obiekty blob są tworzone co godzinę.

Każde zdarzenie jest przechowywane w pliku PT1H.json o następującym formacie. Ten format używa wspólnego schematu najwyższego poziomu, ale w przeciwnym razie jest unikatowy dla każdej kategorii, zgodnie z opisem w schemacie dziennika aktywności.

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

Eksportuj do pliku CSV

Wybierz pozycję Pobierz jako plik CSV , aby wyeksportować dziennik aktywności do pliku CSV przy użyciu witryny Azure Portal.

Zrzut ekranu przedstawiający opcję eksportowania do pliku CSV.

Ważne

Eksportowanie może zająć zbyt dużo czasu, jeśli masz dużą liczbę wpisów dziennika. Aby zwiększyć wydajność, zmniejsz zakres czasu eksportu. W portalu Azure jest ustawiane za pomocą ustawienia Przedział czasu.

Dziennik aktywności można również wyeksportować do pliku CSV przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure, jak pokazano w poniższych przykładach.

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

Poniższy przykładowy skrypt programu PowerShell eksportuje dziennik aktywności do plików CSV w ciągu jednej godziny, z których każdy jest zapisywany w osobnym pliku.

# 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."

Inne metody pobierania zdarzeń dziennika aktywności

Dostęp do zdarzeń dziennika aktywności można również uzyskać przy użyciu następujących metod:

Starsze metody kolekcji

Uwaga / Notatka

Rozwiązanie Dziennik aktywności platformy Azure zostało użyte do przekazywania dzienników aktywności do usługi Log Analytics. To rozwiązanie zostanie wycofane 15 września 2026 r. i zostanie automatycznie przekonwertowane na ustawienia diagnostyczne.

Jeśli zbierasz dzienniki aktywności przy użyciu starszej metody zbierania, zalecamy wyeksportowanie dzienników aktywności do obszaru roboczego usługi Log Analytics i wyłączenie starszej kolekcji przy użyciu źródła danych — usuń interfejs API w następujący sposób:

  1. Wyświetl listę wszystkich źródeł danych połączonych z obszarem roboczym przy użyciu Data Sources - List By Workspace API i filtruj dzienniki aktywności, ustawiając kind eq 'AzureActivityLog'.

    Zrzut ekranu przedstawiający konfigurację interfejsu API Źródła danych — lista według obszaru roboczego.

  2. Skopiuj nazwę połączenia, które chcesz wyłączyć z odpowiedzi interfejsu API.

    Zrzut ekranu przedstawiający informacje o połączeniu, które należy skopiować z danych wyjściowych API Źródła danych – Lista według obszaru roboczego.

  3. Użyj interfejsu API Usuń - Źródła danych, aby zatrzymać zbieranie dzienników aktywności dla określonego zasobu.

    Zrzut ekranu przedstawiający konfigurację źródła danych — usuwanie interfejsu API.

Zarządzanie dziedzicznymi profilami dzienników (wycofywane)

Uwaga / Notatka

  • Profile dzienników były używane do przekazywania dzienników aktywności do kont magazynu i usługi Event Hubs. Ta metoda jest wycofywana 15 września 2026 r.
  • Jeśli używasz tej metody, przejdź do ustawień diagnostycznych przed 15 września 2025 r., kiedy przestaniemy zezwalać na tworzenie nowych profilów dzienników.

Profile dzienników to starsza metoda wysyłania dziennika aktywności do magazynu lub centrów zdarzeń. Jeśli używasz tej metody, przejdź do obszaru Ustawienia diagnostyczne, które zapewniają lepszą funkcjonalność i spójność z dziennikami zasobów.

Jeśli profil dziennika już istnieje, musisz najpierw usunąć istniejący profil dziennika, a następnie utworzyć nowy.

  1. Użyj Get-AzLogProfile polecenia , aby określić, czy istnieje profil dziennika. Jeśli profil dziennika istnieje, zanotuj Name właściwość .

  2. Użyj polecenia Remove-AzLogProfile , aby usunąć profil dziennika przy użyciu wartości z Name właściwości .

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. Użyj Add-AzLogProfile polecenia , aby utworzyć nowy profil dziennika:

    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
    
    Majątek Wymagane Opis
    Nazwa Tak Nazwa profilu dziennika.
    Id konta przechowywania Nie. Identyfikator zasobu konta magazynu, na którym ma zostać zapisany dziennik aktywności.
    IdentyfikatorRegułyUsługiBus Nie. Identyfikator reguły usługi Service Bus dla przestrzeni nazw usługi Service Bus, w której chcesz utworzyć centra zdarzeń. Ten ciąg ma format {service bus resource ID}/authorizationrules/{key name}.
    Lokalizacja Tak Rozdzielona przecinkami lista regionów, dla których chcesz zbierać zdarzenia dziennika aktywności.
    RetentionInDays Tak Liczba dni przechowywania zdarzeń na koncie magazynu z zakresu od 1 do 365. Wartość zero przechowuje dzienniki w nieskończoność.
    Kategoria Nie. Rozdzielona przecinkami lista kategorii zdarzeń do zebrania. Możliwe wartości to Write, Delete i Action.

Przykładowy skrypt

Ten przykładowy skrypt programu PowerShell tworzy profil dziennika, który zapisuje dziennik aktywności zarówno na koncie magazynu, jak i w centrum zdarzeń.

# 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

Zmiany struktury danych

Środowisko Eksportowanie dzienników aktywności wysyła te same dane co starsza metoda używana do wysyłania dziennika aktywności z pewnymi zmianami w strukturze AzureActivity tabeli.

Kolumny w poniższej tabeli są przestarzałe w zaktualizowanym schemacie. Nadal istnieją w systemie AzureActivity, ale nie mają żadnych danych. Zamiany tych kolumn nie są nowe, ale zawierają te same dane co przestarzała kolumna. Są one w innym formacie, więc może być konieczne zmodyfikowanie zapytań dziennika, które ich używają.

Dane JSON dziennika aktywności Stara nazwa kolumny usługi Log Analytics
(przestarzałe)
Nowa nazwa kolumny usługi Log Analytics Notatki
kategoria Kategoria Wartość kategorii
stan

Wartości to success, start, accept, failure
Status Aktywności

Wartości takie same jak w formacie JSON
WartośćStatusuDziałań

Wartości zmieniają się na succeeded, started, accepted, failed
Prawidłowe wartości zmieniają się, jak pokazano.
podstatus Podstatus Aktywności WartośćPodstanuAktywności
nazwa operacji Nazwa operacji WartośćNazwyOperacji Interfejs API REST lokalizuje wartość nazwy operacji. Interfejs użytkownika usługi Log Analytics zawsze wyświetla angielski.
NazwaDostawcyZasobów Dostawca zasobów WartośćDostawcyZasobu

Ważne

W niektórych przypadkach wartości w tych kolumnach mogą być wielkie. Jeśli masz zapytanie zawierające te kolumny, użyj operatora =~ , aby wykonać porównanie bez uwzględniania wielkości liter.

W zaktualizowanym schemacie dodano AzureActivity następujące kolumny:

  • Authorization_d
  • Claims_d
  • Properties_d

Dalsze kroki

Dowiedz się więcej o: