Tableau de bord Kibana : tutoriel pour les débutants

Le moteur de recherche et d’analyse Elasticsearch est l’une des meilleures solutions open source pour indexer et structurer de grandes bases de données. Cependant, il n’est souvent possible d’obtenir des informations précieuses lors de l’analyse ultérieure des données brutes que si elles sont visualisées de manière très rapide et si elles sont faciles à comprendre. L’outil de visualisation Kibana a été spécialement développé pour la présentation des données d’Elasticsearch. Voici notre tutoriel pour Kibana.

Qu’est-ce que Kibana ?

Kibana est une interface Web extensible pour la représentation visuelle des données collectées. Avec Elasticsearch et l’outil de traitement de données Logstash, il forme ce qu’on appelle la pile ELK (pile logicielle composée de Elastisearch, Logstash et Kibana, nommée aussi The Elastic Stack). Cette suite open source permet aux utilisateurs de collecter des données à partir de différentes sources serveur (et cela dans n’importe quel format), de les organiser et de les préparer à des fins analytiques. En plus de la possibilité de visualiser les données traitées par Logstash et Elasticsearch, Kibana offre également une analyse automatique en temps réel, un algorithme de recherche très flexible et différents types de visualisations (histogrammes, graphiques, diagrammes circulaires, etc.) pour chaque donnée. Dans le tableau de bord, les différentes visualisations interactives peuvent ensuite être combinées pour former une image globale dynamique qui peut ensuite être filtrée et recherchée.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

En tant qu’application Web écrite en JavaScript, Kibana peut être utilisée sur plusieurs plateformes. Des coûts ne surviennent que si vous utilisez le service d’hébergement Elastic Cloud proposé par le développeur. Ce service payant vous permet d’implémenter et d’organiser un cluster Elasticsearch Kibana sécurisé sur Amazon ou Google sans avoir à fournir vos propres ressources.

Tutoriel Kibana : premiers pas avec l’outil de visualisation

Kibana offre un large éventail de fonctions qui peuvent être utilisées pour afficher les stocks de bases de données préparées. Cependant, avant de pouvoir filtrer et visualiser l’information contenue dans le tableau de bord afin que les valeurs clefs souhaitées puissent facilement être visibles, analysées et évaluées à long terme, il reste beaucoup de travail à faire. Avec ce tutoriel Kibana, nous voulons vous faciliter la prise en main de la puissante interface Web. Cet article explique comment installer Kibana correctement, comment créer votre premier tableau de bord et comment intégrer les données existantes dans l’outil de visualisation d’Elastic.

Étape 1 : comment faire fonctionner Kibana

Puisque Kibana est conçu pour afficher des données qui ont été indexées à l’aide d’Elasticsearch, vous devez d’abord installer le moteur de recherche et d’analyse. Les paquets correspondants pour Windows, macOS et Linux se trouvent dans le Elasticsearch Download Center. La condition préalable est qu’un environnement d’exécution Java actuel (64 bits) soit toutefois installé.

Kibana est également disponible comme logiciel multiplateforme pour Windows, macOS et Linux (RPM, DEB). Puisque l’application est basée sur l’environnement d’exécution JavaScript Node.js, les différents paquets d’installation contiennent également les binaires Node.js nécessaires pour utiliser l’outil de visualisation, les versions maintenues séparément ne sont pas supportées. Les différents paquets (compressés en ZIP) peuvent être trouvés comme Elasticsearch sur la page officielle d’Elastic.

Note

Les utilisateurs Linux et Mac peuvent aussi installer Kibana à partir du dépôt Elastic en utilisant les gestionnaires de paquets apt et yum. Des instructions détaillées peuvent être trouvées dans les manuels en ligne.

Après avoir décompressé le paquet Kibana, exécutez le fichier bin/kibana (macOS, Linux) ou bin\kibana.bat (Windows) pour faire fonctionner le serveur Kibana.

Vous pouvez alors appeler le backend Kibana via l’adresse « http://localhost:5601 » dans votre navigateur (Elasticsearch doit pour cela être démarré).

Étape 2 : intégrer des donnés dans Kibana

Afin de pouvoir examiner de plus près le tableau de bord Kibana et ses fonctions dans ce tutoriel, il faut tout d’abord y insérer des données. Sur le site Internet d‘Elastic, il y a trois échantillons de base de données téléchargeables gratuitement, que nous utilisons ici à des fins de test. Ce sont les trois bases de données listées ci-dessus « shakespeare.json » (base de données des œuvres complètes de William Shakespeare), « accounts.zip » (ensemble de comptes fictifs) et « logs.jsonl.gz » (ensemble de fichiers logs générés de manière aléatoire).

Téléchargez et décompressez les trois fichiers (compte et fichier log) et enregistrez-les à l’emplacement de votre choix.

Avant de soumettre les données, il est nécessaire de créer des mappings pour les champs des bases de données Shakespeare et Server Log. Ces affectations divisent les documents de l’index en groupes logiques et spécifient également les propriétés des champs, telles que leur capacité de recherche. L’outil approprié pour configurer les Mappings est la Console, qui se trouve dans l’interface Kibana sous les points de menu « Dev Tools » « Console ».

Insérez maintenant les Mappings suivants dans l’ordre via PUT-Request :

PUT /shakespeare
{
 "mappings": {
  "doc": {
   "properties": {
    "speaker": {"type": "keyword"},
    "play_name": {"type": "keyword"},
    "line_id": {"type": "integer"},
    "speech_number": {"type": "integer"}
   }
  }
 }
}
PUT /logstash-2015.05.18
{
    "mappings": {
        "log": {
            "properties": {
                "geo": {
                    "properties": {
                        "coordinates": {
                            "type": "geo_point"
                        }
                    }
                }
            }
        }
    }
}
PUT /logstash-2015.05.19
{
    "mappings": {
        "log": {
            "properties": {
                "geo": {
                    "properties": {
                        "coordinates": {
                            "type": "geo_point"
                        }
                    }
                }
            }
        }
    }
}
PUT /logstash-2015.05.20
{
    "mappings": {
        "log": {
            "properties": {
                "geo": {
                    "properties": {
                        "coordinates": {
                            "type": "geo_point"
                        }
                    }
                }
            }
        }
    }
}

Utilisez maintenant le Bulk API d’Elasticsearch pour charger les ensembles de données via Curl sur le terminal. Sous Windows, utilisez plutôt le PowerShell avec Invoke-RestMethod (exemple de code ci-dessous) :

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl
Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"
Note

Selon la puissance de calcul, l’alimentation des ensembles de données peut prendre quelques minutes.

Revenez à la console Kibana pour vérifier le succès du processus de chargement avec la requête GET suivante :

GET /_cat/indices?v

Si les données sont intégrées comme prévu, l’Output ressemble à ceci :

Étape 3 : définition d’un premier modèle d’index

Pour que Kibana puisse savoir quelles données il doit traiter, vous devez créer des modèles correspondants pour les indices « shakespeare », « bank » et « logstash ». Définissez le premier comme suit :

  1. Ouvrez le menu « Management » et cliquez sur « Index Patterns ». Lors de la création du premier modèle d’index, la page « Create index pattern » s’ouvre automatiquement. Vous pouvez également l’appeler à l’aide du bouton du même nom.
  2. Tapez « shakes* » dans le champ « Index pattern » et cliquez sur « Next step ».
  3. Comme aucune configuration spéciale n’est nécessaire pour ce modèle, passez à l’étape de configuration suivante et terminez directement la création du modèle en cliquant sur « Create index pattern ».

Répétez les étapes pour le motif « ba* », qui est automatiquement affecté à l'index « bank ».

Enfin, vous définissez un modèle d'index avec le nom « logstash* » pour les trois index de log du serveur. Dans ce modèle, cependant, vous ne sautez pas le menu de configuration, mais sélectionnez « @timestamp » dans le menu déroulant « Time Filter field name » car ces ensembles de données contiennent des données de séries temporelles. Cliquez ensuite sur « Create index pattern » comme pour les deux motifs précédents.

Étape 4 : parcourir les ensembles de données insérés

Après avoir alimenté votre serveur Kibana avec les ensembles de données, vous pouvez maintenant lancer une requête de recherche Elasticsearch pour rechercher ces données et filtrer les résultats. Pour ce faire, allez dans le menu « Discover » de Kibana et sélectionnez le modèle d’index pour votre recherche à l’aide de la petite icône triangulaire dans la barre de menu de gauche. Dans le cadre de ce tutoriel Kibana, nous avons choisi l’ensemble de données de compte (ba*) :

À titre de test, vous pouvez filtrer le bloc de donnés du compte bancaire pour ne voir que les comptes qui répondent à certains critères. Par exemple, pour rechercher spécifiquement les comptes dont le solde est supérieur à 47 500 et qui appartiennent à des personnes âgées de plus de 38 ans, tapez la commande suivante dans la zone de recherche :

balance:>47500 AND age:>38

Discover indique ensuite les entrées des quatre comptes 97, 177, 878 et 916 qui correspondent aux propriétés sélectionnées.

Cliquez sur le bouton « Save » dans la barre de menu supérieure pour enregistrer les recherches filtrées sous le nom souhaité.

Étape 5 : visualiser les données

Grâce aux préparatifs effectués jusqu’à présent dans ce tutoriel Kibana, vous êtes maintenant en mesure de visualiser les données implémentées pour donner vie à votre tableau de bord. L’exemple d’un diagramme circulaire pour la base de données des comptes bancaires sera créé ici. D’une part, ce diagramme doit montrer quelle partie du total de 1 000 comptes se situe dans certaines tranches de soldes de comptes et, d’autre part, comment la répartition selon l’âge au sein de ces divisions se présente.

Dans la première étape, ouvrez le menu « Visualize » et cliquez sur « Create a visualization » pour obtenir une liste des types de visualisation disponibles. Sélectionnez ensuite l’option « Pie ».

Au début, vous ne verrez qu’un cercle simple qui résume toutes les entrées de la base de données, puisqu’aucune catégorie n’a encore été définie. Ceux-ci sont également appelés « Buckets » dans Kibana et peuvent être créés sous le point de menu du même nom.

Pour définir d’abord les sections individuelles des soldes de comptes, cliquez sur « Split Slices » et sélectionnez « Range » dans le menu déroulant « Aggregation » :

Sous « Field », recherchez l’entrée « balance » et cliquez dessus, puis cliquez quatre fois sur le bouton « Add Range » pour définir les six catégories de solde de compte suivantes :

0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000

Cliquez ensuite sur « Apply Changes » (l’icône triangulaire), et le diagramme circulaire montre la répartition des comptes selon les divisions de solde de compte définies.

Dans la deuxième étape, vous ajoutez un autre cercle au diagramme qui illustre la répartition des classes d’âge pour les zones de solde des comptes individuels. Pour ce faire, cliquez sur « Add sub-buckets », puis à nouveau sur « Split Slices » et sélectionnez « Terms » dans le menu déroulant. Sous « Field », recherchez l’entrée « age » et acceptez les modifications via « Apply changes ».

Vous pouvez maintenant enregistrer la visualisation très facilement en utilisant le bouton « Save » situé dans la barre de menu supérieure.

Étape 6 : organiser le tableau de bord

Le tableau de bord avec Kibana sera également abordé brièvement dans ce tutoriel, de sorte que vous pourrez créer votre premier tableau de bord de test en utilisant la recherche et la visualisation que vous avez enregistrées aux étapes 4 et 5. Pour ce faire, sélectionnez le tableau de bord dans la navigation de la page, puis cliquez sur « Create new dashboard », puis sur « Add ». Kibana va maintenant lister automatiquement toutes les visualisations sauvegardées ou les recherches Elasticsearch :

Cliquez avec le bouton gauche de la souris pour ajouter la visualisation du solde du compte et le résultat de l’exemple de recherche au tableau de bord, après quoi vous pouvez visualiser les deux dans des panneaux séparés dans le tableau de bord :

Vous pouvez désormais modifier les panneaux, par exemple en les redimensionnant ou en changeant leur position. Il est de plus possible d’afficher un résultat de visualisation ou de recherche sur tout l’écran ou de la supprimer du tableau de bord. Avec « Inspect », vous pouvez afficher pour de nombreuses visualisations des informations supplémentaires sur les données et les requêtes correspondantes.

Note

Lorsque vous supprimez un panneau du tableau de bord Kibana, la visualisation ou la recherche enregistrée est conservée.