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 takie informacje, jak czas modyfikacji zasobu lub uruchomienia maszyny wirtualnej. Dziennik aktywności można wyświetlić w witrynie Azure Portal lub pobrać jego 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.

Aby uzyskać więcej funkcji, utwórz ustawienie diagnostyczne, aby wysłać dziennik aktywności do co najmniej jednej z tych lokalizacji z następujących powodów:

  • Wysyłanie do dzienników usługi Azure Monitor w celu uzyskania bardziej złożonych zapytań i alertów oraz dłuższego przechowywania do dwunastu lat.
  • Wyślij do usługi Azure Event Hubs, aby przekazywać dalej poza platformę Azure.
  • Wyślij do usługi Azure Storage, aby uzyskać tańsze, długoterminowe archiwizowanie.

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).

Uwaga

  • 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 niezwiązane wpisy powinny być zapisywane w dziennikach zasobów platformy Azure
  • Wpisy w dzienniku aktywności są zwykle wynikiem zmian (operacji tworzenia, aktualizowania lub usuwania) lub zainicjowanej akcji. Operacje skoncentrowane na odczytywaniu szczegółów zasobu nie są zwykle przechwytywane.

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ę na potrzeby analizy razem.
  • 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

Wybierz pozycję Eksportuj dzienniki aktywności, aby wysłać dziennik aktywności do obszaru roboczego usługi Log Analytics.

Screenshot that shows exporting activity logs.

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

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 usługi 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": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
            "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": "00000000-0000-0000-0000-000000000000",
                    "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": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
                    "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 zachować dane dziennika dłużej niż 90 dni na potrzeby inspekcji, analizy statycznej lub 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-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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ść minuty w adresie URL jest zawsze 00 tak, m=00 jak obiekty blob są tworzone na 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/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "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"}}}

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

  • Rozwiązanie dzienników aktywności platformy Azure zostało użyte do przekazywania dzienników aktywności do usługi Azure 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 interfejsu API Źródła danych — wyświetlanie listy według obszaru roboczego i filtrowanie dzienników aktywności przez ustawienie .kind eq 'AzureActivityLog'

    Screenshot showing the configuration of the Data Sources - List By Workspace API.

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

    Screenshot showing the connection information you need to copy from the output of the Data Sources - List By Workspace API.

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

    Screenshot of the configuration of the Data Sources - Delete API.

Zarządzanie starszymi profilami 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, rozważ przejście do ustawień diagnostycznych, 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
    
    Właściwości Wymagania opis
    Nazwa/nazwisko Tak Nazwa profilu dziennika.
    Identyfikator konta magazynu Nie. Identyfikator zasobu konta magazynu, na którym ma zostać zapisany dziennik aktywności.
    serviceBusRuleId 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>"

# 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 zostały 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 Nazwa kolumny usługi Log Analytics
(starsze przestarzałe)
Nowa nazwa kolumny usługi Log Analytics Uwagi
category Kategoria CategoryValue
status

Wartości to powodzenie, rozpoczęcie, zaakceptowanie, niepowodzenie
ActivityStatus

Wartości takie same jak w formacie JSON
ActivityStatusValue

Zmiana wartości na powiodła się, uruchomiona, zaakceptowana, nie powiodła się
Prawidłowe wartości zmieniają się, jak pokazano.
Podstanu ActivitySubstatus ActivitySubstatusValue
operationName OperationName OperationNameValue Interfejs API REST lokalizuje wartość nazwy operacji. Interfejs użytkownika usługi Log Analytics zawsze wyświetla angielski.
resourceProviderName ResourceProvider ResourceProviderValue

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

Następne kroki

Dowiedz się więcej na następujące tematy: