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
- .NET SDK 6.0 eller nyere
- Et Azure-abonnement. Opprett en kostnadsfri Azure-konto.
- En KQL-database i Microsoft Fabric. Kopier URI-en for denne databasen ved hjelp av instruksjonene i Access, en eksisterende KQL-database.
- Et KQL-spørringssett. Dette kalles spørringsmiljøet.
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.
Logg på Azure-abonnementet via Azure CLI. Deretter godkjenner du i nettleseren.
az login
Velg abonnementet som vert for hovedstolen. Dette trinnet er nødvendig når du har flere abonnementer.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Opprett tjenestekontohaveren. I dette eksemplet kalles
my-service-principal
tjenestekontohaveren .az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Kopier ,
password
ogtenant
for fremtidig bruk,appId
fra 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
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
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.
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);
Bygg og kjør appen. Hvis du for eksempel bruker Visual Studio, trykker du F5.
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.
Klon NLog-vaskens git-repositorium ved hjelp av følgende git-kommando:
git clone https://github.com/Azure/azure-kusto-nlog-sink.git
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:
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
Gå til eksempelmappen i terminalen, og kjør følgende
dotnet
kommando for å kjøre appen:dotnet run
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: