Dzienniki zasobów platformy Azure

Dzienniki zasobów platformy Azure to dzienniki platformy, które zapewniają wgląd w operacje, które zostały wykonane w ramach zasobu platformy Azure. Zawartość dzienników zasobów różni się w zależności od usługi platformy Azure i typu zasobu. Dzienniki zasobów nie są zbierane domyślnie. Musisz utworzyć ustawienie diagnostyczne dla każdego zasobu platformy Azure, aby wysyłać dzienniki zasobów do obszaru roboczego usługi Log Analytics w celu użycia z dziennikami usługi Azure Monitor,usługą Azure Event Hubs w celu przekazywania dalej poza platformę Azure lub do usługi Azure Storage w celu archiwizacji.

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) i Deploy Azure Monitor at scale using Azure Policy (Wdrażanie usługi Azure Monitor na dużą skalę przy użyciu usługi Azure Policy), aby uzyskać szczegółowe informacje na temat korzystania z usługi Azure Policy w celu automatycznego utworzenia ustawienia diagnostycznego dla każdego tworzonego zasobu platformy Azure.

Wysyłanie do obszaru roboczego usługi Log Analytics

Wysyłanie dzienników zasobów do obszaru roboczego usługi Log Analytics w celu włączenia funkcji dzienników Azure Monitor, które obejmują następujące elementy:

  • Korelowanie danych dziennika zasobów z innymi danymi monitorowania zebranymi przez Azure Monitor.
  • Konsoliduj wpisy dziennika z wielu zasobów, subskrypcji i dzierżaw platformy Azure w jednej lokalizacji do wspólnej analizy.
  • Zapytania dzienników są wykorzystywane do wykonywania złożonych analiz i szczegółowego wglądu w dane dziennika.
  • Używaj alertów dzienników ze złożoną logiką alertów.

Utwórz ustawienie diagnostyczne w celu wysyłania dzienników zasobów do obszaru roboczego usługi Log Analytics. Te dane są przechowywane w tabelach zgodnie z opisem w części Struktura Azure Monitor Logs. Tabele używane przez dzienniki zasobów zależą od typu kolekcji używanej przez zasób:

  • Diagnostyka Azure — wszystkie zapisane dane są zapisywane w tabeli AzureDiagnostics.
  • Specyficzne dla zasobu — dane są zapisywane w poszczególnych tabelach dla każdej kategorii zasobu.

Tryb diagnostyki platformy Azure

W tym trybie wszystkie dane z dowolnego ustawienia diagnostycznego będą zbierane w tabeli AzureDiagnostics. Jest to starsza metoda używana obecnie przez większość usług platformy Azure. Ponieważ wiele typów zasobów wysyła dane do tej samej tabeli, jej schemat jest nazłobem schematów wszystkich zbieranych typów danych. Aby uzyskać szczegółowe informacje na temat struktury tej tabeli i sposobu jej działania z potencjalnie dużą liczbą kolumn, zobacz AzureDiagnostics reference (Informacje o usłudze AzureDiagnostics).

Rozważmy następujący przykład, w którym ustawienia diagnostyczne są zbierane w tym samym obszarze roboczym dla następujących typów danych:

  • Dzienniki inspekcji usługi 1 (ze schematem składającym się z kolumn A, B i C)
  • Dzienniki błędów usługi 1 (ze schematem składającym się z kolumn D, E i F)
  • Dzienniki inspekcji usługi 2 (ze schematem składającym się z kolumn G, H i I)

Tabela AzureDiagnostics będzie wyglądać następująco:

ResourceProvider Kategoria A B C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 Z1
Microsoft.Service1 ErrorLogs Q1 w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 ErrorLogs kw. 2 w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

Specyficzne dla zasobów

W tym trybie poszczególne tabele w wybranym obszarze roboczym są tworzone dla każdej kategorii wybranej w ustawieniu diagnostycznym. Ta metoda jest zalecana, ponieważ znacznie ułatwia pracę z danymi w zapytaniach dzienników, zapewnia lepszą wykrywalność schematów i ich struktury, poprawia wydajność zarówno w przypadku opóźnień pozyskiwania, jak i czasów wykonywania zapytań, a także możliwość przyznawania praw RBAC platformy Azure do określonej tabeli. Wszystkie usługi platformy Azure zostaną ostatecznie zmigrowane do trybu Resource-Specific wirtualnego.

W powyższym przykładzie tworzone są trzy tabele:

  • Table Service1AuditLogs w następujący sposób:

    Dostawca zasobów Kategoria A B C
    Service1 AuditLogs x1 y1 Z1
    Service1 AuditLogs x5 y5 z5
    ...
  • Table Service1ErrorLogs w następujący sposób:

    Dostawca zasobów Kategoria D E F
    Service1 ErrorLogs Q1 w1 e1
    Service1 ErrorLogs (Błędy) 2. kwartał w2 e2
    ...
  • Table Service2AuditLogs w następujący sposób:

    Dostawca zasobów Kategoria G H I
    Service2 AuditLogs (Dziennik inspekcji) j1 k1 l1
    Service2 AuditLogs (Dziennik inspekcji) j3 k3 l3
    ...

Wybieranie trybu kolekcji

Większość zasobów platformy Azure będzie zapisywać dane w obszarze roboczym w trybie diagnostyki platformy Azure lub specyficznym dla zasobów bez możliwości wyboru. Szczegółowe informacje na temat używanego trybu można znaleźć w dokumentacji poszczególnych usług. Wszystkie usługi platformy Azure będą ostatecznie używać Resource-Specific trybu. W ramach tego przejścia niektóre zasoby umożliwią wybranie trybu w ustawieniu diagnostycznym. Określ tryb specyficzny dla zasobu dla nowych ustawień diagnostycznych, ponieważ ułatwia to zarządzanie danymi i może pomóc uniknąć złożonych migracji w późniejszym terminie.

Selektor trybu Ustawienia diagnostyki

Uwaga

Przykładowe ustawienie trybu zbierania przy użyciu szablonu usługi Resource Manager można znaleźć w Resource Manager przykładówszablonów dla ustawień diagnostycznych w Azure Monitor .

Istniejące ustawienie diagnostyczne można zmodyfikować w trybie specyficznym dla zasobów. W takim przypadku dane, które zostały już zebrane, pozostaną w tabeli AzureDiagnostics do momentu ich usunięcia zgodnie z ustawieniem przechowywania dla obszaru roboczego. Nowe dane będą zbierane w dedykowanej tabeli. Użyj operatora union, aby odpytować dane w obu tabelach.

Kontynuuj oglądanie bloga Azure Updates, aby uzyskać ogłoszenia o usługach platformy Azure Resource-Specific trybie online.

Wyślij do Azure Event Hubs

Wysyłanie dzienników zasobów do centrum zdarzeń w celu wysłania ich poza platformę Azure, na przykład do rozwiązania SIEM innej firmy lub innych rozwiązań analizy dzienników. Dzienniki zasobów z centrów zdarzeń są używane w formacie JSON z elementem zawierającym records rekordy w każdym ładunku. Schemat zależy od typu zasobu, jak opisano w tece Common and service-specific schema for Azure Resource Logs(Wspólny i specyficzny dla usługi schemat dzienników zasobów platformy Azure).

Poniżej przedstawiono przykładowe dane wyjściowe Event Hubs dziennika zasobów:

{
    "records": [
        {
            "time": "2019-07-15T18:00:22.6235064Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330013509921957",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "29a9862f-969b-4c70-90c4-dfbdc814e413",
                    "clientTrackingId": "08587330013509921958"
                }
            }
        },
        {
            "time": "2019-07-15T18:01:15.7532989Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330012106702630",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "042fb72c-7bd4-439e-89eb-3cf4409d429e",
                    "clientTrackingId": "08587330012106702632"
                }
            }
        }
    ]
}

Wysyłanie do usługi Azure Storage

Wysyłanie dzienników zasobów do usługi Azure Storage w celu zachowania ich w celu archiwizacji. Po utworzeniu ustawienia diagnostycznego kontener magazynu jest tworzony na koncie magazynu natychmiast po zdarzeniu w jednej z włączonych kategorii dzienników. Obiekty blob w kontenerze używają następującej konwencji nazewnictwa:

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

Na przykład obiekt blob dla sieciowej grupy zabezpieczeń może mieć nazwę podobną do następującej:

insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUP/TESTNSG/y=2016/m=08/d=22/h=18/m=00/PT1H.json

Każdy obiekt blob PT1H.json zawiera obiekt blob JSON ze zdarzeniami, które wystąpiły w ciągu godziny określonej w adresie URL obiektu blob (na przykład h = 12). Zdarzenia występujące w danej chwili są na bieżąco dołączane do pliku PT1H.json. Wartość minuty (m=00) to zawsze 00, ponieważ zdarzenia dziennika zasobów są podzielone na poszczególne obiekty blob na godzinę.

W pliku PT1H.json każde zdarzenie jest przechowywane w następującym formacie. Użyje on wspólnego schematu najwyższego poziomu, ale będzie unikatowy dla każdej usługi platformy Azure, zgodnie z opisem w schemacie dzienników zasobów.

{"time": "2016-07-01T00:00:37.2040000Z","systemId": "46cdbb41-cb9c-4f3d-a5b4-1d458d827ff1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/s1id1234-5679-0123-4567-890123456789/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{12345678-9012-3456-7890-123456789012}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/ s1id1234-5679-0123-4567-890123456789/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}

Uwaga

Dzienniki platformy są zapisywane w magazynie obiektów blob przy użyciu wierszy JSON,gdzie każde zdarzenie jest wierszem, a znak nowego wiersza wskazuje nowe zdarzenie. Ten format został zaimplementowany w listopadzie 2018 r. Przed tą datą dzienniki były zapisywane w magazynie obiektów blob jako tablica rekordów JSON zgodnie z opisem w temacie Prepare for format change to Azure Monitor platform logs archived to a storage account(Przygotowanie do zmiany formatu na dzienniki platformy Azure Monitor zarchiwizowane na koncie magazynu).

Następne kroki