Azure-resourcelogboekgegevens verzenden

Azure-resourcelogboeken zijn platformlogboeken die inzicht bieden in bewerkingen die zijn uitgevoerd binnen een Azure-resource. De inhoud van resourcelogboeken verschilt per Azure-service en resourcetype. Resourcelogboeken worden niet standaard verzameld. In dit artikel wordt de diagnostische instelling beschreven die is vereist voor elke Azure-resource om de resourcelogboeken naar verschillende bestemmingen te verzenden.

Verzenden naar Log Analytics-werkruimte

Resourcelogboeken verzenden naar een Log Analytics-werkruimte om de functies van Azure Monitor-logboeken in te schakelen, waar u het volgende kunt doen:

  • Correleert resourcelogboekgegevens met andere bewakingsgegevens die zijn verzameld door Azure Monitor.
  • Voeg logboekvermeldingen van meerdere Azure-resources, -abonnementen en -tenants samen tot één locatie voor analyse.
  • Gebruik logboekquery's om complexe analyses uit te voeren en uitgebreide inzichten te krijgen in logboekgegevens.
  • Gebruik waarschuwingen voor zoeken in logboeken met complexe waarschuwingslogica.

Maak een diagnostische instelling voor het verzenden van resourcelogboeken naar een Log Analytics-werkruimte. Deze gegevens worden opgeslagen in tabellen, zoals beschreven in structuur van Azure Monitor-logboeken. De tabellen die door resourcelogboeken worden gebruikt, zijn afhankelijk van het type verzameling dat de resource gebruikt:

  • Diagnostische gegevens van Azure: alle gegevens worden naar de tabel AzureDiagnostics geschreven.
  • Resourcespecifiek: gegevens worden naar afzonderlijke tabellen geschreven voor elke categorie van de resource.

Resourcespecifiek

In deze modus worden afzonderlijke tabellen in de geselecteerde werkruimte gemaakt voor elke categorie die is geselecteerd in de diagnostische instelling. We raden deze methode aan omdat deze:

  • Hiermee kunt u eenvoudiger werken met de gegevens in logboekquery's.
  • Biedt een betere zichtbaarheid van schema's en hun structuur.
  • Verbetert de prestaties voor opnamelatentie en querytijden.
  • Biedt de mogelijkheid om op rollen gebaseerd toegangsbeheer van Azure toe te kennen aan een specifieke tabel.

Alle Azure-services worden uiteindelijk gemigreerd naar de resourcespecifieke modus.

In het onderstaande voorbeeld worden drie tabellen gemaakt:

  • Tabel Service1AuditLogs

    Resourceprovider Categorie A B E
    Service 1 AuditLogs x1 y1 Z1
    Service 1 AuditLogs x5 y5 z5
    ...
  • Tabel Service1ErrorLogs

    Resourceprovider Categorie D E F
    Service 1 ErrorLogs q1 w1 e1
    Service 1 ErrorLogs q2 w2 e2
    ...
  • Tabel Service2AuditLogs

    Resourceprovider Categorie G H I
    Service 2 AuditLogs j1 k1 l1
    Service 2 AuditLogs j3 k3 l3
    ...

Diagnostische modus van Azure

In deze modus worden alle gegevens uit een diagnostische instelling verzameld in de tabel AzureDiagnostics . Deze verouderde methode wordt tegenwoordig gebruikt door de meeste Azure-services. Omdat meerdere resourcetypen gegevens naar dezelfde tabel verzenden, is het schema de superset van de schema's van alle verschillende gegevenstypen die worden verzameld. Zie de naslaginformatie over AzureDiagnostics voor meer informatie over de structuur van deze tabel en hoe deze werkt met dit potentieel grote aantal kolommen.

Bekijk een voorbeeld waarin diagnostische instellingen worden verzameld in dezelfde werkruimte voor de volgende gegevenstypen:

  • Auditlogboeken van service 1 hebben een schema dat bestaat uit kolommen A, B en C
  • Foutlogboeken van service 1 hebben een schema dat bestaat uit kolommen D, E en F
  • Auditlogboeken van service 2 hebben een schema dat bestaat uit kolommen G, H en I

De AzureDiagnostics tabel ziet er als volgt uit:

ResourceProvider Categorie A B E 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 q2 w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

De verzamelingsmodus selecteren

De meeste Azure-resources schrijven gegevens naar de werkruimte in de diagnostische of resourcespecifieke modus van Azure zonder u een keuze te geven. Zie Algemene en servicespecifieke schema's voor Azure-resourcelogboeken voor meer informatie.

Alle Azure-services gebruiken uiteindelijk de resourcespecifieke modus. Als onderdeel van deze overgang kunt u met sommige resources een modus selecteren in de diagnostische instelling. Geef de resourcespecifieke modus op voor nieuwe diagnostische instellingen, omdat deze modus de gegevens gemakkelijker te beheren maakt. Het kan ook helpen om complexe migraties later te voorkomen.

Screenshot that shows the Diagnostics settings mode selector.

Notitie

Zie Voorbeelden van Resource Manager-sjablonen voor diagnostische instellingen in Azure Monitor voor een voorbeeld waarmee de verzamelingsmodus wordt ingesteld met behulp van een Azure Resource Manager-sjabloon.

U kunt een bestaande diagnostische instelling wijzigen in de resourcespecifieke modus. In dit geval blijven gegevens die al zijn verzameld in de AzureDiagnostics tabel totdat deze worden verwijderd volgens uw bewaarinstelling voor de werkruimte. Nieuwe gegevens worden verzameld in de toegewezen tabel. Gebruik de samenvoegoperator om query's uit te voeren op gegevens in beide tabellen.

Ga door met het bekijken van het Blog over Azure-updates voor aankondigingen over Azure-services die ondersteuning bieden voor resourcespecifieke modus.

Verzenden naar Azure Event Hubs

Resourcelogboeken verzenden naar een Event Hub om ze buiten Azure te verzenden. Resourcelogboeken kunnen bijvoorbeeld worden verzonden naar een SIEM van derden of andere log analytics-oplossingen. Resourcelogboeken van Event Hubs worden gebruikt in JSON-indeling met een records element dat de records in elke nettolading bevat. Het schema is afhankelijk van het resourcetype zoals beschreven in common en servicespecifiek schema voor Azure-resourcelogboeken.

De volgende voorbeelduitvoergegevens zijn afkomstig van Azure Event Hubs voor een resourcelogboek:

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

Verzenden naar Azure Storage

Verzend resourcelogboeken naar Azure Storage om ze te bewaren voor archivering. Nadat u de diagnostische instelling hebt gemaakt, wordt er een opslagcontainer gemaakt in het opslagaccount zodra er een gebeurtenis plaatsvindt in een van de ingeschakelde logboekcategorieën.

Notitie

Een alternatieve strategie voor archivering is het verzenden van het resourcelogboek naar een Log Analytics-werkruimte met een archiefbeleid.

De blobs in de container gebruiken de volgende naamconventie:

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

De blob voor een netwerkbeveiligingsgroep kan een naam hebben die vergelijkbaar is met dit voorbeeld:

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

Elke PT1H.json blob bevat een JSON-object met gebeurtenissen uit logboekbestanden die zijn ontvangen tijdens het uur dat is opgegeven in de blob-URL. Tijdens het huidige uur worden gebeurtenissen toegevoegd aan het PT1H.json-bestand wanneer ze worden ontvangen, ongeacht wanneer ze zijn gegenereerd. De minuutwaarde in de URL m=00 is altijd 00 als blobs per uur worden gemaakt.

In het PT1H.json-bestand wordt elke gebeurtenis opgeslagen in de volgende indeling. Het maakt gebruik van een algemeen schema op het hoogste niveau, maar is uniek voor elke Azure-service, zoals beschreven in het schema van resourcelogboeken.

Notitie

Logboeken worden naar blobs geschreven op basis van de tijd waarop het logboek is ontvangen, ongeacht de tijd waarop het is gegenereerd. Dit betekent dat een bepaalde blob logboekgegevens kan bevatten die buiten het uur zijn opgegeven in de URL van de blob. Wanneer een gegevensbron zoals Application Insights ondersteuning biedt voor het uploaden van verouderde telemetrie, kan een blob gegevens uit de afgelopen 48 uur bevatten.
Aan het begin van een nieuw uur is het mogelijk dat bestaande logboeken nog steeds naar de blob van het vorige uur worden geschreven terwijl nieuwe logboeken naar de blob van het nieuwe uur worden geschreven.

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

Integraties van Azure Monitor-partner

Resourcelogboeken kunnen ook worden verzonden naar partneroplossingen die volledig zijn geïntegreerd in Azure. Zie Azure Monitor-partnerintegraties voor een lijst met deze oplossingen en details over het configureren ervan.

Volgende stappen