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:
- Om det behövs skapar du databaser med hjälp av anvisningarna i Skapa en KQL-databas.
- Om det behövs skapar du tabeller med hjälp av anvisningarna i Skapa en tom tabell.
- Hämta fråge- eller inmatnings-URI:er med hjälp av anvisningarna i Kopiera URI.
- Kör frågor i en KQL-frågeuppsättning.
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.
- .NET SDK 6.0 eller senare
- Ett Azure Data Explorer-kluster och en databas
I det här avsnittet förbereder du din miljö för att använda NLog-anslutningsappen.
Lägg till NLog.Azure.Kusto NuGet-paketet. Använd kommandot Install-Package som anger namnet på NuGet-paketet.
Install-Package NLog.Azure.Kusto
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.
- Använd ditt Azure Data Explorer-kluster och följ steg 1–7 i Skapa en Microsoft Entra programregistrering i Azure Data Explorer.
- Spara följande värden som ska användas i senare steg:
- Program-ID (klient)
- Katalog-ID (klient)
- Nyckelvärde för klienthemlighet
Anslut till klustret på frågefliken i webbgränssnittet. Mer information om hur du ansluter finns i Lägga till kluster.
Bläddra till databasen där du vill mata in data.
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 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)
Använd följande steg för att:
- Lägg till Azure Data Explorer-målkonfigurationen
- Kompilera och köra appen
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.
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);
Kompilera och kör appen. Om du till exempel använder Visual Studio trycker du på F5.
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
Använd exempellogggeneratorappen som ett exempel som visar hur du konfigurerar och använder NLog-mottagaren.
Klona git-lagringsplatsen för NLog-mottagaren med följande git-kommando:
git clone https://github.com/Azure/azure-kusto-nlog-sink.git
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:
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
I terminalen navigerar du till exempelmappen och kör följande
dotnet
kommando för att köra appen:dotnet run
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: