Visualiser des données à partir d’Azure Data Explorer dans Kibana avec le connecteur open source K2Bridge

K2Bridge (Kibana-Kusto Bridge) vous permet d’utiliser Azure Data Explorer comme source de données et de visualiser ces données dans Kibana. K2Bridge est une application conteneurisée open source. Elle fait office de proxy entre une instance Kibana et un cluster Azure Data Explorer. Cet article explique comment utiliser K2Bridge pour créer cette connexion.

K2Bridge traduit les requêtes Kibana en langage de requête Kusto (KQL) et renvoie les résultats d’Azure Data Explorer à Kibana.

Connexion Kibana avec Azure Data Explorer via K2Bridge.

K2Bridge prend en charge les onglets Discover (Découvrir), Visualize (Visualiser) et Dashboard (Tableau de bord) de Kibana.

Avec l’onglet Discover, vous pouvez :

  • Effectuer une recherche dans les données et les explorer
  • Filtrer les résultats
  • Ajouter ou supprimer des champs dans la grille de résultats
  • Afficher le contenu des enregistrements
  • Enregistrer et partager les recherches

Avec l’onglet Visualize, vous pouvez :

  • Créez des visualisations comme des graphiques à barres, des graphiques en secteurs, des tables de données, des cartes thermiques, etc.
  • Enregistrer une visualisation

Avec l’onglet Dashboard, vous pouvez :

  • Créer des panneaux en utilisant des visualisations nouvelles ou enregistrées.
  • Enregistrer un tableau de bord.

L’image suivante montre une instance Kibana liée à Azure Data Explorer par K2Bridge. L’expérience utilisateur dans Kibana est inchangée.

Page Kibana liée à Azure Data Explorer.

Prérequis

Avant de pouvoir visualiser des données à partir d’Azure Data Explorer dans Kibana, préparez les éléments suivants :

  • Un abonnement Azure. Créez un compte Azure gratuit.
  • Un cluster et une base de données Azure Data Explorer. Vous aurez besoin de l’URL du cluster et du nom de la base de données.
  • Helm V3, gestionnaire de package de Kubernetes.
  • un cluster Azure Kubernetes Service (AKS) ou tout autre cluster Kubernetes. Utilisez la version 1.21.2 ou ultérieure, avec au minimum trois nœuds Azure Kubernetes Service. La version 1.21.2 est testée et vérifiée. Si vous avez besoin d’un cluster AKS, consultez la documentation indiquant comment déployer un cluster AKS avec Azure CLI ou avec le portail Azure.
  • Un principal de service Microsoft Entra autorisé à afficher les données dans Azure Data Explorer, y compris l’ID client et la clé secrète client. Vous pouvez aussi utiliser une identité managée affectée par le système.

Si vous choisissez d’utiliser un principal de service Microsoft Entra, vous devez créer un principal de service Microsoft Entra. Pour l’installation, vous avez besoin de l’ID client et d’un secret. Nous recommandons un principal de service avec autorisation d’affichage et déconseillons l’utilisation d’autorisations de niveau supérieur. Pour attribuer des autorisations, consultez Gérer les autorisations de base de données dans le Portail Azure ou utilisez les commandes de gestion pour Gérer les rôles de sécurité de la base de données.

Si vous choisissez d’utiliser une identité attribuée par le système, vous devrez obtenir le ID client de l’identité managée du pool d’agents (située dans le groupe de ressources généré « [MC_xxxx] » )

Exécuter K2Bridge sur Azure Kubernetes Service (AKS)

Par défaut, le chart Helm de K2Bridge fait référence à une image accessible publiquement hébergée dans Microsoft Container Registry (MCR). MCR ne nécessite aucun identifiant.

  1. Téléchargez les charts Helm nécessaires.

  2. Ajoutez la dépendance Elasticsearch à Helm. La dépendance est nécessaire, car K2Bridge utilise une petite instance Elasticsearch interne. L’instance traite les demandes relatives aux métadonnées, telles que les requêtes de modèles d’index et les requêtes enregistrées. Cette instance interne n’enregistre aucune donnée métier. Vous pouvez considérer l’instance comme un détail d’implémentation.

    1. Pour ajouter la dépendance Elasticsearch à Helm, exécutez les commandes suivantes :

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. Pour récupérer le graphique K2Bridge du répertoire charts du dépôt GitHub :

      1. Clonez le dépôt à partir de GitHub.

      2. Accédez au répertoire du dépôt racine K2Bridges.

      3. Exécutez cette commande :

        helm dependency update charts/k2bridge
        
  3. Déployez K2Bridge.

    1. Définissez les variables sur les valeurs correctes applicables à votre environnement.

      ADX_URL=[YOUR_ADX_CLUSTER_URL] #For example, https://mycluster.westeurope.kusto.windows.net
      ADX_DATABASE=[YOUR_ADX_DATABASE_NAME]
      ADX_CLIENT_ID=[SERVICE_PRINCIPAL_CLIENT_ID]
      ADX_CLIENT_SECRET=[SERVICE_PRINCIPAL_CLIENT_SECRET]
      ADX_TENANT_ID=[SERVICE_PRINCIPAL_TENANT_ID]
      

      Remarque

      Lorsque vous utilisez une identité managée, la ADX_CLIENT_ID valeur est l’ID client de l’identité managée, située dans le groupe de ressources généré [_MC_xxxx_] . Pour plus d’informations, consultez MC_ groupe de ressources. Ce ADX_CLIENT_SECRET paramètre est obligatoire uniquement si vous utilisez un principal de service Microsoft Entra.

    2. Si vous le souhaitez, activez la télémétrie Azure Application Insights. Si vous utilisez Application Insights pour la première fois, créez une ressource Application Insights. Copiez la clé d’instrumentation dans une variable.

      APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY]
      COLLECT_TELEMETRY=true
      
    3. Installez le graphique K2Bridge. Les visualisations et les tableaux de bord sont pris en charge seulement avec Kibana version 7.10. Les étiquettes d’image les plus récentes sont : 6.8_latest et 7.16_latest, qui prennent en charge respectivement Kibana 6.8 et Kibana 7.10. L’image de « 7.16_latest » prend en charge Kibana OSS 7.10.2, et son instance Elasticsearch interne est 7.16.2.

      Si un principal de service Microsoft Entra a été utilisé :

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set settings.aadClientId="$ADX_CLIENT_ID" --set settings.aadClientSecret="$ADX_CLIENT_SECRET" --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=6.8_latest/7.16_latest] 
      [--set image.repository=$REPOSITORY_NAME/$CONTAINER_NAME] 
      [--set privateRegistry="$IMAGE_PULL_SECRET_NAME"] [--set settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      Ou si une identité managée a été utilisée :

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set       settings.aadClientId="$ADX_CLIENT_ID" --set settings.useManagedIdentity=true --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=7.16_latest] [--set  settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      Dans Configuration, vous trouverez l’ensemble complet des options de configuration.

    4. La sortie de la commande précédente indique la commande Helm suivante pour déployer Kibana. Si vous le souhaitez, exécutez la commande suivante :

      helm install kibana elastic/kibana --version 7.17.3 -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=7.10.2 --set elasticsearchHosts=http://k2bridge:8080
      
    5. Utilisez le réacheminement de port pour accéder à Kibana sur localhost.

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. Connectez-vous à Kibana en accédant à http://127.0.0.1:5601.

    7. Exposez Kibana aux utilisateurs. Pour ce faire, il existe plusieurs méthodes. La méthode que vous utilisez dépend en grande partie de votre cas d’usage.

      Par exemple, vous pouvez exposer le service en tant que service Load Balancer. Pour ce faire, ajoutez le paramètre --set service.type=LoadBalancer à la commande Helm install Kibana antérieure.

      Ensuite, exécutez cette commande :

      kubectl get service -w -n k2bridge
      

      La sortie doit ressembler à ceci :

      NAME            TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
      kibana-kibana   LoadBalancer   xx.xx.xx.xx    <pending>     5601:30128/TCP   4m24s
      

      Vous pouvez ensuite utiliser la valeur EXTERNAL-IP générée qui s’affiche. Utilisez-la pour accéder à Kibana en ouvrant un navigateur et en accédant à <EXTERNAL-IP>:5601.

  4. Configurez des modèles d’index pour accéder à vos données.

    Dans une nouvelle instance de Kibana :

    1. Ouvrez Kibana.
    2. Accédez à Management.
    3. Sélectionnez Index Patterns (Modèles d’index).
    4. Créez un modèle d’index. Le nom de l’index doit correspondre exactement au nom de la table ou au nom de la fonction sans astérisque (*). Vous pouvez copier la ligne appropriée à partir de la liste.

Remarque

Pour exécuter K2Bridge sur d’autres fournisseurs Kubernetes, définissez la valeur du paramètre storageClassName Elasticsearch dans values.yaml sur celle suggérée par le fournisseur.

Découvrir des données

Quand Azure Data Explorer est configuré en tant que source de données pour Kibana, vous pouvez utiliser Kibana pour explorer les données.

Capture d’écran de l’onglet Découvrir dans Kibana.

  1. Dans Kibana, sélectionnez l’onglet Discover.

  2. Dans la liste des modèles d’index, sélectionnez un modèle d’index qui définit la source de données à explorer. Ici, le modèle d’index est une table Azure Data Explorer.

    Capture d’écran de la liste de motifs de la source de données.

  3. Si vos données comportent un champ de filtre d’heure, vous pouvez spécifier l’intervalle de temps. En haut à droite de la page Discover, sélectionnez un filtre de temps. Par défaut, la page affiche les données des 15 dernières minutes.

    Capture d’écran de la sélection d’un filtre de durée.

  4. La table des résultats affiche les 500 premiers enregistrements. Vous pouvez développer un document pour examiner les données des champs au format JSON ou de table.

    Capture d’écran d’un enregistrement développé dans l’onglet Découvrir.

  5. Vous pouvez ajouter des colonnes spécifiques à la table des résultats en sélectionnant Add (Ajouter) en regard du nom du champ. Par défaut, le tableau des résultats comprend la colonne _source et une colonne Time (Heure) si le champ d’heure existe.

    Capture d’écran de l’ajout de colonnes.

  6. Dans la barre de requête, vous pouvez rechercher des données en :

    • Entrant un terme de recherche.
    • Utilisant la syntaxe de requête Lucene. Par exemple :
      • Recherchez « error » (erreur) pour trouver tous les enregistrements qui contiennent cette valeur.
      • Recherchez « status : 200 » pour obtenir tous les enregistrements dont la valeur d’état est 200.
    • Utilisant les opérateurs logiques AND, OR et NOT.
    • Utilisant les caractères génériques astérisque (*) et point d’interrogation ( ?). Par exemple, la requête « destination_city : L* » correspond aux enregistrements où la valeur de destination-ville commence par « L » ou « l ». (K2Bridge n'est pas sensible à la casse.)

    Capture d’écran des requêtes en cours d’exécution.

Remarque

Seule la syntaxe de requête Lucene de Kibana est prise en charge. N’utilisez pas l’option KQL, qui représente le langage de requête Kibana.

Conseil

Dans Searching (Recherche), vous pouvez rechercher d’autres règles et logiques de recherche.

  1. Pour filtrer les résultats de votre recherche, utilisez la liste Available fields (Champs disponibles). La liste des champs permet de voir :

    • Les cinq premières valeurs du champ
    • Le nombre d’enregistrements qui contiennent le champ
    • Le pourcentage d’enregistrements qui contiennent chaque valeur

    Conseil

    Utilisez la loupe pour rechercher tous les enregistrements qui ont une valeur spécifique.

    Capture d’écran d’une liste de champs avec la loupe mise en évidence.

    Vous pouvez également utiliser la loupe pour filtrer les résultats et afficher chaque enregistrement du tableau des résultats au format tableau.

    Capture d’écran d’une liste sous forme de tableau avec la loupe mise en évidence.

  2. Sélectionnez Save (Enregistrer) ou Share (Partager) pour conserver votre recherche.

    Capture d’écran de la procédure d’enregistrement d’une recherche dans Kibana.

Visualiser les données

Utilisez les visualisations de Kibana pour obtenir un aperçu des données Azure Data Explorer.

Créer une visualisation à partir de l’onglet Discover

  1. Pour créer une visualisation à barres verticales, sous l’onglet Discover, localisez la barre latérale Available fields.

    Capture de la sélection d’un champ dans les champs disponibles dans l’onglet Découvrir.

  2. Sélectionnez un nom de champ, puis cliquez sur Visualize.

    Capture d’écran de la création d’une visualisation et de la sélection d’un champ.

  3. L’onglet Visualize s’ouvre et affiche la visualisation. Pour modifier les données et les métriques de la visualisation, consultez également Créer une visualisation à partir de l’onglet Visualize.

    Capture d’écran de la modification de la visualisation dans l’onglet Visualiser.

Créer une visualisation à partir de l’onglet Visualize

  1. Sélectionnez l’onglet Visualize, puis cliquez sur Create visualization (Créer une visualisation).

    Capture d’écran de la sélection de l’onglet Visualiser.

  2. Dans la fenêtre New Visualization (Nouvelle visualisation), sélectionnez un type de visualisation.

    Capture d’écran de la sélection d’un type de visualisation.

  3. Une fois la visualisation générée, vous pouvez modifier les métriques et ajouter un compartiment.

    Capture d’écran de la modification des indicateurs de performance.

Remarque

K2Bridge prend en charge une seule agrégation de seaux. Certaines agrégations prennent en charge les options de recherche. Utilisez la syntaxe Lucene, et non pas l’option KQL, qui correspond à la syntaxe du langage de requête Kibana.

Important

  • Les visualisations suivantes sont prises en charge : Vertical bar, Area chart, Line chart, Horizontal bar, Pie chart, Gauge, Data table, Heat map, Goal chart et Metric chart.
  • Les métriques suivantes sont prises en charge : Average, Count, Max, Median, Min, Percentiles, Standard deviation, Sum, Top hits et Unique count.
  • La métrique Percentiles ranks n’est pas prise en charge.
  • L’utilisation d’agrégations de compartiments est facultative ; vous pouvez visualiser les données sans agrégation de compartiments.
  • Les compartiments suivants sont pris en charge : No bucket aggregation, Date histogram, Filters, Range, Date range, Histogram et Terms.
  • Les buckets IPv4 range et Significant terms ne sont pas pris en charge.

Créer des tableaux de bord

Vous pouvez créer des tableaux de bord avec des visualisations de Kibana afin de résumer, comparer et opposer des vues synthétiques des données Azure Data Explorer, consultables en un coup d’œil.

  1. Pour créer un tableau de bord, sélectionnez l’onglet Dashboard, puis cliquez sur Create new dashboard (Créer un tableau de bord).

    Capture d’écran de la sélection de l’onglet Tableau de bord.

    Le nouveau tableau de bord s’ouvre en mode édition.

  2. Pour ajouter un nouveau panneau de visualisation, cliquez sur Create new (Créer nouveau).

    Capture d’écran de l’ajout d’une visualisation existante à un tableau de bord.

  3. Pour ajouter une visualisation que vous avez déjà créée, cliquez sur Add an existing (Ajouter existant) et sélectionnez une visualisation.

  4. Pour arranger des panneaux, organiser les panneaux par priorité, redimensionner les panneaux, etc., cliquez sur Edit (Modifier), puis utilisez les options suivantes :

    • Pour déplacer un panneau, cliquez sur l’en-tête du panneau et laissez le bouton de la souris enfoncé, puis faites-le glisser vers le nouvel emplacement.
    • Pour redimensionner un panneau, cliquez sur le contrôle de redimensionnement, puis faites-le glisser jusqu’à obtenir les nouvelles dimensions souhaitées.

    Capture d’écran de tableaux de bord avec des visualisations de données d’Azure Data Explorer.