Ingérer des données avec le récepteur Serilog dans Azure Data Explorer
Important
Ce connecteur peut être utilisé dans l’analyse 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 en suivant les instructions fournies dans Créer une base de données KQL.
- Si nécessaire, créez des tables en suivant les instructions fournies dans Créer une table vide.
- Obtenez des URI de requête ou d’ingestion à l’aide des instructions fournies dans Copier l’URI.
- Exécutez des requêtes dans un ensemble de requêtes KQL.
Serilog est un framework de journalisation populaire pour les applications .NET. Serilog permet aux développeurs de contrôler les instructions de journal qui sont sorties avec une granularité arbitraire en fonction du nom, du niveau de l’enregistreur d’événements et du modèle de message de l’enregistreur d’événements. Le récepteur Serilog, également appelé appender, pour Azure Data Explorer diffuse vos données de journal vers Azure Data Explorer, où vous pouvez analyser et visualiser vos journaux en temps réel.
Dans cet article, vous allez apprendre à :
Pour obtenir la liste complète des connecteurs de données, consultez Vue d’ensemble des connecteurs de données.
Prérequis
- SDK .NET 6.0 ou ultérieur
- Un cluster et une base de données Azure Data Explorer
Configurer votre environnement
Dans cette section, vous allez préparer votre environnement à utiliser le récepteur Serilog.
Installer le package
Ajoutez le package NuGet Serilog.Sinks.AzureDataExplorer . Utilisez la commande Install-Package en spécifiant le nom du package NuGet.
Install-Package Serilog.Sinks.AzureDataExplorer
Créer une inscription d’application Microsoft Entra
Microsoft Entra’authentification d’application 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 Serilog, vous devez créer et inscrire un principal de service Microsoft Entra, puis autoriser ce principal à ingérer des données d’une base de données Azure Data Explorer.
- À 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.
- Enregistrez les valeurs suivantes à utiliser dans les étapes suivantes :
- ID d’application (client)
- ID de l’annuaire (locataire)
- Valeur de clé secrète client
Accorder les autorisations d’application Microsoft Entra
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.
Accédez à la base de données dans laquelle vous souhaitez ingérer des données.
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 plus d’informations, consultez Gérer les rôles de sécurité de base de données.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'
Notes
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éer un mappage de table et d’ingestion
Créez une table cible pour les données entrantes, en mappant les colonnes de données ingérées aux colonnes de la table cible. Dans les étapes suivantes, le schéma de table et le mappage correspondent aux données envoyées à partir de l’exemple d’application.
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, Exception: string, Properties: dynamic, Position: dynamic, Elapsed: int)
Exécutez la commande de mappage d’ingestion suivante, en remplaçant les espaces réservés TableName par le nom de la table cible et TableNameMapping par le nom du mappage d’ingestion :
.create table <TableName> ingestion csv mapping '<TableNameMapping>' '[{"Name":"Timestamp","DataType":"","Ordinal":"0","ConstValue":null},{"Name":"Level","DataType":"","Ordinal":"1","ConstValue":null},{"Name":"Message","DataType":"","Ordinal":"2","ConstValue":null},{"Name":"Exception","DataType":"","Ordinal":"3","ConstValue":null},{"Name":"Properties","DataType":"","Ordinal":"4","ConstValue":null},{"Name":"Position","DataType":"","Ordinal":"5","ConstValue":null},{"Name":"Elapsed","DataType":"","Ordinal":"6","ConstValue":null}]'
Ajouter le récepteur Serilog à votre application
Procédez comme suit pour :
- Ajouter le récepteur Serilog à votre application
- Configurer les variables utilisées par le récepteur
- Générer et exécuter l’application
Ajoutez le code suivant à votre application :
using Serilog.Sinks.AzureDataExplorer;
Configurez le récepteur Serilog, en remplaçant les espaces réservés à l’aide des informations de la table suivante :
var log = new LoggerConfiguration() .WriteTo.AzureDataExplorerSink(new AzureDataExplorerSinkOptions { IngestionEndpointUri = "<cluster>", DatabaseName = "<MyDatabase>", TableName = "<MyTable>", BufferBaseFileName = "<BufferBaseFileName>" }) .CreateLogger();
Variable Description IngestionEndPointUri URI d’ingestion de votre cluster au format https://ingest-<cluster>.<region.kusto.windows.net>. DatabaseName Nom de la base de données cible, respectant la casse. TableName Nom respectant la casse d’une table cible existante. Par exemple, SerilogTest est le nom de la table créée dans Créer une table et un mappage d’ingestion. AppID ID client d’application requis pour l’authentification. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra. AppKey Clé d’application requise pour l’authentification. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra. Locataire ID du locataire dans lequel l’application est inscrite. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra. BufferBaseFileName Nom de fichier de base facultatif pour le fichier tampon. Définissez cette valeur si vous avez besoin que vos journaux soient durables contre les échecs de connexion à votre cluster résultant d’une perte. Par exemple : C:/Temp/Serilog
.Pour plus d’options, consultez Options récepteur.
Envoyez des données à Azure Data Explorer à l’aide du récepteur Serilog. Par exemple :
log.Verbose("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs); log.Information("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs); log.Warning("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs); log.Error(new Exception(), "Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs); log.Debug("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
Générez et exécutez l'application. Par exemple, si vous utilisez Visual Studio, appuyez sur F5.
Vérifiez 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 Serilog.
Clonez le référentiel git du récepteur Serilog à l’aide de la commande git suivante :
git clone https://github.com/Azure/serilog-sinks-azuredataexplorer
Définissez les variables environnementales suivantes pour configurer le récepteur Serilog :
Variable Description IngestionEndPointUri URI d’ingestion de votre cluster au format https://ingest-<cluster>.<region.kusto.windows.net>. DatabaseName Nom de la base de données cible, respectant la casse. TableName Nom respectant la casse d’une table cible existante. Par exemple, SerilogTest est le nom de la table créée dans Créer une table et un mappage d’ingestion. AppID ID client d’application requis pour l’authentification. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra. AppKey Clé d’application requise pour l’authentification. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra. Locataire ID du locataire dans lequel l’application est inscrite. Vous avez enregistré cette valeur dans Créer une inscription d’application Microsoft Entra. BufferBaseFileName Nom de fichier de base pour le fichier de mémoire tampon. Définissez cette valeur si vous avez besoin que vos journaux soient durables contre les échecs de connexion à votre cluster résultant d’une perte. Par exemple : C:/Temp/Serilog
Vous pouvez définir les variables d’environnement manuellement ou à l’aide des commandes suivantes :
Dans votre terminal, accédez au dossier racine du dépôt cloné et exécutez la commande .NET suivante pour générer l’application :
dotnet build src
Dans votre terminal, accédez au dossier samples et exécutez la commande .NET suivante pour exécuter l’application :
dotnet build run
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, en remplaçant l’espace réservé TableName par le nom de la table cible :
<TableName> | take 10
Votre sortie doit ressembler à l’image suivante :
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour