Partager via


Ingérer des données avec Fluent Bit dans Azure Data Explorer

Fluent Bit est un agent open source qui collecte les journaux, les métriques et les traces à partir de différentes sources. Il vous permet de filtrer, de modifier et d’agréger des données d’événement 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, consultez la vue d’ensemble des connecteurs de données.

Prérequis

Vous pouvez utiliser l’un des outils de requête disponibles pour votre environnement de requête.

Créer une table pour stocker vos journaux

Fluent Bit transfère les journaux au format JSON avec trois propriétés : log (dynamique), tag (chaîne) et timestamp (datetime).

Vous pouvez créer une table avec des colonnes pour chacune de ces propriétés. Sinon, si vous avez des journaux structurés, vous pouvez créer une table avec des propriétés de journal mappées aux colonnes personnalisées. Pour en savoir plus, sélectionnez l’onglet approprié.

Pour créer une table pour les journaux entrants à partir de Fluent Bit :

  1. Accédez à votre environnement de requête.

  2. Sélectionnez la base de données dans laquelle vous souhaitez créer la table.

  3. Exécutez la commande suivante .create table :

    .create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
    

    Les propriétés JSON entrantes sont automatiquement mappées dans la colonne correcte.

Inscrire une application Microsoft Entra avec des autorisations pour 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 Kusto. Vous accorderez ultérieurement des autorisations pour ce principal de service afin d’accéder à des ressources Kusto

  1. Connectez-vous à votre abonnement Azure via Azure CLI. Authentifiez-vous ensuite dans le navigateur.

    az login
    
  2. 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
    
  3. 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}
    
  4. À partir des données JSON retournées, copiez le appId, password et tenant pour une utilisation ultérieure.

    {
      "appId": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn",
      "displayName": "my-service-principal",
      "name": "my-service-principal",
      "password": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn",
      "tenant": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn"
    }
    

Vous avez créé votre application Microsoft Entra et votre principal de service.

Accorder des autorisations au principal de service

Exécutez la commande suivante, en 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 accorde les autorisations d’application pour ingérer des données dans votre table. Pour plus d’informations, consultez le contrôle d’accès en fonction du rôle.

Configurer Fluent Bit pour envoyer des journaux à votre table

Pour configurer Fluent Bit pour envoyer des journaux à 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
Correspondance Modèle à mettre en correspondance avec les balises des enregistrements entrants. Il respecte la casse et prend en charge le caractère en étoile (*) en tant que caractère générique.
Tenant_Id ID d’annuaire (locataire) à partir de l’inscription d’une application Microsoft Entra avec des autorisations pour ingérer des données.
Client_Id ID d’application (client) à partir de l’inscription d’une application Microsoft Entra avec des autorisations pour ingérer des données.
Client_Secret La valeur de clé secrète client Inscrit une application Microsoft Entra avec les autorisations nécessaires pour 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 Nom de la base de données qui contient votre table de journaux d’activité.
Table_Name Nom de la table à partir de Créer une table pour stocker vos journaux d’activité.
Ingestion_Mapping_Reference 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 afficher un exemple de fichier de configuration, sélectionnez l’onglet approprié :

[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érifier que les données ont atterri dans votre table

Une fois la configuration terminée, les journaux doivent arriver dans votre table.

  1. Pour vérifier que les journaux sont ingérés, exécutez la requête suivante :

    FluentBitLogs
    | count
    
  2. Pour afficher un exemple de données de journal, exécutez la requête suivante :

    FluentBitLogs
    | take 100