Dela via


Mata in data med NLog-mottagaren i Azure Data Explorer

Viktigt

Den här anslutningsappen kan användas i Realtidsanalys i Microsoft Fabric. Använd anvisningarna i den här artikeln med följande undantag:

NLog är en flexibel och kostnadsfri loggningsplattform för olika .NET-plattformar, inklusive .NET-standard. Med NLog kan du skriva till flera mål, till exempel en databas, fil eller konsol. Med NLog kan du ändra loggningskonfigurationen direkt. NLog-mottagaren är ett mål för NLog som gör att du kan skicka dina loggmeddelanden till ett Azure Data Explorer-kluster. Plugin-programmet bygger på Azure-Kusto-Data-biblioteket och ger ett effektivt sätt att skicka loggarna till klustret.

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

En fullständig lista över dataanslutningar finns i Översikt över dataanslutningsprogram.

Förutsättningar

Konfigurera din miljö

I det här avsnittet förbereder du din miljö för att använda NLog-anslutningsappen.

Installera paketet

Lägg till NLog.Azure.Kusto NuGet-paketet. Använd kommandot Install-Package som anger namnet på NuGet-paketet.

Install-Package NLog.Azure.Kusto

Skapa en Microsoft Entra appregistrering

Microsoft Entra programautentisering används för program som behöver åtkomst till Azure Data Explorer utan att en användare finns. Om du vill mata in data med NLog-anslutningsappen måste du skapa och registrera ett Microsoft Entra tjänstens huvudnamn och sedan auktorisera det här huvudnamnet för att mata in data som en Azure-Data Explorer-databas.

  1. Använd ditt Azure Data Explorer-kluster och följ steg 1–7 i Skapa en Microsoft Entra programregistrering i Azure Data Explorer.
  2. Spara följande värden som ska användas i senare steg:
    • Program-ID (klient)
    • Katalog-ID (klient)
    • Nyckelvärde för klienthemlighet

Bevilja Microsoft Entra appbehörigheter

  1. Anslut till klustret på frågefliken i webbgränssnittet. Mer information om hur du ansluter finns i Lägga till kluster.

  2. Bläddra till databasen där du vill mata in data.

  3. Kör följande hanteringskommando och ersätt platshållarna. Ersätt DatabaseName med namnet på måldatabasen och ApplicationID med det tidigare sparade värdet. Det här kommandot ger appen rollen databasingestor . Mer information finns i Hantera databassäkerhetsroller.

    .add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'
    

    Anteckning

    Den sista parametern är en sträng som visas som anteckningar när du frågar efter de roller som är associerade med en databas. Mer information finns i Visa befintliga säkerhetsroller.

Skapa en tabell- och inmatningsmappning

Skapa en måltabell för inkommande data.

  • Kör följande tabellskapandekommando i frågeredigeraren och ersätt platshållaren TableName med namnet på måltabellen:

    .create table <TableName> (Timestamp:datetime, Level:string, Message:string, FormattedMessage:dynamic, Exception:string, Properties:dynamic)
    

Lägga till Azure Data Explorer-målkonfigurationen i din app

Använd följande steg för att:

  • Lägg till Azure Data Explorer-målkonfigurationen
  • Kompilera och köra appen
  1. Lägg till Azure Data Explorer-målet i NLog-konfigurationsfilen.

    <targets>
        <target name="adxtarget" xsi:type="ADXTarget"
        IngestionEndpointUri="<ADX connection string>"
        Database="<ADX database name>"
        TableName="<ADX table name>"
        ApplicationClientId="<AAD App clientId>"
        ApplicationKey="<AAD App key>"
        Authority="<AAD tenant id>"
        />
    </targets>
    
    ##Rules
    <rules>
        <logger name="*" minlevel="Info" writeTo="adxtarget" />
    </rules>
    

    Fler alternativ finns i Azure Data Explorer Nlog Connector.

  2. Skicka data till Azure Data Explorer med hjälp av NLog-mottagaren. Exempel:

    logger.Info("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    logger.Error(exceptionObj, "This was exception");
    logger.Debug("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    logger.Warn("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    
  3. Kompilera och kör appen. Om du till exempel använder Visual Studio trycker du på F5.

  4. Kontrollera att data finns i klustret. Kör följande fråga i webbgränssnittet och ersätt platshållaren med namnet på den tabell som användes tidigare:

    <TableName>
    | take 10
    

Kör exempelappen

Använd exempellogggeneratorappen som ett exempel som visar hur du konfigurerar och använder NLog-mottagaren.

  1. Klona git-lagringsplatsen för NLog-mottagaren med följande git-kommando:

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Ange följande miljövariabler så att NLog-konfigurationsfilen kan läsa dem direkt från miljön:

    Variabel Beskrivning
    INGEST_ENDPOINT Mata in URI för klustret i formatklustrethttps://ingest-<>.<region.kusto.windows.net>.
    DATABAS Måldatabasens skiftlägeskänsliga namn.
    APP_ID Programklient-ID som krävs för autentisering. Du sparade det här värdet i Skapa en Microsoft Entra appregistrering.
    APP_KEY Programnyckel som krävs för autentisering. Du sparade det här värdet i Skapa en Microsoft Entra appregistrering.
    AZURE_TENANT_ID ID:t för klientorganisationen där programmet är registrerat. Du sparade det här värdet i Skapa en Microsoft Entra appregistrering.

    Du kan ange miljövariablerna manuellt eller med följande kommandon:

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. I terminalen navigerar du till rotmappen för den klonade lagringsplatsen och kör följande dotnet kommando för att skapa appen:

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. I terminalen navigerar du till exempelmappen och kör följande dotnet kommando för att köra appen:

    dotnet run
    
  5. I webbgränssnittet väljer du måldatabasen och kör följande fråga för att utforska inmatade data.

    ADXNLogSample
    | take 10
    

    Dina utdata bör se ut ungefär som i följande bild:

    Skärmbild av tabell med funktionen take 10 och resultatet.