Självstudie: Mata in och köra frågor mot övervakningsdata i Azure Data Explorer

I den här självstudien lär du dig att mata in data från diagnostikloggar och aktivitetsloggar till ett Azure Data Explorer-kluster utan att skriva kod. Med den här enkla inmatningsmetoden kan du snabbt börja köra frågor mot Azure Data Explorer för dataanalys.

I den här självstudien får du lära dig att:

  • Skapa tabeller och inmatningsmappning i en Azure Data Explorer-databas.
  • Formatera inmatade data med hjälp av en uppdateringsprincip.
  • Skapa en händelsehubb och anslut den till Azure Data Explorer.
  • Strömma data till en händelsehubb från Diagnostikmått och loggar för Azure Monitor och aktivitetsloggar.
  • Köra frågor mot inmatade data med hjälp av Azure Data Explorer.

Anteckning

Skapa alla resurser på samma Azure-plats eller region.

Förutsättningar

Azure Monitor-dataprovider: diagnostikmått, loggar och aktivitetsloggar

Visa och förstå de data som tillhandahålls av diagnostikmått och loggar och aktivitetsloggar i Azure Monitor nedan. Du skapar en inmatningspipeline baserat på dessa datascheman. Observera att varje händelse i en logg har en matris med poster. Den här matrisen med poster delas senare i självstudien.

Exempel på diagnostikmått, loggar och aktivitetsloggar

Azures diagnostikmått, loggar och aktivitetsloggar genereras av en Azure-tjänst och tillhandahåller data om hur tjänsten fungerar.

Exempel på diagnostikmått

Diagnostikmått aggregeras med ett tidsintervall på 1 minut. Följande är ett exempel på ett Azure-Data Explorer måtthändelseschema för frågevaraktighet:

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

Konfigurera en inmatningspipeline i Azure Data Explorer

Konfiguration av en Azure Data Explorer-pipeline omfattar flera steg, däribland tabellskapande och datainmatning. Du kan även ändra, mappa och uppdatera data.

Ansluta till Azure Data Explorer-webbgränssnittet

I din Azure Data Explorer TestDatabase-databas väljer du Fråga för att öppna webbgränssnittet för Azure Data Explorer.

Frågesida.

Skapa måltabellerna

Strukturen för Azure Monitor-loggarna är inte tabell. Du ändrar data och expanderar varje händelse till en eller flera poster. Rådata matas in i en mellanliggande tabell med namnet ActivityLogsRawRecords för aktivitetsloggar och DiagnosticRawRecords för diagnostikmått och loggar. Då ändras och expanderas data. Med hjälp av en uppdateringsprincip matas de expanderade data in i tabellen ActivityLogs för aktivitetsloggar, DiagnosticMetrics för diagnostikmått och Diagnostikloggar för diagnostikloggar. Det innebär att du måste skapa två separata tabeller för att mata in aktivitetsloggar och tre separata tabeller för att mata in diagnostikmått och loggar.

Använd azure Data Explorer-webbgränssnittet för att skapa måltabellerna i Azure Data Explorer-databasen.

Skapa tabeller för diagnostikmåtten

  1. I databasen TestDatabase skapar du en tabell med namnet DiagnosticMetrics för att lagra diagnostikmåttposterna. Använd följande .create table hanteringskommando:

    .create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
    
  2. Välj Kör för att skapa tabellen.

    Kör frågan.

  3. Skapa den mellanliggande datatabellen med namnet DiagnosticRawRecords i TestDatabase-databasen för datamanipulering med hjälp av följande fråga. Välj Kör för att skapa tabellen.

    .create table DiagnosticRawRecords (Records:dynamic)
    
  4. Ange noll kvarhållningsprincip för den mellanliggande tabellen:

    .alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
    

Skapa tabellmappningar

Eftersom dataformatet är json krävs datamappning. json-mappningen matchar varje json-sökväg till ett kolumnnamn i tabellen. JSON-sökvägar som innehåller specialtecken bör vara undantagna som ['Egenskapsnamn']. Mer information finns i JSONPath-syntax.

Mappa diagnostikmått och loggar till tabellen

Om du vill mappa diagnostikmåttet och loggdata till tabellen använder du följande fråga:

.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'

Skapa uppdateringsprincipen för mått- och loggdata

Skapa en princip för datauppdatering för diagnostikmått

  1. Skapa en funktion som expanderar samlingen av diagnostikmåttposter så att varje värde i samlingen får en separat rad. Använd operatorn mv-expand :

    .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)
    }
    
  2. Lägg till uppdateringsprincipen i måltabellen. Den här principen kör automatiskt frågan på nyligen inmatade data i den mellanliggande datatabellen DiagnosticRawRecords och matar in resultatet i tabellen DiagnosticMetrics :

    .alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
    

Skapa en Event Hubs-namnrymd

Med Diagnostikinställningar i Azure kan du exportera mått och loggar till ett lagringskonto eller till en händelsehubb. I den här självstudien dirigerar vi måtten och loggarna via en händelsehubb. Du skapar ett namnområde för händelsehubben och en händelsehubb för diagnostikmåtten och loggarna i följande steg. Azure Monitor skapar händelsehubben insights-operational-logs för aktivitetsloggarna.

  1. Skapa en händelsehubb med hjälp av en Azure Resource Manager-mall i Azure-portalen. Följ resten av stegen i den här artikeln genom att högerklicka på knappen Distribuera till Azure och sedan välja Öppna i nytt fönster. Knappen Distribuera till Azure tar dig till Azure-portalen.

    Knappen Distribuera till Azure.

  2. Skapa en event hubs-namnrymd och en händelsehubb för diagnostikloggarna. Lär dig hur du skapar ett event hubs-namnområde.

  3. Fyll i formuläret med följande information. För alla inställningar som inte visas i följande tabell använder du standardvärdena.

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Välj den Azure-prenumeration som ska användas för händelsehubben.
    Resursgrupp test-resource-group Skapa en ny resursgrupp.
    Plats Välj den region som bäst uppfyller dina behov. Skapa händelsehubbens namnområde på samma plats som andra resurser.
    Namn på namnområde AzureMonitoringData Välj ett unikt namn som identifierar namnområdet.
    Namn på händelsehubb DiagnosticData Händelsehubben finns under namnområdet, som tillhandahåller en unik omfångscontainer.
    Konsumentgruppens namn adxpipeline Skapa ett konsumentgruppsnamn. Konsumentgrupper gör att flera konsumerande program kan ha en separat vy över händelseströmmen.

Ansluta Azure Monitor-mått och loggar till din händelsehubb

Nu måste du ansluta dina diagnostikmått och loggar och dina aktivitetsloggar till händelsehubben.

Ansluta diagnostikmått och loggar till din händelsehubb

Välj en resurs som du vill exportera mått från. Flera resurstyper stöder export av diagnostikdata, inklusive event hubs-namnrymd, Azure Key Vault, Azure IoT Hub och Azure Data Explorer-kluster. I den här självstudien använder vi ett Azure Data Explorer-kluster som resurs. Vi granskar frågeprestandamått och resultatloggar för datainmatning.

  1. Välj ditt Kusto-kluster i Azure-portalen.

  2. Välj diagnostikinställningar och välj sedan länken Slå på diagnostik.

    Diagnostikinställningar.

  3. Fönstret Diagnostikinställningar öppnas. Utför följande steg:

    1. Ge dina diagnostikloggdata namnet ADXExportedData.

    2. Under LOGG markerar du kryssrutorna SucceededIngestion och FailedIngestion .

    3. Under MÅTT markerar du kryssrutan Frågeprestanda .

    4. Markera kryssrutan Strömma till en händelsehubb.

    5. Välj Konfigurera.

      Fönstret Diagnostikinställningar.

  4. I fönstret Välj händelsehubb konfigurerar du hur data ska exporteras från diagnostikloggar till den händelsehubb som du skapade:

    1. I listan Select event hub namespace (Välj namnrymd för händelsehubb) väljer du AzureMonitoringData.
    2. I listan Välj namn på händelsehubb väljer du DiagnostikData.
    3. I listan Select event hub policy name (Välj namn på händelsehubbsprincip) väljer du RootManagerSharedAccessKey.
    4. Välj OK.
  5. Välj Spara.

Se data som flödar till dina händelsehubbar

  1. Vänta några minuter tills anslutningen har definierats och exporten av aktivitetslogg till händelsehubben är klar. Gå till event hubs-namnrymden för att se de händelsehubbar som du skapade.

    Skapade händelsehubbar.

  2. Se data som flödar till din händelsehubb:

    Händelsehubbens data.

Ansluta en händelsehubb till Azure Data Explorer

Nu måste du skapa dataanslutningarna för dina diagnostikmått och loggar och aktivitetsloggar.

Skapa dataanslutningen för diagnostikmått och loggar och aktivitetsloggar

  1. I det Azure Data Explorer-kluster som heter kustodocs väljer du Databaser på den vänstra menyn.

  2. I fönstret Databaser väljer du databasen TestDatabase.

  3. I den vänstra menyn väljer du Datainmatning.

  4. I fönstret Datainmatning väljer du + Lägg till dataanslutning.

  5. I fönstret Dataanslutning anger du följande information:

    Händelsehubbdataanslutning.

  1. Använd följande inställningar i fönstret Dataanslutning:

    Datakälla:

    Inställning Föreslaget värde Fältbeskrivning
    Namn på dataanslutning DiagnosticsLogsConnection Namnet på anslutningen som du vill skapa i Azure Data Explorer.
    Namnområde för händelsehubb AzureMonitoringData Namnet som du valde tidigare, som identifierar ditt namnområde.
    Händelsehubb DiagnosticData Händelsehubben som du skapade.
    Konsumentgrupp adxpipeline Konsumentgruppen som definierades i hubben som du skapade.

    Måltabell:

    Det finns två alternativ för routning: statisk och dynamisk. För den här självstudien använder du statisk routning (standardinställning), där du anger tabellnamn, dataformat och mappning. Låt My data includes routing info (Mina data innehåller routningsinformation) vara avmarkerad.

    Inställning Föreslaget värde Fältbeskrivning
    Tabell DiagnosticRawRecords Den tabell som du skapade i databasen TestDatabase.
    Dataformat JSON Det format som används i tabellen.
    Kolumnmappning DiagnosticRawRecordsMapping Mappningen som du skapade i databasen TestDatabase , som mappar inkommande JSON-data till kolumnnamnen och datatyperna i tabellen DiagnosticRawRecords .
  2. Välj Skapa.

Köra frågor mot de nya tabellerna

Du har nu en pipeline med dataflöde. Inmatning via klustret tar 5 minuter som standard, så låt data flöda i några minuter innan du börjar köra frågor.

Fråga diagnostikmåtttabellen

Följande fråga analyserar frågevaraktighetsdata från diagnostikmåttposter i Azure Data Explorer:

DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)

Frågeresultat:

avg_Average
00:06.156