Ingérer des données avec Fluent Bit dans Azure Data Explorer
Fluent Bit est un agent open-source qui collecte des logs, des métriques et des traces à partir de différentes sources. Il permet de filtrer, de modifier et d'agréger les données relatives aux événements avant de les envoyer au stockage. L’Explorateur de données Azure est un service d’exploration de données rapide et hautement évolutive pour les données des journaux et les données de télémétrie. Cet article vous guide tout au long du processus d’utilisation de Fluent Bit pour envoyer des données à Azure Data Explorer.
Dans cet article, vous allez apprendre à :
Pour obtenir la liste complète des connecteurs de données, veuillez consulter la vue d’ensemble des connecteurs de données.
Prérequis
- Fluent Bit.
- Un cluster et une base de données Azure Data Explorer. Créez un cluster et une base de données.
Vous pouvez utiliser l’un des outils de requête disponibles pour votre environnement de requête.
Créez une table pour stocker vos journaux
Fluent Bit transmet les logs au format JSON avec trois propriétés : log
(dynamic), tag
(string), et timestamp
(datetime).
Vous pouvez créer une table avec des colonnes pour chacune des propriétés. Si vous disposez de journaux structurés, vous pouvez également créer une table dont les propriétés sont associées à des colonnes personnalisées. Pour en savoir plus, sélectionnez l'onglet correspondant.
Pour créer une table pour les logs entrants de Fluent Bit :
Accédez à votre environnement de recherche.
Sélectionnez la base de données dans laquelle vous souhaitez créer la table.
Exécutez la commande
.create table
suivante :.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
Les propriétés JSON entrantes sont automatiquement mappées dans la bonne colonne.
Enregistrer une application Microsoft Entra avec les permissions d'ingérer des données
Le principal de service Microsoft Entra peut être créé dans le portail Azure ou programmatiquement, comme dans l’exemple suivant.
Ce principal de service est l’identité utilisée par le connecteur pour écrire des données dans votre table dans Kusto. Vous accorderez ultérieurement des autorisations pour ce principal de service afin d’accéder à des ressources Kusto
Connectez-vous à votre abonnement Azure via Azure CLI. Authentifiez-vous ensuite dans le navigateur.
az login
Choisissez l’abonnement pour héberger le principal. Cette étape est nécessaire quand vous avez plusieurs abonnements.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Créez le principal de service. Dans cet exemple, le principal de service est appelé
my-service-principal
.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
À partir des données JSON retournées, copiez le
appId
,password
ettenant
pour une utilisation ultérieure.{ "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" }
Vous avez créé votre application Microsoft Entra et votre principal de service.
Accorder des autorisations au principal du service
Exécutez la commande suivante, en la remplaçant <MyDatabase>
par le nom de la base de données :
.add database MyDatabase ingestors ('aadapp=<Application (client) ID>;<Directory (tenant) ID>')
Cette commande permet à l'application d'ingérer des données dans votre table. Pour plus d’informations, consultez Contrôle d’accès en fonction du rôle.
Configurer Fluent Bit pour envoyer les logs à votre table
Pour configurer Fluent Bit afin d'envoyer les logs à votre table Azure Data Explorer, créez un fichier de configuration en mode classique ou en mode YAML avec les propriétés de sortie suivantes :
Champ | Description |
---|---|
Nom | azure_kusto |
Correspond à | Un modèle à comparer avec les étiquettes des enregistrements entrants. Il est sensible à la casse et prend en charge le caractère étoile (* ) comme caractère générique. |
Tenant_Id | Directory (tenant) ID von Enregistrez une application Microsoft Entra avec les permissions d'ingérer des données. |
Client_Id | ID de l'application (client) de Enregistrer une application Microsoft Entra avec les permissions d'ingérer des données. |
Client_Secret | La valeur de la clé secrète du client Enregistrez une application Microsoft Entra avec les permissions d'ingérer des données. |
Ingestion_Endpoint | Utilisez l’URI d’ingestion de données trouvé dans le Portail Azure sous la vue d’ensemble de votre cluster. |
Database_Name | Le nom de la base de données qui contient la table des journaux. |
Table_Name | Le nom de la table à partir de Créez une table pour stocker vos journaux. |
Ingestion_Mapping_Reference | Le nom du mappage d'ingestion à partir de Créer une table. Si vous n'avez pas créé de mappage d'ingestion, supprimez la propriété du fichier de configuration. |
Pour voir un exemple de fichier de configuration, sélectionnez l'onglet correspondant :
[SERVICE]
Daemon Off
Flush 1
Log_Level trace
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
Health_Check On
[INPUT]
Name tail
Path /var/log/containers/*.log
Tag kube.*
Mem_Buf_Limit 1MB
Skip_Long_Lines On
Refresh_Interval 10
[OUTPUT]
Name azure_kusto
Match *
Tenant_Id azure-tenant-id
Client_Id azure-client-id
Client_Secret azure-client-secret
Ingestion_Endpoint azure-data-explorer-ingestion-endpoint
Database_Name azure-data-explorer-database-name
Table_Name azure-data-explorer-table-name
Vérifiez que les données ont bien été enregistrées dans votre tableau
Une fois la configuration terminée, les journaux devraient arriver dans votre tableau.
Pour vérifier que les journaux sont ingérés, exécutez la requête suivante :
FluentBitLogs | count
Pour afficher un échantillon des données du journal, exécutez la requête suivante :
FluentBitLogs | take 100