Wysyłanie danych dziennika 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. W tym artykule opisano ustawienie diagnostyczne wymagane dla każdego zasobu platformy Azure do wysyłania dzienników zasobów do różnych miejsc docelowych.

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 usługi Azure Monitor, gdzie można:

  • Korelowanie danych dziennika zasobów z innymi danymi monitorowania zbieranymi przez usługę Azure Monitor.
  • Skonsoliduj wpisy dziennika z wielu zasobów platformy Azure, subskrypcji i dzierżaw w jedną lokalizację na potrzeby analizy razem.
  • Użyj zapytań dzienników, aby przeprowadzić złożoną analizę i uzyskać szczegółowe informacje na temat danych dziennika.
  • Używaj alertów przeszukiwania dzienników z złożoną logiką alertów.

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

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

Specyficzne dla zasobu

W tym trybie poszczególne tabele w wybranym obszarze roboczym są tworzone dla każdej kategorii wybranej w ustawieniu diagnostycznym. Zalecamy tę metodę, ponieważ:

  • Ułatwia pracę z danymi w zapytaniach dzienników.
  • Zapewnia lepszą możliwość odnajdywania schematów i ich struktury.
  • Poprawia wydajność między opóźnieniami pozyskiwania i czasem wykonywania zapytań.
  • Zapewnia możliwość udzielania praw kontroli dostępu na podstawie ról na platformie Azure w określonej tabeli.

Wszystkie usługi platformy Azure zostaną ostatecznie zmigrowane do trybu specyficznego dla zasobów.

Poniższy przykład tworzy trzy tabele:

  • Tabeli Service1AuditLogs

    Dostawca zasobów Kategoria A B C
    Usługa 1 AuditLogs x1 y1 Z1
    Usługa 1 AuditLogs x5 y5 z5
    ...
  • Tabeli Service1ErrorLogs

    Dostawca zasobów Kategoria D E F
    Usługa 1 Dzienniki błędów Pytanie 1. w1 e1
    Usługa 1 Dzienniki błędów Pytanie 2. w2 e2
    ...
  • Tabeli Service2AuditLogs

    Dostawca zasobów Kategoria G H I
    Usługa 2 AuditLogs j1 k1 l1
    Usługa 2 AuditLogs j3 k3 l3
    ...

Tryb diagnostyki platformy Azure

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

Rozważmy przykład zbierania ustawień diagnostycznych w tym samym obszarze roboczym dla następujących typów danych:

  • Dzienniki inspekcji usługi 1 mają schemat składający się z kolumn A, B i C
  • Dzienniki błędów usługi 1 mają schemat składający się z kolumn D, E i F
  • Dzienniki inspekcji usługi 2 mają schemat składający się z kolumn G, H i I

Tabela AzureDiagnostics wygląda następująco:

ResourceProvider Kategoria A B C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 Z1
Microsoft.Service1 Dzienniki błędów Pytanie 1. w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 Dzienniki błędów Pytanie 2. w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

Wybieranie trybu zbierania

Większość zasobów platformy Azure zapisuje dane w obszarze roboczym w trybie diagnostycznym platformy Azure lub specyficznym dla zasobów bez możliwości wyboru. Aby uzyskać więcej informacji, zobacz Typowe schematy specyficzne dla usługi dla dzienników zasobów platformy Azure.

Wszystkie usługi platformy Azure w końcu będą używać trybu specyficznego dla zasobu. W ramach tego przejścia niektóre zasoby umożliwiają wybranie trybu w ustawieniu diagnostycznym. Określ tryb specyficzny dla zasobów dla wszystkich nowych ustawień diagnostycznych, ponieważ ten tryb ułatwia zarządzanie danymi. Może to również pomóc uniknąć złożonych migracji później.

Screenshot that shows the Diagnostics settings mode selector.

Istniejące ustawienie diagnostyczne można zmodyfikować w trybie specyficznym dla zasobu. W takim przypadku dane, które zostały już zebrane, pozostają w AzureDiagnostics tabeli, dopóki nie zostaną usunięte zgodnie z ustawieniem przechowywania dla obszaru roboczego. Nowe dane są zbierane w dedykowanej tabeli. Użyj operatora unii, aby wykonywać zapytania dotyczące danych w obu tabelach.

Przejdź do bloga azure Aktualizacje, aby zapoznać się z ogłoszeniami dotyczącymi usług platformy Azure, które obsługują tryb specyficzny dla zasobów.

Wysyłanie do usługi Azure Event Hubs

Wysyłanie dzienników zasobów do centrum zdarzeń w celu wysłania ich poza platformę Azure. Na przykład dzienniki zasobów mogą być wysyłane do rozwiązania SIEM innej firmy lub innych rozwiązań do 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 zgodnie z opisem w artykule Common and service-specific schema for Azure resource logs (Schemat specyficzny dla usługi i typ usługi dla dzienników zasobów platformy Azure).

Następujące przykładowe dane wyjściowe pochodzą z usługi Azure Event Hubs dla 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

Wyślij dzienniki zasobów do usługi Azure Storage, aby zachować je do archiwizacji. Po utworzeniu ustawienia diagnostycznego kontener magazynu zostanie utworzony na koncie magazynu zaraz po wystąpieniu zdarzenia w jednej z kategorii dzienników z włączoną obsługą.

Uwaga

Alternatywną strategią archiwizacji jest wysłanie dziennika zasobów do obszaru roboczego usługi Log Analytics z zasadami archiwum.

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

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

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

Uwaga

Dzienniki są zapisywane w obiektach blob na podstawie czasu odebrania dziennika, niezależnie od czasu wygenerowania. Oznacza to, że dany obiekt blob może zawierać dane dziennika, które znajdują się poza godziną określoną w adresie URL obiektu blob. Jeśli źródło danych, takie jak Usługa Application Insights, obsługuje przekazywanie nieaktualnych danych telemetrycznych obiektu blob może zawierać dane z poprzednich 48 godzin.
Na początku nowej godziny istnieje możliwość, że istniejące dzienniki są nadal zapisywane w obiekcie blob poprzedniej godziny, podczas gdy nowe dzienniki są zapisywane w obiekcie blob nowej godziny.

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

Integracje partnerów w usłudze Azure Monitor

Dzienniki zasobów można również wysyłać do rozwiązań partnerskich, które są w pełni zintegrowane z platformą Azure. Aby uzyskać listę tych rozwiązań i szczegółowe informacje na temat ich konfigurowania, zobacz Integracje partnerów usługi Azure Monitor.

Następne kroki