Azure-resourcelogboeken

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 vereist is 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:

  • Resourcelogboekgegevens correleren met andere bewakingsgegevens die worden 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 verkrijgen in logboekgegevens.
  • Gebruik logboekwaarschuwingen met complexe waarschuwingslogica.

Maak een diagnostische instelling om resourcelogboeken naar een Log Analytics-werkruimte te verzenden. 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 voor elke categorie van de resource naar afzonderlijke tabellen geschreven.

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:

  • Maakt het gemakkelijker om met de gegevens in logboekquery's te werken.
  • Biedt betere vindbaarheid van schema's en hun structuur.
  • Verbetert de prestaties van 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 voorgaande voorbeeld worden drie tabellen gemaakt:

  • Tabel Service1AuditLogs

    Resourceprovider Categorie A B C
    Service1 AuditLogs x1 y1 Z1
    Service1 AuditLogs x5 y5 z5
    ...
  • Tabel Service1ErrorLogs

    Resourceprovider Categorie D E F
    Service1 Foutenlogboeken Q1 w1 e1
    Service1 Foutenlogboeken q2 w2 e2
    ...
  • Tabel Service2AuditLogs

    Resourceprovider Categorie G H I
    Service2 AuditLogs j1 k1 l1
    Service2 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 momenteel gebruikt door de meeste Azure-services. Omdat meerdere resourcetypen gegevens naar dezelfde tabel verzenden, is het bijbehorende 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 waarbij 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 C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 Z1
Microsoft.Service1 Foutenlogboeken Q1 w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 Foutenlogboeken 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 modus van Azure of resourcespecifieke modus zonder u een keuze te geven. Zie Common- 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 Resource Manager sjabloonvoorbeelden voor diagnostische instellingen in Azure Monitor voor een voorbeeld waarin 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 in de AzureDiagnostics tabel zijn verzameld, bewaard totdat deze worden verwijderd volgens uw bewaarinstelling voor de werkruimte. Er worden nieuwe gegevens verzameld in de toegewezen tabel. Gebruik de samenvoegoperator om gegevens in beide tabellen op te vragen.

Ga door met het bekijken van de Azure Updates blog voor aankondigingen over Azure-services die ondersteuning bieden voor de 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 in JSON-indeling gebruikt 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 uit 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

Resourcelogboeken verzenden 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-blob met gebeurtenissen die zijn opgetreden binnen het uur dat is opgegeven in de blob-URL, bijvoorbeeld h=12. Tijdens het huidige uur worden gebeurtenissen toegevoegd aan het bestand PT1H.json wanneer deze zich voordoen. De minuutwaarde (m=00) is altijd 00 omdat resourcelogboekgebeurtenissen per uur worden opgesplitst in afzonderlijke blobs.

In het BESTAND PT1H.json 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 geschreven naar de blob die relevant is voor het tijdstip waarop het logboek is gegenereerd, niet de tijd waarop het is ontvangen. Dus aan de beurt van het uur kunnen zowel het vorige uur als de huidige uur-blobs nieuwe schrijfbewerkingen ontvangen.

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