Ingérer des données Logstash dans Azure Data Explorer
Important
Ce connecteur peut être utilisé dans Real-Time Intelligence dans Microsoft Fabric. Utilisez les instructions contenues dans cet article, à l’exception des points suivants :
- 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 les URI de requête ou d’ingestion en suivant les instructions fournies dans Copier l’URI.
- Exécutez des requêtes dans un ensemble de requêtes KQL.
Logstash est un pipeline open source de traitement de données côté serveur qui ingère simultanément des données provenant de nombreuses sources, les transforme, puis les envoie à votre « remise » préférée. Dans cet article, vous allez envoyer ces données à Azure Data Explorer, c’est-à-dire à un service rapide et hautement scalable d’exploration de données de journal et de télémétrie. Vous allez commencer par créer une table et un mappage de données dans un cluster de test, puis vous allez demander à Logstash d’envoyer des données dans la table et valider les résultats.
Remarque
Ce connecteur prend actuellement en charge seulement le format de données JSON.
Prérequis
- Un compte Microsoft ou une identité utilisateur Microsoft Entra. Un abonnement Azure n’est pas requis.
- Un cluster et une base de données Azure Data Explorer. Créez un cluster et une base de données.
- Instructions d’installation pour Logstash version 6+
Créer une table
Une fois que vous avez un cluster et une base de données, le moment est venu de créer une table.
Exécutez la commande suivante dans votre fenêtre de requête de base de données pour créer une table :
.create table logs (timestamp: datetime, message: string)
Exécutez la commande suivante pour vérifier que la nouvelle table
logs
a été créée et qu’elle est vide :logs | count
Créer un mappage
Le mappage est utilisé par Azure Data Explorer pour transformer les données entrantes en schéma de table cible. La commande suivante crée un mappage nommé basicmsg
qui permet d’extraire les propriétés du json entrant comme indiqué par path
et d’en générer la sortie dans column
.
Exécutez la commande suivante dans la fenêtre de requête :
.create table logs ingestion json mapping 'basicmsg' '[{"column":"timestamp","path":"$.@timestamp"},{"column":"message","path":"$.message"}]'
Installer le plug-in de sortie de Logstash
Le plug-in de sortie de Logstash communique avec Azure Data Explorer pour envoyer les données au service. Pour plus d’informations, consultez Plug-in Logstash.
Dans un interpréteur de commandes, accédez au répertoire racine Logstash, puis exécutez la commande suivante pour installer le plug-in :
bin/logstash-plugin install logstash-output-kusto
Configurer Logstash pour générer un exemple de jeu de données
Logstash peut générer des exemples d’événements que vous pouvez utiliser pour tester un pipeline de bout en bout. Si vous utilisez déjà Logstash et que vous avez accès à votre propre flux d’événements, passez à la section suivante.
Remarque
Si vous utilisez vos propres données, modifiez la table et les objets de mappage définis au cours des étapes précédentes.
Éditez un nouveau fichier texte qui contiendra les paramètres nécessaires du pipeline (en utilisant vi) :
vi test.conf
Collez les paramètres suivants qui indiqueront à Logstash de générer 1 000 événements de test :
input { stdin { } generator { message => "Test Message 123" count => 1000 } }
Cette configuration inclut également le plug-in d’entrée stdin
qui vous permet d’écrire plus de messages par vous-même (veillez à utiliser Entrée pour les envoyer dans le pipeline).
Configurer Logstash pour envoyer des données à Azure Data Explorer
Collez les paramètres suivants dans le même fichier config que celui utilisé à l’étape précédente. Remplacez tous les espaces réservés par les valeurs appropriées à votre configuration. Pour plus d’informations, consultez Création d’une application Microsoft Entra.
output {
kusto {
path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm-ss}.txt"
ingest_url => "https://ingest-<cluster name>.kusto.windows.net/"
app_id => "<application id>"
app_key => "<application key/secret>"
app_tenant => "<tenant id>"
database => "<database name>"
table => "<target table>" # logs as defined above
json_mapping => "<mapping name>" # basicmsg as defined above
}
}
Nom du paramètre | Description |
---|---|
path | Le plug-in Logstash écrit des événements dans des fichiers temporaires avant de les envoyer à Azure Data Explorer. Ce paramètre inclut un chemin indiquant l’emplacement auquel les fichiers doivent être écrits, ainsi qu’une expression temporelle de rotation de fichiers qui déclenche un chargement vers le service Azure Data Explorer. |
ingest_url | Point de terminaison Kusto pour la communication liée à l’ingestion. |
app_id, app_key et app_tenant | Informations d’identification nécessaires pour la connexion à Azure Data Explorer. Veillez à utiliser une application dotée de privilèges d’ingestion. |
database | Nom de la base de données où placer des événements. |
table | Nom de la table cible où placer des événements. |
json_mapping | Le mappage est utilisé pour mapper une chaîne json d’événement entrant sur le format de ligne approprié (il définit quelle propriété va dans quelle colonne). |
Exécuter Logstash
Nous sommes maintenant prêts à exécuter Logstash pour tester nos paramètres.
Dans un interpréteur de commandes, accédez au répertoire racine Logstash, puis exécutez la commande suivante :
bin/logstash -f test.conf
Des informations doivent apparaître à l’écran, ainsi que les 1 000 messages générés par notre exemple de configuration. À ce stade, vous pouvez également entrer d’autres messages manuellement.
Après quelques minutes, exécutez la requête Data Explorer suivante pour voir les messages dans la table que vous avez définie :
logs | order by timestamp desc
Sélectionnez Ctrl+C pour quitter Logstash.
Nettoyer les ressources
Exécutez la commande suivante dans votre base de données pour nettoyer la table logs
:
.drop table logs