Zelfstudie: Bewakingsgegevens opnemen en opvragen in Azure Data Explorer
In deze zelfstudie leert u hoe u zonder code te schrijven gegevens uit diagnostische logboeken en activiteitenlogboeken in een Azure Data Explorer-cluster kunt opnemen. Met deze eenvoudige methode voor gegevensopname kunt u snel beginnen met het uitvoeren van query's voor Azure Data Explorer om gegevens te analyseren.
In deze zelfstudie leert u het volgende:
- Maak tabellen en toewijzing van opname in een Azure Data Explorer-database.
- Maak de opgenomen gegevens op met behulp van updatebeleid.
- Maak een Event Hub en verbind deze met Azure Data Explorer.
- Gegevens streamen naar een Event Hub vanuit diagnostische metrische gegevens en logboeken enactiviteitenlogboeken van Azure Monitor.
- Vraag de opgenomen gegevens op met behulp van Azure Data Explorer.
Notitie
Maak alle resources in dezelfde Azure-locatie of -regio.
Vereisten
- Een Azure-abonnement. Maak een gratis Azure-account.
- Een Azure Data Explorer-cluster en -database. Maak een cluster en database. In deze zelfstudie is TestDatabase de databasenaam.
Azure Monitor-gegevensprovider: diagnostische metrische gegevens en logboeken en activiteitenlogboeken
Bekijk en begrijp de gegevens van de diagnostische metrische gegevens en logboeken en activiteitenlogboeken van Azure Monitor hieronder. U maakt een opnamepijplijn op basis van deze gegevensschema's. Houd er rekening mee dat elke gebeurtenis in een logboek een matrix met records heeft. Deze matrix met records wordt verderop in de zelfstudie gesplitst.
Voorbeelden van diagnostische metrische gegevens en logboeken en activiteitenlogboeken
Diagnostische metrische gegevens en logboeken en activiteitenlogboeken van Azure worden verzonden door een Azure-service en bieden gegevens over de werking van die service.
Voorbeeld van diagnostische metrische gegevens
Diagnostische metrische gegevens worden geaggregeerd met een tijdsinterval van 1 minuut. Hieronder volgt een voorbeeld van een Azure Data Explorer schema voor metrische gebeurtenissen voor de duur van de query:
{
"records": [
{
"count": 14,
"total": 0,
"minimum": 0,
"maximum": 0,
"average": 0,
"resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
"time": "2018-12-20T17:00:00.0000000Z",
"metricName": "QueryDuration",
"timeGrain": "PT1M"
},
{
"count": 12,
"total": 0,
"minimum": 0,
"maximum": 0,
"average": 0,
"resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
"time": "2018-12-21T17:00:00.0000000Z",
"metricName": "QueryDuration",
"timeGrain": "PT1M"
}
]
}
Een opnamepijplijn instellen in Azure Data Explorer
Het instellen van een Azure Data Explorer-pijplijn omvat verschillende stappen, zoals het maken van een tabel en gegevensopname. U kunt de gegevens ook bewerken, toewijzen en bijwerken.
Verbinding maken met de webinterface van Azure Data Explorer
Selecteer Query in uw Azure Data Explorer TestDatabase-database om de webinterface van Azure Data Explorer te openen.
De doeltabellen maken
De structuur van de Azure Monitor-logboeken is niet in tabelvorm. U bewerkt de gegevens en vouwt elke gebeurtenis uit naar een of meer records. De onbewerkte gegevens worden opgenomen in een tussenliggende tabel met de naam ActivityLogsRawRecords voor activiteitenlogboeken en DiagnosticRawRecords voor diagnostische metrische gegevens en logboeken. Dat is het moment waarop de gegevens worden bewerkt en uitgebreid. Met behulp van een updatebeleid worden de uitgebreide gegevens vervolgens opgenomen in de tabel ActivityLogs voor activiteitenlogboeken , DiagnosticMetrics voor diagnostische metrische gegevens en DiagnosticLogs voor diagnostische logboeken. Dit betekent dat u twee afzonderlijke tabellen moet maken voor het opnemen van activiteitenlogboeken en drie afzonderlijke tabellen voor het opnemen van diagnostische metrische gegevens en logboeken.
Gebruik de webinterface van Azure Data Explorer om de doeltabellen te maken in de Azure Data Explorer-database.
Tabellen maken voor de diagnostische metrische gegevens
Maak in de TestDatabase-database een tabel met de naam DiagnosticMetrics om de records voor diagnostische metrische gegevens op te slaan. Gebruik de volgende
.create table
beheeropdracht:.create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
Selecteer Uitvoeren om de tabel te maken.
Maak de tussenliggende gegevenstabel met de naam DiagnosticRawRecords in de TestDatabase-database voor gegevensmanipulatie met behulp van de volgende query. Selecteer Uitvoeren om de tabel te maken.
.create table DiagnosticRawRecords (Records:dynamic)
Bewaarbeleid voor nul instellen voor de tussenliggende tabel:
.alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
Tabeltoewijzingen maken
Omdat de tabelindeling json
is, is gegevenstoewijzing vereist. Met de json
-toewijzingen wordt elk json-pad toegewezen aan de naam van een tabelkolom. JSON-paden die speciale tekens bevatten, moeten worden ge escaped als ['Eigenschapsnaam']. Zie JSONPath-syntaxis voor meer informatie.
Diagnostische metrische gegevens en logboeken toewijzen aan de tabel
Gebruik de volgende query om de diagnostische metrische gegevens en logboekgegevens toe te wijzen aan de tabel:
.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'
Het updatebeleid voor metrische gegevens en logboekgegevens maken
Beleid voor gegevensupdates maken voor diagnostische metrische gegevens
Maak een functie waarmee de verzameling diagnostische metrische records wordt uitgebreid, zodat elke waarde in de verzameling een afzonderlijke rij ontvangt. Gebruik de
mv-expand
operator:.create function DiagnosticMetricsExpand() { DiagnosticRawRecords | mv-expand events = Records | where isnotempty(events.metricName) | project Timestamp = todatetime(events['time']), ResourceId = tostring(events.resourceId), MetricName = tostring(events.metricName), Count = toint(events['count']), Total = todouble(events.total), Minimum = todouble(events.minimum), Maximum = todouble(events.maximum), Average = todouble(events.average), TimeGrain = tostring(events.timeGrain) }
Voeg het updatebeleid toe aan de doeltabel. Met dit beleid wordt de query automatisch uitgevoerd op alle nieuw opgenomen gegevens in de tussenliggende gegevenstabel DiagnosticRawRecords en worden de resultaten opgenomen in de tabel DiagnosticMetrics :
.alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
Een Azure Event Hubs-naamruimte maken
Met diagnostische instellingen van Azure kunt u metrische gegevens en logboeken exporteren naar een opslagaccount of naar een Event Hub. In deze zelfstudie routeren we de metrische gegevens en logboeken via een Event Hub. In de volgende stappen maakt u een Event Hub-naamruimte en een Event Hub voor de diagnostische metrische gegevens en logboeken. Azure Monitor maakt de event hub insights-operational-logs voor de activiteitenlogboeken.
Maak een event hub met behulp van een Azure Resource Manager-sjabloon in de Microsoft Azure-portal. Klik met de rechtermuisknop op Implementeren in Azure en selecteer In nieuw venster openen om de rest van de stappen in dit artikel te volgen. Klik op de knop Implementeren in Azure om de Azure-portal te openen.
Maak een Event Hubs-naamruimte en een Event Hub voor de diagnostische logboeken. Meer informatie over het maken van een Event Hubs-naamruimte.
Vul in het formulier de volgende gegevens in. Gebruik de standaardwaarden voor alle instellingen die niet worden vermeld in de volgende tabel.
Instelling Voorgestelde waarde Beschrijving Abonnement Uw abonnement Selecteer het Azure-abonnement dat u wilt gebruiken voor de Event Hub. Resourcegroep test-resource-group Een nieuwe resourcegroep maken. Locatie Selecteer de regio die het beste voldoet aan uw behoeften. Maak de Event Hub-naamruimte op dezelfde locatie als andere resources. Naam van naamruimte AzureMonitoringData Kies een unieke naam waarmee de naamruimte kan worden geïdentificeerd. Naam van Event Hub Diagnostische gegevens De Event Hub bevindt zich onder de naamruimte, wat een unieke bereikcontainer biedt. Naam van consumentengroep adxpipeline Maak een naam voor een consumentengroep. Met consumentengroepen kunnen meerdere gebruikstoepassingen elk een afzonderlijke weergave van de gebeurtenisstroom hebben.
Metrische gegevens en logboeken van Azure Monitor verbinden met uw Event Hub
Nu moet u uw diagnostische metrische gegevens en logboeken en uw activiteitenlogboeken verbinden met de Event Hub.
Diagnostische metrische gegevens en logboeken verbinden met uw Event Hub
Selecteer een resource van waaruit u metrische gegevens wilt exporteren. Verschillende resourcetypen ondersteunen het exporteren van diagnostische gegevens, waaronder event hubs-naamruimte, Azure Key Vault, Azure IoT Hub en Azure Data Explorer-clusters. In deze zelfstudie gebruiken we een Azure Data Explorer-cluster als resource en bekijken we de metrische gegevens over queryprestaties en logboeken met opnameresultaten.
Selecteer uw Kusto-cluster in de Azure-portal.
Selecteer Diagnostische instellingen en selecteer vervolgens de link Diagnostische gegevens inschakelen.
Het deelvenster Diagnostische instellingen wordt geopend. Voer de volgende stappen uit:
Geef de gegevens uit uw diagnostische logboeken de naam ADXExportedData.
Schakel onder LOGBOEK de selectievakjes SucceededIngestion en FailedIngestion in.
Schakel onder METRISCHE gegevens het selectievakje Queryprestaties in.
Schakel het selectievakje Streamen naar een event hub in.
Selecteer Configureren.
Configureer in het deelvenster Een event hub selecteren hoe gegevens uit diagnostisch logboeken moeten worden geëxporteerd naar de event hub die u hebt gemaakt:
- Selecteer in de lijst Naamruimte van de Event Hub selecteren de optie AzureMonitoringData.
- Selecteer diagnostische gegevens in de lijst Naam van event hub selecteren.
- Selecteer in de lijst Naam van het Event Hub-beleid selecteren de optie RootManagerSharedAccessKey.
- Selecteer OK.
Selecteer Opslaan.
Zie hoe gegevens naar uw event hubs gaan
Wacht een paar minuten totdat de verbinding is gedefinieerd en het exporteren van het activiteitenlogboek naar de event hub is voltooid. Ga naar uw Event Hubs-naamruimte om de Event Hubs te bekijken die u hebt gemaakt.
Zie hoe gegevens naar uw event hub gaan:
Een event hub verbinden met Azure Data Explorer
Nu moet u de gegevensverbindingen maken voor uw diagnostische metrische gegevens en logboeken en activiteitenlogboeken.
De gegevensverbinding maken voor diagnostische metrische gegevens en logboeken en activiteitenlogboeken
In het Azure Data Explorer-cluster met de naam kustodocs selecteert u Databases in het menu links.
In het venster Databases selecteert u uw TestDatabase-database.
Selecteer Gegevensopname in het menu links.
Selecteer in het venster Gegevensopnamede optie + Gegevensverbinding toevoegen.
Voer in het venster Gegevensverbinding de volgende informatie in:
Gebruik de volgende instellingen in het venster Gegevensverbinding:
Gegevensbron:
Instelling Voorgestelde waarde Beschrijving van veld Naam van gegevensverbinding DiagnosticsLogsConnection De naam van de verbinding die u wilt maken in Azure Data Explorer. Event Hub-naamruimte AzureMonitoringData De naam die u eerder hebt gekozen om de naamruimte te identificeren. Event Hub Diagnostische gegevens De Event Hub die u hebt gemaakt. Consumentengroep adxpipeline De consumentengroep die u hebt gedefinieerd in de gemaakte Event Hub. Doeltabel:
Er zijn twee opties voor de routering: statische en dynamische. Voor deze zelfstudie gebruikt u statische routering (standaardinstelling), waarbij u de tabelnaam, gegevensindeling en toewijzing opgeeft. Laat Mijn gegevens omvatten routeringsgegevens uitgeschakeld.
Instelling Voorgestelde waarde Beschrijving van veld Tabel DiagnosticRawRecords De tabel die u hebt gemaakt in de TestDatabase-database. Gegevensindeling JSON De indeling die in de tabel wordt gebruikt. Toewijzen van kolommen DiagnosticRawRecordsMapping De toewijzing die u hebt gemaakt in de TestDatabase-database , waarmee binnenkomende JSON-gegevens worden toegewezen aan de kolomnamen en gegevenstypen van de tabel DiagnosticRawRecords . Selecteer Maken.
Query uitvoeren op de nieuwe tabellen
U hebt nu een pijplijn met een gegevensstroom. Opname via het cluster duurt standaard 5 minuten. Laat de gegevensstroom daarom een paar minuten zijn gang gaan voordat u een query gaat uitvoeren.
Een query uitvoeren op de tabel met metrische gegevens voor diagnostische gegevens
De volgende query analyseert queryduurgegevens uit diagnostische metrische records in Azure Data Explorer:
DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)
Queryresultaten:
avg_Average |
---|
00:06.156 |