Dzienniki zasobów platformy Azure

Dzienniki zasobów platformy Azure to dzienniki platformy , które zapewniają wgląd w operacje wykonywane w zasobie platformy Azure. Zawartość dzienników zasobów różni się w zależności od typu usługi platformy Azure i zasobu. Dzienniki zasobów nie są domyślnie zbierane. 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:

  • Skorelowanie danych dziennika zasobów z innymi danymi monitorowania zebranymi 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 wykonać złożoną analizę i uzyskać szczegółowe informacje na temat danych dzienników.
  • Używaj alertów 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 dziennika.
  • Zapewnia lepszą możliwość odnajdywania schematów i ich struktury.
  • Zwiększa wydajność między opóźnieniami pozyskiwania i czasem wykonywania zapytań.
  • Zapewnia możliwość udzielania praw kontroli dostępu na podstawie ról platformy Azure w określonej tabeli.

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

Powyższy przykład tworzy trzy tabele:

  • Tabeli Service1AuditLogs

    Dostawca zasobów Kategoria A B C
    Service1 AuditLogs x1 y1 Z1
    Service1 AuditLogs x5 y5 z5
    ...
  • Tabeli Service1ErrorLogs

    Dostawca zasobów Kategoria D E F
    Service1 Dzienniki błędów Q1 w1 e1
    Service1 Dzienniki błędów q2 w2 e2
    ...
  • Tabeli Service2AuditLogs

    Dostawca zasobów Kategoria G H I
    Service2 AuditLogs j1 k1 l1
    Service2 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 usługi AzureDiagnostics).

Rozważmy 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 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 Q1 w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 Dzienniki błędów q2 w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

Wybieranie trybu kolekcji

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 ostatecznie używają 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 również pomóc uniknąć złożonych migracji później.

Screenshot that shows the Diagnostics settings mode selector.

Uwaga

Aby zapoznać się z przykładem ustawiającym tryb zbierania przy użyciu szablonu usługi Azure Resource Manager, zobacz Resource Manager przykłady szablonów dla ustawień diagnostycznych w usłudze Azure Monitor.

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 o dane w obu tabelach.

Kontynuuj oglądanie bloga usługi Azure Aktualizacje, aby zapoznać się z ogłoszeniami dotyczącymi usług platformy Azure, które obsługują tryb specyficzny dla zasobów.

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 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 dla dzienników zasobów platformy Azure).

Następujące przykładowe dane wyjściowe pochodzą z 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 blob JSON zdarzeń, 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) jest zawsze 00, ponieważ zdarzenia dziennika zasobów są podzielone na pojedyncze obiekty blob na godzinę.

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

Uwaga

Dzienniki są zapisywane w obiekcie blob odpowiadającym czasowi wygenerowania dziennika, a nie czasie jego odebrania. Dlatego na przełomie godziny zarówno poprzedniej godziny, jak i bieżące godziny obiekty blob mogą otrzymywać nowe zapisy.

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