Share via


Gegevens opnemen met de NLog-sink in Azure Data Explorer

Belangrijk

Deze connector kan worden gebruikt in realtime analyses in Microsoft Fabric. Gebruik de instructies in dit artikel met de volgende uitzonderingen:

NLog is een flexibel en gratis logboekregistratieplatform voor verschillende .NET-platforms, waaronder .NET Standard. Met NLog kunt u schrijven naar verschillende doelen, zoals een database, bestand of console. Met NLog kunt u de logboekconfiguratie on-the-fly wijzigen. De NLog-sink is een doel voor NLog waarmee u uw logboekberichten naar een Azure Data Explorer-cluster kunt verzenden. De invoegtoepassing is gebouwd op de Azure-Kusto-Data-bibliotheek en biedt een efficiƫnte manier om uw logboeken naar uw cluster te sinken.

In dit artikel leert u het volgende:

Zie Overzicht van gegevensconnectors voor een volledige lijst met gegevensconnectors.

Vereisten

Uw omgeving instellen

In deze sectie bereidt u uw omgeving voor op het gebruik van de NLog-connector.

Het pakket installeren

Voeg het NuGet-pakket NLog.Azure.Kusto toe. Gebruik de Install-Package opdracht om de naam van het NuGet-pakket op te geven.

Install-Package NLog.Azure.Kusto

Een Microsoft Entra-app-registratie maken

Microsoft Entra toepassingsverificatie wordt gebruikt voor toepassingen die toegang moeten hebben tot Azure Data Explorer zonder dat er een gebruiker aanwezig is. Als u gegevens wilt opnemen met behulp van de NLog-connector, moet u een Microsoft Entra service-principal maken en registreren. Vervolgens moet u deze principal machtigen om gegevens op te nemen in een Azure Data Explorer-database.

  1. Gebruik uw Azure Data Explorer-cluster en volg stap 1-7 in Een Microsoft Entra toepassingsregistratie maken in Azure Data Explorer.
  2. Sla de volgende waarden op voor gebruik in latere stappen:
    • (Client-)id van de app
    • (Tenant-)id van de map
    • Waarde van clientgeheimsleutel

De Microsoft Entra-app machtigingen verlenen

  1. Maak op het querytabblad van de webgebruikersinterface verbinding met uw cluster. Zie Clusters toevoegen voor meer informatie over het maken van verbinding.

  2. Blader naar de database waarin u gegevens wilt opnemen.

  3. Voer de volgende beheeropdracht uit, waarbij u de tijdelijke aanduidingen vervangt. Vervang DatabaseName door de naam van de doeldatabase en ApplicationID door de eerder opgeslagen waarde. Met deze opdracht verleent de app de rol database ingestor . Zie Databasebeveiligingsrollen beheren voor meer informatie.

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

    Notitie

    De laatste parameter is een tekenreeks die als notities wordt weergegeven wanneer u een query uitvoert op de rollen die zijn gekoppeld aan een database. Zie Bestaande beveiligingsrollen weergeven voor meer informatie.

Een tabel- en opnametoewijzing maken

Maak een doeltabel voor de binnenkomende gegevens.

  • Voer in de queryeditor de volgende opdracht voor het maken van tabellen uit, waarbij u de tijdelijke aanduiding TableName vervangt door de naam van de doeltabel:

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

De Azure Data Explorer-doelconfiguratie toevoegen aan uw app

Gebruik de volgende stappen om:

  • De Azure Data Explorer-doelconfiguratie toevoegen
  • De app bouwen en uitvoeren
  1. Voeg het Azure Data Explorer-doel toe aan uw NLog-configuratiebestand.

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

    Zie Azure Data Explorer Nlog-connector voor meer opties.

  2. Gegevens verzenden naar Azure Data Explorer met behulp van de NLog-sink. Bijvoorbeeld:

    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. Bouw de app en voer deze uit. Als u bijvoorbeeld Visual Studio gebruikt, drukt u op F5.

  4. Controleer of de gegevens zich in uw cluster bevinden. Voer in de webgebruikersinterface de volgende query uit en vervang de tijdelijke aanduiding door de naam van de tabel die eerder is gebruikt:

    <TableName>
    | take 10
    

De voorbeeld-app uitvoeren

Gebruik de voorbeeldlogboekgenerator-app als voorbeeld van het configureren en gebruiken van de NLog-sink.

  1. Kloon de git-opslagplaats van de NLog-sink met behulp van de volgende git-opdracht:

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Stel de volgende omgevingsvariabelen in, zodat het NLog-configuratiebestand ze direct uit de omgeving kan lezen:

    Variabele Beschrijving
    INGEST_ENDPOINT De opname-URI voor uw cluster in de indeling https://ingest-<cluster>.<region.kusto.windows.net>.
    DATABASE De hoofdlettergevoelige naam van de doeldatabase.
    APP_ID Toepassingsclient-id vereist voor verificatie. U hebt deze waarde opgeslagen in Een Microsoft Entra-app-registratie maken.
    APP_KEY Toepassingssleutel vereist voor verificatie. U hebt deze waarde opgeslagen in Een Microsoft Entra-app-registratie maken.
    AZURE_TENANT_ID De id van de tenant waarin de toepassing is geregistreerd. U hebt deze waarde opgeslagen in Een Microsoft Entra-app-registratie maken.

    U kunt de omgevingsvariabelen handmatig instellen of met behulp van de volgende opdrachten:

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. Navigeer in uw terminal naar de hoofdmap van de gekloonde opslagplaats en voer de volgende dotnet opdracht uit om de app te bouwen:

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. Navigeer in uw terminal naar de map voorbeelden en voer de volgende dotnet opdracht uit om de app uit te voeren:

    dotnet run
    
  5. Selecteer in de webgebruikersinterface de doeldatabase en voer de volgende query uit om de opgenomen gegevens te verkennen.

    ADXNLogSample
    | take 10
    

    De uitvoer moet er ongeveer uitzien als in de volgende afbeelding:

    Schermopname van tabel met de functie take 10 en resultaten.