Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 KQL-cluster kunt verzenden. De invoegtoepassing is gebouwd op basis van de Azure-Kusto-Data-bibliotheek en biedt een efficiƫnte manier om uw logboeken naar uw cluster te sinken.
In dit artikel leert u hoe u gegevens opneemt met nLog sink.
Voor een volledige lijst met gegevensconnectors, zie Overzicht van gegevensconnectors.
Vereiste voorwaarden
- .NET SDK 6.0 of hoger
- Een Azure Data Explorer-cluster en -database
Uw omgeving instellen
In deze sectie bereidt u uw omgeving voor op het gebruik van de NLog-connector.
Installeer het pakket
Voeg het NLog.Azure.Kusto NuGet-pakket toe. Gebruik de opdracht Install-Package 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 nodig hebben tot het platform zonder dat een gebruiker aanwezig is. Als u gegevens wilt ophalen met de NLog-connector, moet u een Microsoft Entra-service-principal maken en registreren en deze principal vervolgens autoriseren om gegevens op te halen uit een database.
De Microsoft Entra-service-principal kan worden gemaakt via Azure Portal of programmatisch, zoals in het volgende voorbeeld.
Deze service-principal is de identiteit die door de connector wordt gebruikt voor het schrijven van gegevens in uw tabel in Kusto. U verleent later machtigingen voor deze service-principal voor toegang tot Kusto-resources.
Meld u aan bij uw Azure-abonnement via Azure CLI. Verifieer vervolgens in de browser.
az loginKies het abonnement om de hoofdgebruiker te hosten. Deze stap is nodig wanneer u meerdere abonnementen hebt.
az account set --subscription YOUR_SUBSCRIPTION_GUIDMaak de service-principal. In dit voorbeeld wordt de service-principal genoemd
my-service-principal.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}Kopieer vanuit de geretourneerde JSON-gegevens de
appId,passwordentenantvoor toekomstig gebruik.{ "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" }
U hebt uw Microsoft Entra-toepassing en service-principal gemaakt.
Sla de volgende waarden op die in latere stappen moeten worden gebruikt: * Toepassings-id (client) ID * Map-id (tenant) * Waarde van clientgeheimsleutel
De Microsoft Entra-app-machtigingen verlenen
Voer in uw queryomgeving 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 u de app de rol database ingestor . Zie Databasebeveiligingsrollen beheren voor meer informatie.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'NLOG Azure App Registration role'Opmerking
De laatste parameter is een tekenreeks die wordt weergegeven als notities 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 doelconfiguratie toevoegen aan uw app
Voer de volgende stappen uit om:
- De doelconfiguratie toevoegen
- De app bouwen en uitvoeren
Voeg het doel toe aan het NLog-configuratiebestand.
<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>Zie Nlog-connector voor meer opties.
Gegevens verzenden met behulp van de NLog-sink. Voorbeeld:
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);Bouw en voer de app uit. Als u bijvoorbeeld Visual Studio gebruikt, drukt u op F5.
Controleer of de gegevens zich in uw cluster bevinden. Voer in uw queryomgeving de volgende query uit, waarbij u de tijdelijke aanduiding vervangt door de naam van de tabel die u eerder hebt gebruikt:
<TableName> | take 10
De voorbeeld-app uitvoeren
Gebruik de voorbeeldlogboekgenerator-app als voorbeeld waarin wordt getoond hoe u de NLog-sink configureert en gebruikt.
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.gitStel de volgende omgevingsvariabelen in, zodat het NLog-configuratiebestand ze direct uit de omgeving kan lezen:
Variable Description INGEST_ENDPOINT De opname-URI voor uw gegevensdoel. U hebt deze URI gekopieerd in de vereisten. DATABANK 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 de volgende opdrachten gebruiken:
Navigeer in de terminal naar de hoofdmap van de gekloonde opslagplaats en voer de volgende
dotnetopdracht uit om de app te bouwen:cd .\NLog.Azure.Kusto.Samples\ dotnet buildNavigeer in de terminal naar de map met voorbeelden en voer de volgende
dotnetopdracht uit om de app uit te voeren:dotnet runSelecteer in uw queryomgeving de doeldatabase en voer de volgende query uit om de opgenomen gegevens te verkennen.
ADXNLogSample | take 10De uitvoer moet er ongeveer uitzien als in de volgende afbeelding: