Del via


Hent data med NLog-vasken

NLog er en fleksibel og gratis loggingsplattform for ulike .NET-plattformer, inkludert .NET-standard. Med NLog kan du skrive til flere mål, for eksempel en database, fil eller konsoll. Med NLog kan du endre loggingskonfigurasjonen på farten. NLog-vasken er et mål for NLog som lar deg sende loggmeldinger til en KQL-klynge. Plugin-modulen er bygget oppå Azure-Kusto-Data-biblioteket og gir deg en effektiv måte å senke loggene til klyngen på.

I denne artikkelen lærer du hvordan du henter data med nLog-vasken.

Hvis du vil ha en fullstendig liste over datakoblinger, kan du se Oversikt over datakoblinger.

Forutsetning

Konfigurer miljøet ditt

I denne delen skal du klargjøre miljøet for å bruke NLog-koblingen.

Installer pakken

Legg til NLog.Azure.Kusto NuGet-pakken. Bruk installeringspakke-kommandoen som angir navnet på NuGet-pakken.

Install-Package NLog.Azure.Kusto

Opprette en Microsoft Entra-appregistrering

Microsoft Entra-programgodkjenning brukes for programmer som trenger tilgang til plattformen uten en bruker til stede. Hvis du vil hente data ved hjelp av NLog-koblingen, må du opprette og registrere en Microsoft Entra-tjenestekontohaver og deretter godkjenne denne hovedstolen for å hente data fra en database.

Microsoft Entra-tjenestekontohaveren kan opprettes gjennom Azure-portalen eller programatisk, som i eksemplet nedenfor.

Denne tjenestekontohaveren vil være identiteten som brukes av koblingen til å skrive data i tabellen i Kusto. Du vil senere gi tillatelser for denne tjenestekontohaveren for å få tilgang til Kusto-ressurser.

  1. Logg på Azure-abonnementet via Azure CLI. Deretter godkjenner du i nettleseren.

    az login
    
  2. Velg abonnementet som vert for hovedstolen. Dette trinnet er nødvendig når du har flere abonnementer.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Opprett tjenestekontohaveren. I dette eksemplet kalles my-service-principaltjenestekontohaveren .

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Kopier , passwordog tenant for fremtidig bruk, appIdfra de returnerte JSON-dataene.

    {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "displayName": "my-service-principal",
      "name": "my-service-principal",
      "password": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "tenant": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
    

Du har opprettet Microsoft Entra-programmet og tjenestekontohaveren.

Lagre følgende verdier som skal brukes i senere trinn: * Program (klient) ID * Katalog (leier) ID * Klienthemmelighetsnøkkelverdi

Gi Microsoft Entra-apptillatelser

  1. Kjør følgende administrasjonskommando i spørringsmiljøet, og erstatte plassholderne. Erstatt DatabaseName med navnet på måldatabasen og ApplicationID med den tidligere lagrede verdien. Denne kommandoen gir appen databasens ingestor-rolle . Hvis du vil ha mer informasjon, kan du se Behandle databasesikkerhetsroller.

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

    Merk

    Den siste parameteren er en streng som vises som notater når du spør etter rollene som er knyttet til en database. Hvis du vil ha mer informasjon, kan du se Vise eksisterende sikkerhetsroller.

Opprette en tabell- og inntakstilordning

Opprett en tom tabell som måltabell for innkommende data.

Legge til målkonfigurasjonen i appen

Bruk følgende fremgangsmåte for å:

  • Legg til målkonfigurasjonen
  • Bygge og kjøre appen
  1. Legg til målet i NLog-konfigurasjonsfilen.

    <targets>
        <target name="targettable" xsi:type="TargetTable"
        IngestionEndpointUri="<Connection string>"
        Database="<Database name>"
        TableName="<Table name>"
        ApplicationClientId="<Entra App clientId>"
        ApplicationKey="<Entra App key>"
        Authority="<Entra tenant id>"
        />
    </targets>
    
    ##Rules
    <rules>
        <logger name="*" minlevel="Info" writeTo="adxtarget" />
    </rules>
    

    Hvis du vil ha flere alternativer, kan du se Nlog-kobling.

  2. Send data ved hjelp av NLog-vasken. Eksempel:

    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. Bygg og kjør appen. Hvis du for eksempel bruker Visual Studio, trykker du F5.

  4. Kontroller at dataene er i klyngen. Kjør følgende spørring i spørringsmiljøet, og erstatte plassholderen med navnet på tabellen du brukte tidligere:

    <TableName>
    | take 10
    

Kjør eksempelappen

Bruk eksempellogggeneratorappen som et eksempel som viser hvordan du konfigurerer og bruker NLog-vasken.

  1. Klon NLog-vaskens git-repositorium ved hjelp av følgende git-kommando:

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Angi følgende miljøvariabler, slik at NLog-konfigurasjonsfilen kan lese dem umiddelbart fra miljøet:

    Variabel Bekrivelse
    INGEST_ENDPOINT Inntaks-URI-en for datamålet. Du har kopiert denne URI-en i forutsetningene.
    DATABASE Navnet på måldatabasen skiller mellom store og små bokstaver.
    APP_ID Programklient-ID kreves for godkjenning. Du lagret denne verdien i Opprett en Microsoft Entra-appregistrering.
    APP_KEY Programnøkkel kreves for godkjenning. Du lagret denne verdien i Opprett en Microsoft Entra App-registrering.
    AZURE_TENANT_ID ID-en til leieren der programmet er registrert. Du lagret denne verdien i Opprett en Microsoft Entra App-registrering.

    Du kan angi miljøvariablene manuelt eller bruke følgende kommandoer:

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. Naviger til rotmappen for klonet repo i terminalen, og kjør følgende dotnet kommando for å bygge appen:

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. Gå til eksempelmappen i terminalen, og kjør følgende dotnet kommando for å kjøre appen:

    dotnet run
    
  5. Velg måldatabasen i spørringsmiljøet, og kjør følgende spørring for å utforske de inntatte dataene.

    ADXNLogSample
    | take 10
    

    Utdataene skal se omtrent slik ut:

    Skjermbilde av tabell med ta 10-funksjon og resultater