Partager via


Ingérer des données avec le récepteur NLog dans Azure Data Explorer

Important

Ce connecteur peut être utilisé en temps réel dans Microsoft Fabric. Utilisez les instructions de cet article avec les exceptions suivantes :

  • Si nécessaire, créez des bases de données à l’aide des instructions de créer une base de données KQL.
  • Si nécessaire, créez des tables à l’aide des instructions de Créer une table vide.
  • Obtenir des URI de requête ou d’ingestion à l’aide des instructions de l’URI de copie.
  • Exécutez des requêtes dans un ensemble de requêtes KQL.

NLog est une plateforme de journalisation flexible et gratuite pour différentes plateformes .NET, notamment .NET standard. NLog vous permet d’écrire dans plusieurs cibles, telles qu’une base de données, un fichier ou une console. Avec NLog, vous pouvez modifier la configuration de journalisation à la volée. Le récepteur NLog est une cible pour NLog qui vous permet d’envoyer vos messages de journal à un cluster Azure Data Explorer. Le plug-in est basé sur la bibliothèque Azure-Kusto-Data et offre un moyen efficace de traiter vos journaux d’activité sur votre cluster.

Dans cet article, vous allez apprendre à :

Pour obtenir la liste complète des connecteurs de données, consultez la vue d’ensemble des connecteurs de données.

Prérequis

Paramétrer votre environnement

Dans cette section, vous allez préparer votre environnement pour utiliser le connecteur NLog.

Installer le package

Ajoutez le package NuGet NLog.Azure.Kusto . Utilisez la commande Install-Package spécifiant le nom du package NuGet.

Install-Package NLog.Azure.Kusto

Créer une inscription d’application Microsoft Entra

L’authentification des applications Microsoft Entra est utilisée pour les applications qui doivent accéder à Azure Data Explorer sans qu’un utilisateur soit présent. Pour ingérer des données à l’aide du connecteur NLog, vous devez créer et inscrire un principal de service Microsoft Entra, puis autoriser ce principal à ingérer des données dans une base de données Azure Data Explorer.

  1. À l’aide de votre cluster Azure Data Explorer, suivez les étapes 1 à 7 dans Créer une inscription d’application Microsoft Entra dans Azure Data Explorer.
  2. Enregistrez les valeurs suivantes à utiliser dans les étapes ultérieures :
    • ID d’application (client)
    • ID de l’annuaire (locataire)
    • Valeur de clé secrète client

Accordez les autorisations d’application Microsoft Entra

  1. Dans l’onglet requête de l’interface utilisateur web, connectez-vous à votre cluster. Pour plus d’informations sur la connexion, consultez Ajouter des clusters.

  2. Accédez à la base de données dans laquelle vous souhaitez ingérer des données.

  3. Exécutez la commande de gestion suivante, en remplaçant les espaces réservés. Remplacez DatabaseName par le nom de la base de données cible et applicationID par la valeur précédemment enregistrée. Cette commande accorde à l’application le rôle d’ingestion de base de données. Pour en savoir plus, consultez Gérer les rôles de sécurité de bases de données.

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

    Remarque

    Le dernier paramètre est une chaîne qui s’affiche sous la forme de notes lorsque vous interrogez les rôles associés à une base de données. Pour plus d’informations, consultez Afficher les rôles de sécurité existants.

Créez une table et un mappage d’ingestion

Créez une table cible pour les données entrantes.

  • Dans votre éditeur de requête, exécutez la commande de création de table suivante, en remplaçant l’espace réservé TableName par le nom de la table cible :

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

Ajouter la configuration cible d’Azure Data Explorer à votre application

Procédez comme suit pour :

  • Ajouter la configuration cible d’Azure Data Explorer
  • Générer et exécuter l’application
  1. Ajoutez la cible Azure Data Explorer dans votre fichier de configuration NLog.

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

    Pour plus d’options, consultez le connecteur Nlog Azure Data Explorer.

  2. Envoyez des données à Azure Data Explorer à l’aide du récepteur NLog. Par exemple :

    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. Générez et exécutez l'application. Par exemple, si vous utilisez Visual Studio, appuyez sur F5.

  4. Rassurez-vous que les données se situent dans votre cluster. Dans l’interface utilisateur web, exécutez la requête suivante en remplaçant l’espace réservé par le nom de la table utilisée précédemment :

    <TableName>
    | take 10
    

Exécution de l'exemple d'application

Utilisez l’exemple d’application générateur de journaux comme exemple montrant comment configurer et utiliser le récepteur NLog.

  1. Clonez le dépôt git du récepteur NLog à l’aide de la commande git suivante :

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Définissez les variables environnementales suivantes afin que le fichier de configuration NLog puisse les lire immédiatement à partir de l’environnement :

    Variable Description
    INGEST_ENDPOINT L’URI d’ingestion de votre cluster au format https://ingest-<cluster>.<region>.kusto.windows.net.
    DATABASE Nom de la base de données cible, respectant la casse.
    APP_ID ID client d’application requis pour l’authentification. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra.
    APP_KEY Clé d’application requise pour l’authentification. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra.
    AZURE_TENANT_ID L’identificateur du locataire où l’application est inscrite. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra.

    Vous pouvez définir manuellement les variables d’environnement ou à l’aide des commandes suivantes :

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. Dans votre terminal, accédez au dossier racine du référentiel cloné et exécutez la commande suivante dotnet pour générer l’application :

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. Dans votre terminal, accédez au dossier d’exemples et exécutez la commande suivante dotnet pour exécuter l’application :

    dotnet run
    
  5. Dans l’interface utilisateur web, sélectionnez la base de données cible et exécutez la requête suivante pour explorer les données ingérées.

    ADXNLogSample
    | take 10
    

    Votre sortie doit ressembler à l’image suivante :

    Capture d’écran de la table avec 10 fonctions et résultats.